Konfigurace rSyslog Ubuntu 24.04 (Setup rSyslog Ubuntu 24.04)

By | 28/10/2024

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:

[1] https://serverfault.com/questions/691048/kernel-log-stays-empty-rsyslogd-imklog-cannot-open-kernel-log-proc-kmsg

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/

Jak nakonfigurovat Syslog server v Linuxu

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *