Menggabungkan tail && journalctl


27

Saya tailing log dari aplikasi dan postgres saya sendiri.

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

Saya perlu memasukkan log pgpool. Dulu syslog tapi sekarang di journalctl.

Apakah ada cara untuk mengikat tail -f && journalctl -f bersama?

Jawaban:


27

Anda bisa menggunakan:

journalctl -u service-name -f

-f, --follow

Tampilkan hanya entri jurnal terbaru, dan terus-menerus cetak entri baru saat ditambahkan ke jurnal.

Di sini saya telah menambahkan "nama layanan" untuk membedakan jawaban ini dari yang lain; Anda mengganti nama layanan yang sebenarnya dan bukan teks service-name.


20

Anda dapat meneruskan entri log Anda ke jurnal :

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

dan kemudian gunakan journalctl -f... meskipun seperti yang disebutkan Markus, itu akan mencetak semua entri jurnal.


Salah satu cara untuk memfilter hanya pesan dari log tersebut dan dari unit tertentu adalah dengan menggunakan yang berbeda SYSLOG_IDENTIFIERyaitu mengedit file unit dan di bawah [Service]bagian tambahkan misalnya

SyslogIdentifier=my_stuff

restart unit kemudian jalankan systemd-catdengan pengidentifikasi yang sama

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

dan akhirnya meminta jurnal hanya untuk pengidentifikasi tertentu:

journalctl -f -t my_stuff

4

Jika tersedia bash, Anda dapat menggunakan subtitusi proses sebagai salah satu tailparameter:

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

Ini adalah cara elegan yang saya coba, tetapi tidak berhasil. Tail menunjukkan bahwa ia menggunakan / dev / fd / xx, tetapi tidak ada log yang ditampilkan.
Bersepeda

benar; / dev / fd / xxx adalah pipa sementara yang digunakan bash untuk mengimplementasikan proses substitusi; output jurnalctl akan muncul di sana.
Jeff Schaller

5
Anda mungkin tidak ingin mengikuti seluruh jurnal tetapi hanya untuk unit pgpool. Dengan asumsi layanan bernama pgpool.service, coba journalctl -fu pgpool.service. Juga, jika Anda tidak menjalankan ini sebagai root, pastikan pengguna berada di systemd-journalgrup!
Mark Stosberg

1

coba sesuatu seperti:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.