Last Updated on 28/10/2024 by administrator
Konfigurace rSyslog Ubuntu 24.04 (Setup rSyslog Ubuntu 24.04)
Konfigurace rSyslog Ubuntu 24.04 (Setup rSyslog Ubuntu 24.04)
Motivace:
Díky této instalaci a konfiguraci je možné ukládat generované logy síťových zařízení na centrální Syslog server.
OS:
Implementace byla prováděna na Ubuntu 24.04 LTS.
Implementace:
Aktualizace seznamu balíčků z repozitářů:
sudo apt update
Instalace rSyslog serveru (pravděpodobně již bude součástí Ubuntu):
sudo apt install rsyslog
Pozn: Samotný rSyslog server by již měl být součástí Ubuntu.
Verze rSyslog serveru:
rsyslogd -v
Částečný výpis příkazu rsyslogd -v:
rsyslogd 8.2312.0 (aka 2023.12) compiled with: PLATFORM: x86_64-pc-linux-gnu
Přejít do konfigurace rSyslog serveru v rsyslog.conf:
sudo vim /etc/rsyslog.conf
Odkomentovat module(load=“imudp“) a input(type=“imudp“ port=“514″):
module(load="imudp") input(type="imudp" port="514")
A zakomentovat následující řádky:
#$FileOwner syslog #$FileGroup adm #$FileCreateMode 0640 #$DirCreateMode 0755 #$Umask 0022 #$PrivDropToUser syslog #$PrivDropToGroup syslog
Pozn1.: Syslog zprávy jsou standardně zasílány přes protokol UDP, ale je možné použít TCP protokol odkomentováním module(load=“imtcp“) a input(type=“imtcp“ port=“514″).
Pozn.2: Příkazy, které byly zakomentovány v rsyslog.conf, jsou již ve verzi Ubuntu 18.04 LTS a Ubuntu 20.04 LTS zastaralé.
Přejít do konfigurace rSyslog serveru v 50-default.conf:
sudo vim /etc/rsyslog.d/50-default.conf
Oddělení (odfiltrování) jednotlivých syslog zpráv posílané různými síťovými zařízeními se provede přidáním příkazů na začátek souboru 50-default.conf:
#Logging from mikrotik if $fromhost-ip == '192.168.0.1' then /var/log/mikrotik.log & stop #Logging from linksys if $fromhost-ip == '192.168.0.254' then /var/log/linksys.log
, kde
192.168.0.1 – je IP adresa síťového zařízení posílající syslog zprávy (zde mikrotik)
/var/log/mikrotik.log – je umístění syslog souboru pro dané zařízení (v tomto případě pro mikrotik)
& stop – zajistí, že zpracování zprávy se zastaví po prvním splnění podmínky „if“, což zamezí dalšímu zbytečnému zpracování
Aby se aplikovaly změny provést restart rSyslog služby:
sudo service rsyslog restart
nebo
sudo systemctl restart rsyslog
Pozn. soubor mikrotik.log a linksys.log se měl vytvořit při přijetí prvního logy z daného síťového zařízení. Nicméně pokud se soubor nevytvořil, pomoci sudo touch /var/log/mikrotik.log bude soubor vytvořen.
Pokud je nakonfigurovaný firewall (lze zjistit příkazem sudo ufw status), je nutné povolit provoz UDP/514:
sudo ufw allow 514/udp
Ověření funkce rSyslog serveru:
sudo service rsyslog status
nebo
sudo systemctl status rsyslog
Výpis příkazu sudo service rsyslog status:
* rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled) Active: active (running) since Fri 2024-10-25 17:25:04 CEST; 15s ago TriggeredBy: * syslog.socket Docs: man:rsyslogd(8) man:rsyslog.conf(5) https://www.rsyslog.com/doc/ Process: 8148 ExecStartPre=/usr/lib/rsyslog/reload-apparmor-profile (code=exited, status=0/SUCCESS) Main PID: 8154 (rsyslogd) Tasks: 4 (limit: 9237) Memory: 1.0M (peak: 4.9M) CPU: 174ms CGroup: /system.slice/rsyslog.service `-8154 /usr/sbin/rsyslogd -n -iNONE
Alternativní ověření:
ps -A | grep rsyslog
Výpis příkazu ps -A | grep rsyslog:
7842 ? 00:00:00 rsyslogd
Syslog zprávy ze síťového zařízení:
Cesta ukládání logů ze síťového zařízení „mikrotik“ byla definována ve /var/log/mikrotik.log:
sudo cat /var/log/mikrotik.log
Výpis příkazu sudo cat /var/log/mikrotik.log:
2024-10-25T18:36:22.015272+02:00 gw.lan firewall,info input: in:wlan1 out:(unknown 0), src-mac b8:69:f4:57:18:94, proto TCP (SYN), 79.124.49.94:50532->192.168.79.18:5964, len 44 2024-10-25T18:36:23.335356+02:00 gw.lan firewall,info input: in:wlan1 out:(unknown 0), src-mac b8:69:f4:57:18:94, proto TCP (SYN), 80.66.83.47:47565->192.168.79.18:25150, len 44 2024-10-25T18:36:24.695306+02:00 gw.lan firewall,info input: in:wlan1 out:(unknown 0), src-mac b8:69:f4:57:18:94, proto TCP (SYN), 147.185.132.61:53438->192.168.79.18:3389, len 44
V reálném čase lze zachytit logy pomocí příkazu:
tail -f /var/log/mikrotik.log
Logy rSyslog serveru:
grep "rsyslog" /var/log/syslog
Vypsání příkazu grep „rsyslog“ /var/log/syslog:
2024-10-25T17:25:04.324605+02:00 syslog-u24 rsyslogd: [origin software="rsyslogd" swVersion="8.2312.0" x-pid="8122" x-info="https://www.rsyslog.com"] exiting on signal 15. 2024-10-25T17:25:04.325994+02:00 syslog-u24 systemd[1]: rsyslog.service: Deactivated successfully. 2024-10-25T17:25:04.327274+02:00 syslog-u24 systemd[1]: Stopped rsyslog.service - System Logging Service. 2024-10-25T17:25:04.360465+02:00 syslog-u24 systemd[1]: Starting rsyslog.service - System Logging Service... 2024-10-25T17:25:04.843621+02:00 syslog-u24 rsyslogd: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2312.0] 2024-10-25T17:25:04.843764+02:00 syslog-u24 systemd[1]: Started rsyslog.service - System Logging Service. 2024-10-25T17:25:04.858300+02:00 syslog-u24 rsyslogd: [origin software="rsyslogd" swVersion="8.2312.0" x-pid="8154" x-info="https://www.rsyslog.com"] start
TIP – rotování logů:
Jako doplněk pro rSyslog server lze využít již předinstalovaný program Logrotate pro lepší správu ukládaných logů. Díky tomu lze logy rotovat, komprimovat, či mazat, pokud dojde k překročení určité velikostí souboru.
Základní parametry lze najít v souboru v logrotate.conf:
cat /etc/logrotate.conf
V souboru logrotate.conf je definována cesta k adresáři /etc/logrotate.d/. Tento adresář obsahuje soubory definované pro jednotlivé aplikace. V tomto případě nás zajímá soubor rsyslog:
vim /etc/logrotate.d/rsyslog
Do souboru /etc/logrotate.d/rsyslog vepsat kód nakonec:
/var/log/mikrotik.log { rotate 4 daily size 100M missingok notifempty delaycompress compress postrotate /usr/lib/rsyslog/rsyslog-rotate endscript }
Popis kódu: Použije rotování logů pro již vytvořený soubor mikrotik.log. Každý den (daily) se bude kontrolovat, zda logovací soubor nepřesáhl 100 MB (size 100M), pokud přesáhne, vytvoří se nový. Maximální počet vytvořených souborů bude 4 (rotate 4), další budou vymazány. Staré logy se budou komprimovat do gzip (compress). Díky zpoždění komprese (delaycompress) se provede komprese až dalšího souboru. Pokud logovací soubor chybí, nevyhodí error hlášku (missingok). Pokud je logovací soubor prázdný, nedojde k rotaci (notefempty). Script (v tomto případě rsyslog-rotate) se spustí po dokončení rotace (postrotate).
Po určité době pak výsledek může vypadat následovně (výpis složky log příkazem ls -lah /var/log/mikrotik.log*):
-rw-r--r-- 1 root root 100M Oct 25 04:09 mikrotik.log
-rw-r--r-- 1 root root 100M Oct 10 18:59 mikrotik.log.1
-rw-r--r-- 1 root root 100M Sep 27 19:32 mikrotik.log.2.gz
-rw-r--r-- 1 root root 100M Sep 12 15:14 mikrotik.log.3.gz
Aby se aplikovaly změny provést restart služby Logrotate:
sudo service logrotate restart
Další příklady: https://www.forpsicloud.cz/navody/seznam-navodu/cervenec-2020/jak-pouzivat-logrotate.aspx a https://www.networkworld.com/article/3218728/how-log-rotation-works-with-logrotate.html
Řešení problémů:
1) Chyba „imklog: cannot open kernel log (/proc/kmsg): Permission denied“ [1]
Tato chyba nastala, když byl rozjetý rSyslog server na PVE Proxmox pod neprivilegiovaným kontejnerem. Jak převést neprivilegiovaný kontejner na privilegiovaný popisuje tento článek.
2024-10-23T22:49:35.832659+02:00 syslog-u24 rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Permission denied. 2024-10-23T22:49:35.832742+02:00 syslog-u24 rsyslogd: activation of module imklog failed [v8.2312.0 try https://www.rsyslog.com/e/2145 ]
Řešení problému:
Problém se dá vyřešit dvěmi způsoby:
1. Pokud není potřeba číst kernel logy přes tento kontejner v Proxmox přejít do rsyslog.conf souboru:
vi /etc/rsyslog.conf
a zakomentovat následující řádek:
#module(load="imklog" permitnonkernelfacility="on")
Provést restart rSyslog služby:
sudo systemctl restart rsyslog
nebo
2. Převést neprivilegiovaný kontejner na privilegiovaný.
Zdroj:
Další články:
Pro Ubuntu 22.04, 20.04 a 18.04 je sepsán článek zde: https://martinuvzivot.cz/jak-nakonfigurovat-syslog-server-v-linuxu/