Używam waniliowego serwera Ubuntu 16.04 i staram się zawrócić, aby domyślnie skonfigurować rejestrowanie. Widzę, że oba journald
i rsyslog
są zainstalowane i działa, ale to nie jest w ogóle dla mnie jasne, w jaki sposób wiadomości dziennika są przetwarzane.
Wygląda na to, że większość wiadomości pojawia się zarówno w, jak /var/log/syslog
i za pośrednictwem journalctl
, ale nie widzę żadnej wyraźnej konfiguracji przekazywania między nimi w obu /etc/systemd/journald.conf
(co w zasadzie wszystkie są domyślnie skomentowane) /etc/rsyslog.conf
lub /etc/rsyslog.d/50-default.conf
. Próbowałem poszukać oficjalnej dokumentacji lub nawet wpisu na blogu wyjaśniającego, jak te dwa są skonfigurowane w Ubuntu, ale nic nie udało mi się znaleźć.
Aby jeszcze bardziej zwiększyć zamieszanie, wykonałem logger -p local1.info Test
na hoście i stwierdziłem, że nic nie zostało napisane /var/log/syslog
, podczas gdy komunikat pojawił się pod journalctl
.
Moje pytania to:
- Jak dokładnie dziennik i rsyslog współpracują ze sobą w systemie Ubuntu 16.04 (domyślnie)?
Dlaczego wiadomości wysłane zlogger
pozornie trafiają do dziennika, ale nie do syslog?
Aktualizacja: Okazało się, że logger
nie działa zgodnie z oczekiwaniami, to był mój błąd, więc nie ma to związku z głównym pytaniem.
logger -p .info hello
nie jest poprawny. Nie podałeś żadnej nazwy obiektu.logger
niedziałanie było moją winą, więc teraz zostało to naprawione (i tak dzięki za wskazówki). Jeśli chodzi o logi wyświetlane w dwóch miejscach, twoja notatkaimuxsock
wydaje się być kluczem: wydaje się, że zarówno rsyslog, jak i journald nasłuchują lokalnych komunikatów syslog, dlatego te wpisy przechodzą do dwóch osobnych logów.Systemd to system inicjujący używany do uruchamiania usług podczas uruchamiania systemu. Journald jest odpowiedzialny za tworzenie dzienników usług uruchamianych przez systemd. Dzięki zintegrowaniu dziennika z systememd, nawet najwcześniejsze komunikaty o procesie uruchamiania są dostępne dla dziennika.
Rsyslog to demon specjalnie stworzony do przetwarzania logów, nie mający nic wspólnego z dziennikiem. Może pobierać logi na wiele sposobów i generować je na wiele sposobów. Domyślnie nie jest włączone, aby pobierało również dzienniki z dziennika. W tym celu musisz napisać w pliku /etc/rsyslog.conf,
Teraz przyjmie także dzienniki z dziennika. Ale sugeruję, że nie powinieneś zmieniać pliku /etc/rsyslog.conf.
Na końcu pliku /etc/rsyslog.conf zapisany jest wiersz:
Oznacza to, że wszystkie pliki z rozszerzeniem .conf na tym końcu w folderze /etc/rsyslog.d/ powinny zostać uwzględnione podczas ładowania rsyslog. Wszystkie niestandardowe konfiguracje powinny więc znajdować się w tych plikach
Sugeruję utworzenie pliku /etc/rsyslog.d/journald.conf i wklejenie w nim poniższego fragmentu.
Poniżej znajduje się fragment oficjalnej strony imjournal z rsyslog
Wiersz 1 - ładuje moduł imjournal do przyjmowania dzienników z dziennika
2 - Moduł parsowania mmjsonparse jest używany do analizowania dzienników
3 - Zbudowano je w opisanym formacie w szablonie
4 - Analizuje te dzienniki za pomocą modułu mmjsonparse.
5 - Wysyła te dzienniki do pliku, a mianowicie / var / log / ceelog zgodnie ze strukturą podaną w danym szablonie, za pomocą modułu omfile (moduł wyjściowy plik - wyjście do pliku).
Wprowadź zmiany w konfiguracji zgodnie z potrzebami.
źródło