Combinando tail && journalctl


27

Estoy siguiendo los registros de mi propia aplicación y postgres.

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log

Necesito incluir los registros de pgpool. Solía ​​ser syslog pero ahora está en journalctl.

¿Hay alguna manera de vincular tail -f && journalctl -f?

Respuestas:


27

Podrías usar:

journalctl -u service-name -f

-f, - sigue

Muestra solo las entradas de diario más recientes e imprime continuamente nuevas entradas a medida que se agregan al diario.

Aquí he agregado "nombre de servicio" para distinguir esta respuesta de otras; sustituye el nombre real del servicio en lugar del texto service-name.


20

Puede reenviar sus entradas de registro al diario :

systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log

y luego use journalctl -f... aunque como Mark mencionó, eso imprimirá todas las entradas de diario


Una forma de filtrar solo los mensajes de esos registros y de esa unidad en particular es usar un SYSLOG_IDENTIFIERarchivo distinto, es decir, editar el archivo de la unidad y debajo de la [Service]sección agregar, por ejemplo

SyslogIdentifier=my_stuff

reinicie la unidad y luego ejecute systemd-catcon el mismo identificador

systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log

y finalmente consulte el diario solo para ese identificador particular:

journalctl -f -t my_stuff

4

Si tiene bash disponible, puede usar la sustitución de procesos como uno de los tailparámetros:

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)

Esta es la forma elegante que también probé, pero no funciona. Tail muestra que está usando / dev / fd / xx, pero no se muestran registros.
Bikey

correcto; / dev / fd / xxx es la tubería temporal que bash usa para implementar la sustitución del proceso; cualquier salida de journalctl aparecerá allí.
Jeff Schaller

55
Probablemente no desee seguir todo el diario, sino solo los de la unidad pgpool. Asumiendo el servicio nombrado pgpool.service, intente journalctl -fu pgpool.service. Además, si no está ejecutando esto como root, ¡asegúrese de que el usuario esté en el systemd-journalgrupo!
Mark Stosberg

1

prueba algo como:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.