Potřeba centralizovaného serveru Rsyslog
Každý systém *NIX má nějaký druh protokolovacího zařízení, které bude produkovat textové protokoly, které lze zapisovat do libovolného umístění na úložném zařízení (normálně výchozí na lokální diskový oddíl). Nyní je to nezbytné, ale může to také způsobit problémy jako:
- Abyste mohli protokoly uložit, musíte mít na místním serveru dostatečný úložný prostor.
- Musíte zavést rotaci, abyste zabránili jejich přílišnému růstu.
- Pokud protokoly obsahují citlivé informace, jako je číslo kreditní karty, chcete, aby byly uloženy na bezpečném místě, nejlépe ne na místním serveru.
- Pokud dojde k havárii serveru a data nelze obnovit, můžete o protokoly přijít.
Abychom se vyhnuli všem takovým problémům, můžeme použít centralizovaný server syslog. Centralizovaný server syslog poskytuje zabezpečení, odpovídající úložiště, centralizované zálohování atd.
Příspěvek nastiňuje kroky ke konfiguraci Rsyslog pro odesílání souborů protokolu na vzdálený server pomocí TCP i UDP.
Konfigurace centralizovaného serveru Rsyslog
1. Upravte soubor /etc/rsyslog.conf a odkomentujte následující řádky:
Pro TCP;
# vi /etc/rsyslog.conf $ModLoad imtcp $InputTCPServerRun 514
Pro UDP;
# vi /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514Poznámka :K přenosu protokolů na vzdálený server rsyslog můžete použít režim TCP i UDP. Doporučil bych však použít UDP, protože je na klientském serveru z hlediska výkonu velmi snadné. Jedinou nevýhodou použití UDP je to, že některé zprávy protokolu mohou být ztraceny, pokud je server příliš zaneprázdněn, aby mohl přijímat pakety UDP. Použijte TCP tam, kde jsou vaše protokoly kritické; jinak zůstaňte u UDP.
2. Uložte soubor a restartujte službu rsyslog.
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Konfigurace klienta Rsyslog
1. Upravte soubor /etc/rsyslog.conf na klientském serveru a přidejte níže uvedené řádky. Když před vzdáleným hostitelem přidáte jediné @ používáte UDP. Chcete-li použít TCP, použijte @@ místo toho.
Pro UDP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @remote-host:514 *.* @x.x.x.x:514
Pro TCP
# vi /etc/rsyslog.conf # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 *.* @@x.x.x.x:514
Zde nahraďte x.x.x.x vaším centralizovaným serverem rsyslog. Pokud nechcete posílat protokoly se všemi zahrnutými závažnostmi (*.*), můžete upravit poslední řádek takto:
*.info @x.x.x.x:514
2. Uložte soubor a restartujte službu rsyslog.
# service rsyslog restart ### CentOS/RHEL 6 # systemctl restart rsyslog ### CentOS/RHEL 7
Ověření konfigurace
Můžete použít „logger ” pro ruční vygenerování zprávy protokolu a zjištění, zda ji vzdálený server syslog přijímá správně.
Na klientském serveru:
# logger "Test message from the system `hostname`"
Na centralizovaném serveru rsyslog:
# tail /var/log/messages June 15 12:32:01 geeklab root: Test message from the system geeklab
Spuštění Rsyslog na nestandardním portu
Pokud chcete spustit rsyslog na jiném portu, než je výchozí port 514, budete muset provést další změny selinuxu. Chcete-li zobrazit aktuální nastavení portů SELinux pro rsyslog:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 514, 601, 20514
Chcete-li do SELinuxu přidat port UDP 541, použijte příkaz:
# semanage port -a -t syslogd_port_t -p udp 541
Ověřte, zda je port přidán do nastavení SELinux:
# semanage port -l| grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 541, 514, 601, 20514