Syslog

Demonem odpowiedzialnym za logi jest rsyslogd. Czyta on konfigurację z pliku /etc/rsyslog.conf i plików w katalogu /etc/rsyslog.d. Demon domyślnie pracuje na porcie 514 i może być skonfigurowany do pracy zarówno na protokole UDP jak i TCP. Domyślnie wg konfiguracji /etc/rsyslog.conf logi składowane są w katalogu /var/log. Inne usługi takie jak audit, libvirt, Samba, Apache i GNOME również składują swoje logi w katalogu /var/log.

Uruchamianie i zatrzymywanie demona rsyslogd:
# systemctl stop rsyslog
# systemctl start rsyslog

W czasie uruchamiania rsyslogd w katalogu /var/run tworzony jest plik PID syslogd.pid, co zapobiega uruchamianiu wielu instancji demona w jednym czasie.

 

Plik konfiguracyjny /etc/rsyslogd.conf.

#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal

#### GLOBAL DIRECTIVES ####
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state

#### RULES ####
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

Plik podzielony jest na trzy sekcje: Modules, Global Directives i Rules. W sekcji Modules wczytywane są moduły imuxsock i imjournal. Moduł imuxsock zapewnia wsparcie dla lokalnego logowania przez komendę logger. Moduł imjournal pozwala na dostęp do systemd journal.

Sekcja Global Directives zawiera pięć aktywnych dyrektyw. Pierwsza wskazuje położenie plików pomocniczych, druga powoduje zapisywanie przechwytywanych komunikatów w sposób tradycyjny. Trzecia dyrektywa instruuje demona aby odczytywał dodatkowe pliki konfiguracyjne z katalogu /etc/rsyslogd.d/. Czwarta nakazuje aby demon otrzymywał lokalne komunikaty przez imjournal a nie przez stare gniazdo do logowania.  Ostatnia dyrektywa definiuje plik do przechowywania pozycji w journalu.

W sekcji Rules każda linia zawiera dwie kolumny. Lewa kolumna to selektor, prawa to akcja. Selektor podzielony jest na dwie części oddzielone kropką: obiekt (facility – po lewej) i priorytet (priority – po prawej). Wspierane obiekty to: auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, local0 do local7, znak * oznacza wszystkie obiekty. Wspierane priorytety to emerg, alert, crit, error, warning, notice, info, debug oraz none (kolejność od najbardziej krytycznego do najmniej krytycznego). Znak * oznacza wszystkie priorytety. Można także używać znaku = aby logować komunikaty o określonym priorytecie lub znaku ! aby ignorować komunikaty o określonym priorytecie.

Pierwsza linia w sekcji Rules powoduje zapisywanie wszystkich komunikatów do pliku /var/log/messages i ignorowanie wszelkich komunikatów generowanych przez mail, authentication i cron. Druga, trzecia i czwarta linia powoduje logowanie komunikatów generowanych przez authentication, mail, cron do plików secure, maillog i cron w katalogu /var/log. Piąta linia powoduje wyświetlanie komunikatów awaryjnych na terminalach wszystkich zalogowanych użytkowników. Szósta linia powoduje logowanie krytycznych komunikatów uucp i news do pliku /var/log/spooler. Ostatnia linia jest do logowania komunikatów przy ładowaniu systemu do pliku /var/log/boot.log.

Po dokonaniu jakichkolwiek zmian w pliku rsyslog.conf najlepiej uruchomić polecenie rsyslogd z opcją -N i określić poziom gadatliwości (verbosity) aby sprawdzić czy plik zawiera błędy:

# rsyslogd –N 1

 

Rotowanie logów.

Logi systemowe są rotowane każdego dnia przez skrypt /etc/cron.daily/logrotate  wywołujący komendę logrotate. Plikiem konfiguracyjnym mechanizmu rotacji logów jest plik /etc/logrotate.conf.

# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}/v
ar/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}#
system-specific logs may be also be configured here.

Częstotliwość rotowania logów ustawiona jest na jeden raz w tygodniu (weekly). Rotowane logi utrzymywane są przez cztery tygodnie przed wykasowaniem ich. Jest możliwość kompresji logów przy pomocy gzip. Komenda logrotate czyta także dodatkowe pliki konfiguracyjne umieszczone w katalogu /etc/logrotate.d

 

Log systemowy.

Wszelkie aktywności systemu domyślnie logowane są do pliku /var/log/messages.

Obserwowanie zmiany logów w czasie rzeczywistym:
# tail -f /var/log/messages

Dobrym zwyczajem jest używanie komendy tail do obserwowania logów w czasie uruchamiania lub restartowania usług systemowych czy też w czasie ich testowania celem rozwiązania napotkanych problemów.

Leave a Reply

Your email address will not be published. Required fields are marked *