[Zostało to napisane kilka lat przed powszechnym przyjęciem dziennika na systemowych systemach i nie dotyczy go. Obecnie (pod koniec 2018 r.) Zarówno dziennik, jak i (r) syslog, opisane poniżej, są używane w dystrybucjach takich jak Debian. W innych przypadkach może być konieczne zainstalowanie programu rsyslog, jeśli chcesz go używać jednocześnie, ale integracja z dziennikiem jest prosta.]
Nie będę omawiać rejestrowania w odniesieniu do Ubuntu szczególnie, ponieważ temat jest ogólnie ustandaryzowany dla Linuksa (i uważam, że większość lub całość tego, co mam do powiedzenia, jest również prawdą dla każdego smaku * nix, ale nie uwierz mi na słowo). Nie powiem też wiele o „jak czytać logi” poza odpowiedzią na to pytanie:
Czy założenie jest nawet poprawne, że zostały napisane z myślą o czytelności dla ludzi, czy też są ogólnie oceniane i wykorzystywane przez inne narzędzia?
Myślę, że to zależy od aplikacji, ale ogólnie, przynajmniej w odniesieniu do tego, co trafia do syslog (patrz poniżej), powinny być czytelne dla ludzi. „Sensowne dla mnie” to kolejna kwestia, lol. Jednak mogą być również skonstruowane w taki sposób, aby ułatwić ich analizowanie przy użyciu standardowych narzędzi (grep, awk itp.) Do określonych celów.
Niezależnie od tego, po pierwsze, istnieje rozróżnienie między aplikacjami, które wykonują własne rejestrowanie, a aplikacjami korzystającymi z rejestratora systemu. Apache domyślnie jest tym pierwszym, chociaż można go skonfigurować tak, aby działał później (co myślę, że większość osób uznałoby za niepożądane). Aplikacje, które wykonują własne logowanie, mogłyby to zrobić w dowolny sposób, korzystając z dowolnej lokalizacji pliku (plików), więc nie ma o tym wiele do powiedzenia. Logger systemu jest ogólnie określany jako syslog
.
syslog
„Syslog” to tak naprawdę standard, który jest implementowany z procesem demona zwanym ogólnie syslogd (d jest dla demona!). Dominującym demonem syslog obecnie używanym na Linuksie, w tym ubuntu, jest rsyslogd
. Rsyslogd może wiele zdziałać, ale jak skonfigurowano po wyjęciu z pudełka w większości dystrybucji, emuluje tradycyjny syslog, w którym sortuje się rzeczy do zwykłych plików tekstowych /var/log
. Możesz znaleźć dokumentację na ten temat /usr/share/doc/rsyslog-doc-[version]
(uwaga, jest też /usr/share/doc/rsyslog-[version]
, ale to tylko uwagi z pakietu źródłowego, takie jak NEWS
i ChangeLog
). Jeśli tam jest, to jest HTML, ale Stack Exchange nie pozwala na osadzanie lokalnych łączy plików:
file://usr/share/doc/rsyslog-doc/index.html
Więc możesz spróbować skopiować to wklejając. Jeśli go nie ma, może być częścią osobnego pakietu, który nie jest zainstalowany. Zapytaj swój system pakowania (np apt-cache search rsyslog | grep doc
.).
Konfiguracja jest w /etc/rsyslog.conf
, która ma stronę podręcznika man rsyslog.conf
, chociaż chociaż strona podręcznika stanowi dobre odniesienie, może być mniej przenikalna jako wprowadzenie. Na szczęście podstawy zapasowego pliku rsyslog.conf są zgodne z tradycyjnymi syslog.conf, dla których istnieje wiele wstępów i samouczków. Ten na przykład; to, co chcesz od tego zabrać, podczas podglądania lokalnego pliku rsyslog.conf, to zrozumienie udogodnień i priorytetów („priorytet” jest czasami nazywany loglevel), ponieważ są one częścią wyżej wspomnianego standardu syslog. Powodem, dla którego ten standard jest ważny, jest fakt, że rsyslog faktycznie pobiera swoje rzeczy przez jądro, a to, co implementuje jądro, jest standardem.
W odniesieniu do $
dyrektyw w rsyslog.conf, są one specyficzne dla rsyslog i jeśli zainstalujesz ten opcjonalny pakiet doc, znajdziesz przewodnik po nich rsyslog_conf_global.html
.
Baw się dobrze ... jeśli jesteś ciekawy, jak aplikacje korzystają z rejestratora systemu, spójrz na man logger
i man 3 syslog
.
Log Rotation
Normatywny sposób obracania kłód odbywa się za pomocą narzędzia o nazwie logrotate
(i jest to man logrotate
). Normatywną metodą korzystania z logrotate jest demon cron , chociaż nie trzeba tego robić w ten sposób (np. Jeśli masz tendencję do wyłączania pulpitu codziennie, równie dobrze możesz to zrobić tylko raz podczas uruchamiania przed uruchomieniem syslog, ale, oczywiście po zamontowaniu systemu plików rw).
Jest to wprowadzenie do logrotate dobre tutaj . Zauważ, że logrotate jest nie tylko dla syslog , może być w ogóle używany z dowolnym plikiem. Podstawowym plikiem konfiguracyjnym jest /etc/logrotate.conf
, ale ponieważ konfiguracja ma dyrektywę „dołącz”, zwykle większość rzeczy trafia do poszczególnych plików w /etc/logrotate.d
katalogu (tutaj d dotyczy katalogu, a nie demona; logrotate nie jest demonem).
Ważną rzeczą do rozważenia podczas korzystania z logrotate jest to, w jaki sposób aplikacja będzie ponownie działać, gdy plik dziennika zostanie „obrócony” - innymi słowy przeniesiony - podczas działania aplikacji. Syslogd WRT (r), po prostu przestanie zapisywać do tego dziennika (myślę, że jest to uzasadnione względami bezpieczeństwa). Zwykłym sposobem radzenia sobie z tym jest poinformowanie syslog o ponownym uruchomieniu (i ponownym otwarciu wszystkich swoich plików), dlatego postrotate
w plikach logrotate conf zobaczysz dyrektywę wysyłającą SIGHUP do demona syslog.