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