Syslog
Transkrypt
Syslog
Syslog Dziennik systemowy System rejestrujący zdarzenia syslog ● ● Jądro systemu, usługi systemowe i różne aplikacje zapisują informacje o swoim działaniu w dziennikach systemowych (logach). Dlatego pierwszym miejscem, do którego należy zajrzeć, kiedy jakaś usługa nie uruchamia się poprawnie, jest odpowiedni dziennik. W systemach uniksowych i linuksowych dominującym systemem rejestracji zdarzeń jest syslog. Poznamy bliżej jedną z jego nowszych wersji o nazwie rsyslog. Katalog dzienników ● /var/log – Pliki do których syslog zapisuje zdarzenia Pliki w /var/log ● ● messages lub syslog - główny dziennik systemowy dmesg - komunikaty o urządzeniach wykrytych w trakcie startu systemu i o ładowanych sterownikach do tych urządzeń, do ich obejrzenia można posłużyć się programem dmesg ● boot.log - komunikaty skryptów startowych ● daemon.log - komunikaty usług ● kern.log - wszystkie komunikaty generowanie przez jądro ● ● ● ● auth.log - komunikaty pochodzące z części systemu odpowiedzialnej za uwierzytelnianie użytkowników (np. informacje o poleceniach wykonanych przez sudo) mail.log - komunikaty związane z obsługą poczty wtmp - zapisy logowania użytkowników do systemu, do ich oglądania służy polecenie last lastlog - informacja o ostatnich logowaniach, do jej oglądania służy polecenie lastlog Konfiguracja demona syslog (rsyslog) ● ● Za zbieranie informacji o działaniu systemu i umieszczania ich w plikach odpowiada usługa systemowa syslogd (lub nowsza rsyslogd). Plikiem konfiguracyjnym dla syslogd jest /etc/syslog.conf a dla rsyslogd /etc/rsyslog.conf (zachowana jest zgodność wstecz). (r)syslog umożliwia sortowanie komunikatów ze względu na źródło ich pochodzenia i stopień ważności oraz na kierowanie ich w różne miejsca: do plików, na terminale użytkowników a także na inne komputery. Plik konfiguracyjny ● Plik konfiguracyjny opisuje reguły systemu rejestrowania. Podstawowy format jest następujący: usługa.poziom <tab> przeznaczenie ● Usługa określa z jakiej części systemu pochodzi informacja. Może przyjąć następujące wartości: auth, authpriv, cron, daemon, kern, ftp, local0-7, lpr, mail, mark, news, syslog, user, uucp. Plik konfiguracyjny c.d. ● ● Poziom określa priorytety komunikatów. Wszystkie wiadomości o tym lub wyższym priorytecie trafiają do dziennika. Poziomy ważności są następujące (w kolejności rosnącego znaczenia): debug, info, notice, warning (warn), error (err), crit, alert, emerg (panic). Znak "=" przed nazwą poziomu wskazuje, że należy zbierać wiadomości o dokładnie takim poziomie, a "!" oznacza "oprócz tego i wyższych poziomów". Symbol "*" oznacza wszystkie usługi i poziomy a "none" "żaden poziom". W pojedynczej regule może występować wiele usług oddzielonych przecinkami lub par usługa-poziom oddzielonych średnikami. /etc/rsyslogd.conf ● ● ● ● ● ● ● Przeznaczenie określa gdzie trafiają zebrane komunikaty. Może to być między innymi: plik - należy podać pełną ścieżkę np. /var/log/messages łącze nazwane (przydatne przy debugowaniu) - nazwa łącza jest poprzedzona znakiem | terminal np. tty6 maszyna zdalna - nazwa maszyny poprzedzona jest znakiem @, np. @192.168.0.1 lista użytkowników np: root,admin (stara składnia) lub :omusrmsg:root,admin (składnia rsyslog); * lub :omusrmsg:* spowoduje wyświetlenie komunikatu wszystkim zalogowanym użytkownikom śmietnik: ~ Przykłady ● mail.info – ● /var/log/mail.log Powyższy wpis spowoduje, że komunikaty systemu pocztowego o poziomach info i wyższych będą trafiały do pliku /var/log/mail.log *.emerg;user.none – * Wszystkie komunikaty awaryjne oprócz takich, które są generowane przez procesy użytkownika, pojawią się na ekranach wszystkich zalogowanych użytkowników. Logger ● Testowanie sysloga – Polecenie logger jest interfejsem do systemu syslog z poziomu interpretera poleceń (powłoki). Warto je wykorzystać do testowania zmian w pliku konfiguracyjnym. Na przykład aby sprawdzić regułę: ● ● local2.info /tmp/test.log logger -p local2.info "test local2 info" Logrotate ● ● Samo zbieranie i czytanie dzienników to nie wszystko o co powinien zadbać administrator - na maszynach z setką intensywnie pracujących użytkowników mogą one przyrastać bardzo szybko powodując przepełnienie systemu plików. Należy pamiętać, że samo skasowanie pliku nie rozwiązuje problemu (i-węzeł pliku nie zostanie zwolniony, dopóki plik nie zostanie zamknięty). Aby ułatwić zadania administratorowi system udostępnia polecenie logrotate, które umożliwia rotację plików z dziennikami, ich kompresję, przesyłanie pocztą do użytkowników i usuwanie. Jest zazwyczaj uruchamiany codziennie jako zadanie regularne przez podsystem cron. Jego plik konfiguracyjny to /etc/logrotate.conf Analiza dzienników ● Istnieją również narzędzia wspomagające analizowanie dzienników, tworzące odpowiednie raporty i przesyłające je pod wskazany adres. Przykładami takich narzędzi są swatch i logcheck. Zadanie ● Skonfiguruj syslog tak, aby: – wszystkie zapisy z poziomu debug trafiały do pliku /var/log/debug.log – wszystkie komunikaty poziomu co najmniej crit poza komunikatami związanymi z pocztą trafiały do pliku /var/log/critical, – komunikaty z poziomu emerg pochodzące od local2 (na potrzeby testowania) trafiały do wszystkich zalogowanych użytkowników, – korzystając z xconsole można było śledzić błędy (co najmniej poziom err) związane z uwierzytelnianiem. Rozwiązanie ● *.=debug ● *.=debug -/var/log/debug.log ~ ● *.crit;mail.none /var/log/critical ● local2.emerg * ● auth.err |/dev/xconsole Cron ● Crontab -e ● Crontab ● min hour ● 30 ● ● ● day/month month day/week Execution time 0 1 1,6,12 * – 00:30 Hrs on 1st of Jan, June & Dec. 0 20 * 10 in Oct. 1-5 –8.00 PM every weekday (Mon-Fri) only 0 0 1,10,15 * * – midnight on 1st ,10th & 15th of month 5,10 0 10 * 1 – At 12.05,12.10 every Monday & on 10th of every month