Łącząc tail && journalctl


27

Dostosowuję dzienniki własnej aplikacji i postgresów.

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

Muszę dołączyć dzienniki pgpool. Kiedyś był to syslog, ale teraz jest w dzienniku.

Czy istnieje sposób na powiązanie tail -f && journalctl -f razem?

Odpowiedzi:


27

Możesz użyć:

journalctl -u service-name -f

-f, - śledź

Pokaż tylko najnowsze wpisy do dziennika i stale drukuj nowe wpisy, gdy są one dołączane do dziennika.

Tutaj dodałem „nazwa usługi”, aby odróżnić tę odpowiedź od innych; zamieniasz rzeczywistą nazwę usługi zamiast tekstu service-name.


20

Możesz przekazać swoje wpisy dziennika do dziennika :

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

a następnie użyj journalctl -f... chociaż, jak wspomniał Mark, to wydrukuje wszystkie wpisy do dziennika.


Jednym ze sposobów filtrowania tylko wiadomości z tych dzienników i z tej konkretnej jednostki jest użycie odrębnego, SYSLOG_IDENTIFIERtj. Edycja pliku jednostki i w [Service]sekcji dodaj np.

SyslogIdentifier=my_stuff

zrestartuj urządzenie, a następnie uruchom systemd-catz tym samym identyfikatorem

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

i wreszcie zapytanie do dziennika tylko dla tego konkretnego identyfikatora:

journalctl -f -t my_stuff

4

Jeśli masz dostępną wersję bash, możesz użyć podstawienia procesu jako jednego z tailparametrów:

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

Jest to elegancki sposób, w jaki próbowałem, ale nie działa. Tail pokazuje, że używa / dev / fd / xx, ale nie są wyświetlane żadne logi.
bikey

poprawny; / dev / fd / xxx jest tymczasowym potokiem używanym przez bash w celu zaimplementowania podstawienia procesu; pojawią się tam wszelkie wyniki dziennika.
Jeff Schaller

5
Prawdopodobnie nie chcesz śledzić całego dziennika, ale tylko te dotyczące jednostki pgpool. Zakładając usługę o nazwie pgpool.service, spróbuj journalctl -fu pgpool.service. Ponadto, jeśli nie używasz tego jako root, upewnij się, że użytkownik jest w systemd-journalgrupie!
Mark Stosberg,

1

spróbuj czegoś takiego:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.