Jak logrotować za pomocą systemd?

12

Korzystam z aplikacji węzła przy użyciu systemd z plikiem jednostkowym. Dziennik aplikacji można przeglądać za pomocą, journalctl -u example.comale dziennik zostaje w pewnym momencie odcięty, co powoduje usunięcie historii (której potrzebuję do debugowania).

Jak skonfigurować Loguję obrót z Systemd tak, że moje logi aplikacji zostaje zapisany w example.com.log.1, example.com.log.2itd., Więc mogę zapytać historię mojej aplikacji?

To jest plik mojej jednostki:

ExecStart=/usr/bin/node keystone.js
#Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=example.com
User=user
Group=user
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
htor
źródło
1
Podaj swoją wersję systemową, a także system operacyjny i wersję.
Mark Stosberg
1
Przejrzyj, man journald.confaby przejrzeć opcje kontrolujące miejsce na dysku dziennika systemowego. Jeśli nadal masz pytanie, opublikuj treść swojego /etc/systemd/journald.conf.
Mark Stosberg,

Odpowiedzi:

7

Zwiększenie pojemności

Jeśli przechowujesz na dysku, możesz zwiększyć ilość miejsca używanego przez zmianę SystemMaxUsei / lub SystemKeepFree. Większa ilość miejsca pozwoliłaby na zapisanie większej liczby wpisów.

Domyślnie maksymalny limit użycia ( SystemMaxUse) wynosi 10% systemu plików, a minimalna wartość wolnego miejsca ( SystemKeepFree) wynosi 15% - chociaż oba są ograniczone do 4G.

Obrót czasopisma

Arkusze powinny być obracane automatycznie, gdy osiągną SystemMaxFileSizewartość, a liczba dzienników jest kontrolowana przez SystemMaxFiles. Jeśli wolisz rotację opartą na czasie, możesz ustawić a, MaxFileSecaby ustawić maksymalny czas zapisywania w jednym dzienniku.

Uwaga na temat miejsca / rodzaju przechowywania

Za pomocą dziennika można zapisywać wpisy dziennika w pamięci ( Storage=volatile) lub na dysku ( Storage=persistent). Powyższe zakłada, że ​​przechowujesz czasopisma na dysku - jeśli tak nie jest, „System” będzie musiał zostać zastąpiony przez „Runtime” w powyższych zmiennych.

Dalsze szczegóły są dostępne w man journald.conf.

Alternatywa - przekazywanie zapisów księgowych

Jeśli jesteś już zaznajomiony z tradycyjnym demonem SYSLOG, możesz przekazać zdarzenia dziennika, ustawiając ForwardToSyslogopcję (która natychmiast przekazuje wiadomości) lub sprawi, że demon syslog zachowa się jak klient dziennika i pobierze dzienniki.

DougC
źródło