Rsyslog je protokolovací program s otevřeným zdrojovým kódem, který používá síť IP k odesílání všech souborů protokolu na centralizovaný server protokolů. Je to vylepšená verze Syslog na Linuxu. Umožňuje správcům systému sledovat všechny servery z jednoho místa.
Rsyslog funguje v modelu klient/server, který přijímá protokoly od vzdálených klientů na portu 514 nebo libovolném nakonfigurovaném vlastním portu přes protokol TCP/UDP. Podporuje také databáze ( MySQL, PostgreSQL ), které se používají k ukládání protokolů.
Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související konfigurační dotazy Rsyslog v systému Linux.
V této souvislosti se podíváme na to, jak nainstalovat a nakonfigurovat Rsyslog na Debian 10 / 11.
Postup instalace a konfigurace serveru Rsyslog v systému Debian Linux
1. Nainstalujte server Rsyslog
Chcete-li začít, nainstalujte balíček Rsyslog z úložiště Debian na váš server. Proveďte níže uvedený příkaz:
$ sudo apt-get install rsyslog -y
Po dokončení instalace zkontrolujte, zda Rsyslog běží správně, jak je zobrazeno níže:
$ sudo systemctl status rsyslog
Pokud je vše v pořádku, služba Rsyslog je nyní na vašem serveru spuštěna.
2. Nakonfigurujte server Rsyslog
Nyní, když je spuštěn, nakonfigurujte Rsyslog tak, aby běžel jako server na vašem systému Debian. Otevřete konfigurační soubor /etc/rsyslog.conf:
$ sudo vim /etc/rsyslog.conf
Vyhledejte řádky níže a odkomentujte je pro příjem protokolu UDP a TCP od vzdálených klientů:
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
Dále musíme určit šablonu, kterou bude démon Rsyslog používat k ukládání příchozích protokolů z klientských systémů. Na konec konfiguračního souboru připojte následující řádky:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs
Poté restartujte rsyslog, aby se změny projevily:
$ sudo systemctl restart rsyslog
Rsyslog naslouchá na portu 514. Výchozí port můžete upravit v konfiguračním souboru. Chcete-li ověřit, že démon rsyslog naslouchá na portu 514, spusťte následující příkaz ss:
$ sudo ss -tunlp | grep 514
3. Nakonfigurujte bránu firewall pro rsyslog
Démon rsyslog je nyní nakonfigurován na serveru. Pokud jste za firewallem UFW, povolte port 514, aby server mohl přijímat zprávy protokolu od klientů. Proveďte příkazy:
$ sudo ufw allow 514/tcp
$ sudo ufw allow 514/udp
Aby byla použita nová pravidla, restartujte bránu firewall. Proveďte příkaz:
$ sudo ufw reload
4. Nakonfigurujte klienta Rsyslog
Dále nakonfigurujte klienta Rsyslog pro odesílání zpráv protokolu na server Rsyslog. Ujistěte se, že je RSyslog správně nainstalován na vašem klientském počítači.
Nejprve otevřete konfigurační soubor:
$ sudo nano /etc/rsyslog.conf
Zkopírujte a vložte řádky níže na konec souboru:
#Enable sending system logs over UDP to rsyslog server
*.* @rsyslog-server-ip:514
#Enable sending system logs over TCP to rsyslog server
*.* @@rsyslog-server-ip:514
Výše uvedená konfigurace nasměruje klienta k odeslání souborů protokolu na server rsyslog pomocí protokolů TCP i UDP. Nahraďte rsyslog-server-ip svou IP adresou serveru.
Pokud dojde k výpadku vzdáleného serveru a potřebujete zachovat své protokoly, můžete nastavit vyrovnávací paměť diskové fronty přidáním následujících řádků do konfiguračního souboru klienta:
##Set disk queue when rsyslog server will be down:
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
Uložte a zavřete soubor. Znovu načtěte službu rsyslog, aby se změny projevily:
$ sudo systemctl restart rsyslog
5. Zobrazení souborů protokolu klientů
Soubory protokolu Rsyslog jsou uloženy ve složce /var/log/ na vašem serveru. Chcete-li zobrazit protokoly klienta, použijte následující příkaz ls:
$ ls /var/log/
Ve výchozím nastavení jsou soubory protokolu klienta uloženy ve složce pojmenované podle názvu hostitele klientského systému. V mém případě má klientský systém hostitelské jméno Debian.
Dále spusťte následující příkaz k zobrazení protokolů obsažených v adresáři klienta:
$ sudo ls -l /var/log/debian/
Na svém terminálu si také můžete prohlížet protokoly v reálném čase. Podívejme se na protokoly od uživatele root. Spusťte níže uvedený příkaz:
$ sudo tail -f /var/log/debian/sudo.log