Załóżmy, że poza dziennikami serwera WWW Apache nigdy nie miałem kontaktu z jakimikolwiek (profesjonalnymi) dziennikami w żadnym systemie operacyjnym. Logowanie, choć rozumiem niektóre podstawy, jest całkiem nowym tematem. W tej chwili inwestycja w pełne zapoznanie się z tym tematem wydaje się być dość duża, ale nawet jeszcze nie wiem, czy warto wiedzieć więcej niż najbardziej abstrakcyjne pojęcia.
Jakie zasoby zasugerowałbyś, aby ktoś w tej sytuacji zużył (samouczki, strony podręcznika, książki), aby dowiedzieć się o logowaniu?
Jakie dzienniki powinien czytać zwykły użytkownik systemu Linux codziennie / co miesiąc? 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?
Co zwykły użytkownik * nix i programista powinien wiedzieć o tych dziennikach?
Co musisz wiedzieć o rotacji dzienników, jeśli nie oczekuje się, że będziesz zarządzać profesjonalnymi serwerami WWW z dużą ilością zdarzeń?
Odpowiedzi:
[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:
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 jakNEWS
iChangeLog
). Jeśli tam jest, to jest HTML, ale Stack Exchange nie pozwala na osadzanie lokalnych łączy plików: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ęcznikaman 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 nichrsyslog_conf_global.html
.Baw się dobrze ... jeśli jesteś ciekawy, jak aplikacje korzystają z rejestratora systemu, spójrz na
man logger
iman 3 syslog
.Log Rotation
Normatywny sposób obracania kłód odbywa się za pomocą narzędzia o nazwie
logrotate
(i jest toman 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.źródło
syslog-ng
, napiszesz wszystko, co można powiedzieć o logowaniu do systemu Linux. Doskonała odpowiedź./etc/rsyslog.conf
. Na przykład: często wchodzą rzeczy powyżej pewnego priorytetu/var/log/messages
, a rzeczy poniżej/var/log/notice
. Lubię też mieć dziennik, który zawiera wszystko, co powoduje podwójne i potrójne nakładanie się, ale jeśli trzymasz je obracane, to nie jest wielka sprawa.rsyslog
czy nie ma wokół tego opakowania demonalogrotate
, prawda? Dlaczego tak ?