[19] Rsyslog – zarządzanie logami
19 marca 2022To jest podstawowe użycie Rsyslog, czyli demona usługi zarządzania dziennikami.
[1] W CentOS Stream 8 moduł [imjournal] jest domyślnie ustawiony na Rsyslog.
Dlatego Rsyslog importuje komunikaty syslog z usługi Journald, która jest usługą zarządzania dziennikami systemowymi.
[root@vlsr01 ~]# grep imjournal /etc/rsyslog.conf # local messages are retrieved through imjournal now. module(load="imjournal" # provides access to the systemd journal StateFile="imjournal.state") # File to store the position in the journal
[2] Przechowywane reguły rejestrowania danych konfiguruje się w [/etc/rsyslog.conf].
[root@vlsr01 ~]# grep -v -E "^#|^$" /etc/rsyslog.conf module(load="imuxsock" # provides support for local system logging (e.g. via logger command) SysSock.Use="off") # Turn off message reception via local log socket; # local messages are retrieved through imjournal now. module(load="imjournal" # provides access to the systemd journal StateFile="imjournal.state") # File to store the position in the journal global(workDirectory="/var/lib/rsyslog") module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat") include(file="/etc/rsyslog.d/*.conf" mode="optional") *.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 # jak pisać zasady : (Obiekt).(Priorytet) (Akcja) # np : *.info;mail.none;authpriv.none;cron.none /var/log/messages # -> [syslog] messages [info] Priorytet wszystkich obiektów są przechowywane w [/var/log/messages] # -> ale wiadomości z [mail], [authpriv], [cron] obiekty nie są przechowywane w [/var/log/messages] # [-] dodany na początku nazwy pliku oznacza asynchroniczne wyjście # jeśli [-] nie zostanie dodane, dane logowania są zapisywane z wyjściem synchronicznym # Obiekty # kern : komunikaty jądra # auth : wiadomości związane z uwierzytelnianiem # authpriv : wiadomości związane z uwierzytelnianiem (prywatne) # cron : cron lub powiązane wiadomości # mail: wiadomości związane z usługami pocztowymi # news: wiadomości związane z wiadomościami (news) # uucp : wiadomości związane z uucp # daemon : wiadomości związane z usługami demona # user: poziom użytkownika, przetwarza powiązane wiadomości # lpr : komunikaty związane z drukarką # syslog : wewnętrzne komunikaty związane z syslog # local0 - local7 : możliwe do użycia w ustawieniach niestandardowych # Priorytety # emerg: problemy z paniką jądra/systemu # alert: trzeba natychmiast poprawić - więcej niż krytyczne (crit) # crit : trzeba natychmiast poprawić # err : typowe błędy, niepilne awarie # warning: komunikaty ostrzegawcze # notice: nie błędy, ale wykryto kilka nietypowych zdarzeń # info: normalne komunikaty operacyjne # debug : informacje debugowania # none : brak (brak wyjścia) # jeśli chcesz przechowywać tylko określone wiadomości priorytetowe # dodaj [=] jak poniżej # np: kern.=crit /dev/console
[3] Jeśli chcesz zmienić ustawienie, aby Rsyslog odbierał komunikaty syslog z gniazda UNIX, a nie domyślnie Ssystemd Journal, zmień konfigurację jak poniżej.
Ustawienie UNIX Socket jest domyślnie ustawione w Ubuntu i podobnych Linuxach.
[root@vlsr01 ~]# mcedit /etc/rsyslog.conf # linie 9-13: zmień jeśli potrzebujesz # zmień na SysSock.Use=on # zakomentuj modul imjournal module(load="imuxsock" # provides support for local system logging (e.g. via logger command) SysSock.Use="on") # Turn off message reception via local log socket; # local messages are retrieved through imjournal now. #module(load="imjournal" # provides access to the systemd journal # StateFile="imjournal.state") # File to store the position in the journal [root@vlsr01 ~]# systemctl restart rsyslog
[4] Aby przesłać dane logowania do zdalnych hostów, skonfiguruj jak poniżej.
# konfiguracja na serwerze [vlsr01] (odbiera dane ze zdalnego hosta [vlsr02]) [root@vlsr01 ~]# mcedit /etc/rsyslog.conf # linie 23-24: odkomentuj #linia 26: wpisz hosty które mogą się połączyć module(load="imtcp") # needs to be done just once input(type="imtcp" port="514") $AllowedSender TCP, 127.0.0.1, 192.168.100.0/24, *.zicher.lab [root@vlsr01 ~]# systemctl restart rsyslog # jeśli firewalld pracuje otwórz port 514/tcp [root@vlsr01 ~]# firewall-cmd --add-port=514/tcp --permanent [root@vlsr01 ~]# firewall-cmd –reload # konfiguracja na hoście kliencie [vlsr02] (wysyła dane do serwera [vlsr01]) [root@vlsr02 ~]# mcedit /etc/rsyslog.conf # dodaj na końcu action(type="omfwd" queue.filename="fwdRule_vlsr01.zicher.lab" queue.maxdiskspace="1g" queue.saveonshutdown="on" queue.type="LinkedList" action.resumeRetryCount="-1" Target="vlsr01.zicher.lab" Port="514" Protocol="tcp") # queue.filename: nazwa_pliku kolejki # queue.maxdiskspace : maxdiskspace dla kolejki # queue.saveonshutdown=on : zapisz dane kolejki na dysku podczas zamykania systemu # queue.type=LinkedList : asynchroniczna kolejka, która może przechowywać 10 000 wiadomości # action.resumeRetryCount=-1 : kontynuuj ponawianie próby wysłania, gdy serwer syslog nie odpowiada # Target=*** : określ hosta serwera syslog [root@vlsr02 ~]# systemctl restart rsyslog # konfiguracja skończona, sprawdźmy czy widać logi ze zdalnego systemu [root@vlsr01 ~]# tail /var/log/secure Mar 18 18:56:03 vlsr01 sshd[1004]: Server listening on 0.0.0.0 port 22. Mar 18 18:56:03 vlsr01 sshd[1004]: Server listening on :: port 22. Mar 18 18:57:21 vlsr01 sshd[1593]: Accepted password for root from 192.168.100.155 port 57515 ssh2 Mar 18 18:57:21 vlsr01 systemd[1598]: pam_unix(systemd-user:session): session opened for user root by (uid=0) Mar 18 18:57:22 vlsr01 sshd[1593]: pam_unix(sshd:session): session opened for user root by (uid=0) Mar 18 19:21:12 vlsr01 sshd[18936]: Accepted password for root from 192.168.100.155 port 59163 ssh2 Mar 18 19:21:12 vlsr01 sshd[18936]: pam_unix(sshd:session): session opened for user root by (uid=0) Mar 18 22:05:11 vlsr02 sshd[6974]: pam_unix(sshd:session): session closed for user root Mar 18 22:05:21 vlsr02 sshd[7038]: Accepted password for root from 192.168.100.155 port 57115 ssh2 Mar 18 22:05:21 vlsr02 sshd[7038]: pam_unix(sshd:session): session opened for user root by (uid=0)