Protokolování je kritickým aspektem správy serveru Linux. Protokolové zprávy jsou užitečné pro analýzu hlavních příčin a předcházení potenciálním chybám v budoucnu. Analýza a ladění chyb serveru je základní dovedností IT inženýrů i systémových administrátorů.
Tato příručka vám ukáže, jak nastavit vzdálený protokolovací server, známý také jako hostitel protokolu, v systému Linux. Hostitel protokolů vám umožňuje agregovat místní protokoly Linuxu na vzdálený centralizovaný server pro snadný přístup a analýzu.
Proč mít vyhrazený server protokolů?
Operační systém Linux zaznamenává většinu aktivit na vašem serveru za účelem auditování a ladění pomocí démona syslog (system logging protocol). Možná se tedy ptáte, proč pro své protokoly potřebuji vyhrazený server? Zde jsou některé výhody vyhrazeného protokolovacího serveru:
- Lepší zabezpečení, protože server vzdáleného protokolování má pouze několik portů otevřených ven.
- Vylepšený výkon serveru, protože hostitel vzdáleného protokolování nespouští mnoho služeb kromě služeb používaných pro protokolování.
- Usnadňuje archivaci a správu protokolových zpráv.
Zprávy protokolu jsou důležité pro audit vašich serverů a základního uspořádání a jsou základní součástí postupů preventivní údržby na vaší serverové infrastruktuře.
Krok 1: Instalace rsyslog na Linux
Tato příručka se zaměřuje na Ubuntu 20.04, ale proces by měl být v podstatě stejný, pokud používáte jiné běžné distribuce Linuxu.
rsyslog je služba vzdáleného protokolování pro Linux a je standardně předinstalována ve většině moderních distribucí Linuxu, například Ubuntu a dalších systémech založených na Debianu.
Služba rsyslog je moderní a vylepšený démon pro syslog, který vám umožňuje spravovat protokoly pouze lokálně. Pomocí démona rsyslog můžete posílat své místní protokoly na nějaký nakonfigurovaný vzdálený server Linux.
Pokud nemáte na svém PC nainstalovaný rsyslog, můžete to snadno udělat pomocí následujícího příkazu v distribucích založených na Debianu:
sudo apt install rsyslog
V Red Hat Linuxu jej můžete nainstalovat zadáním:
yum nainstalovat rsyslog
Na Fedoře a jejích derivátech spusťte:
dnf nainstalovat rsyslog
Chcete-li nainstalovat rsyslog na Arch Linux:
yay -S rsyslog
Chcete-li zkontrolovat stav rsyslog, spusťte následující příkaz:
systemctl status rsyslog
Výstup:
Krok 2: Konfigurace serveru Log Host Server
Hostitel protokolu je server konfigurovaný pro příjem zpráv protokolu z jiných serverů nebo počítačů. Konfigurace rsyslog se nachází v /etc/rsyslog.conf soubor.
Můžete otevřít /etc/rsyslog.conf pomocí souboru libovolný textový editor dle vašeho výběru. V této příručce budeme používat Vim.
K provádění změn v konfiguračním souboru budete potřebovat zvýšená oprávnění.
Než začnete upravovat konfigurační soubor, měli byste si vytvořit zálohu nebo kopii souboru. Chcete-li to provést, spusťte příkaz:
sudo cp /etc/rsyslog.conf /etc/rsyslog_original.config
Dále otevřete /etc/rsyslog.conf soubor pomocí textového editoru.
sudo vim /etc/rsyslog.conf
Existují dva protokoly, které můžete použít pro odesílání/příjem souborů protokolu s rsyslog: TCP a UDP. Tato příručka vám ukáže, jak nakonfigurovat obojí.
Aby vzdálené protokolování fungovalo, nemusíte konfigurovat UDP i TCP. Vyberte si pouze jednu ze dvou.
Pokud dáváte přednost použití UDP, vyhledejte a odkomentujte následující řádky odstraněním prokladu Libra (#) symbol před řádky. Tyto řádky najdete v konfiguračním souboru v sekci moduly.
modul (load="imudp")
vstup (type="imudp" port="514")
Pokud dáváte přednost použití TCP, odkomentujte následující řádky odstraněním prokladu Libra (#) symbol umístěný na začátku řádků:
modul (load="imtcp")
vstup (type="imtcp" port="514")
Následující obrázek ukazuje konfigurační soubor rsyslog nakonfigurovaný pro použití komunikace UDP:
Dále nakonfigurujte umístění, kam bude rsyslog ukládat vaše protokoly. Pro lepší organizaci byste měli příchozí protokoly kategorizovat podle jejich původu. Definujte šablonu v konfiguračním souboru rsyslog přidáním následujících řádků:
$template remote-incoming-logs, "/var/log/remote/%HOSTNAME%".log
*.* ?remote-incoming-logs
Výše uvedené řádky příkaz rsyslog uložit protokoly do složky /var/log/remote/hostname, kde název hostitele je název vzdáleného klienta, který odesílá zprávy protokolu hostiteli protokolu.
Nyní uložte provedené změny. Pokud používáte Vim, zde je návod, jak uložit a ukončit soubor.
Nakonec restartujte služby rsyslog, aby se změny, které jste provedli, projevily.
sudo systemctl restart rsyslog
Krok 3: Konfigurace brány firewall
Pokud je váš firewall povolen, ujistěte se, že port, který jste nakonfigurovali výše, je schopen komunikovat s vnějším světem. Chcete-li povolit příchozí protokoly, budete muset upravit pravidla brány firewall.
Pro distribuce založené na Debianu jednoduše použijte nástroj UFW, abyste povolili přenosový protokol UDP nebo TCP.
Příbuzný: Jak nakonfigurovat bránu firewall v Ubuntu pomocí UFW
Pokud používáte UDP, spusťte následující příkaz, kde 514 je nakonfigurované číslo portu:
sudo ufw 514/udp
Pokud používáte TCP na portu 514, jednoduše spusťte:
sudo ufw 514/tcp
Na Fedoře můžete použít firewall-cmd k dosažení podobných výsledků.
firewall-cmd --zone=zone --add-port=514/udp
Pro Red Hat Linux otevřete soubor iptables soubor umístěný na /etc/sysconfig/iptables pomocí textového editoru podle vašeho výběru a přidejte následující pravidlo:
-A INPUT -m stav --stav NEW -m udp -p udp --dport 514 -j PŘIJÍMAT
Restartujte službu iptables, aby se změny projevily.
restartování služby iptables
Krok 4: Konfigurace klienta protokolování
Klient je stroj, který odesílá své protokoly na vzdálený nebo centralizovaný hostitelský server protokolů. Otevřete konfigurační soubor rsyslog umístěný na /etc/rsyslog.conf:
sudo vim /etc/rsyslog.conf
Pokud používáte UDP, přidejte následující řádek, kde 192.168.12.123 je IP adresa vzdáleného serveru, budete zapisovat své protokoly na:
*.* @192.168.12.123:514
Pokud používáte TCP, přidejte místo toho následující řádek. Všimněte si, že řádek má dva @ symboly.
*.* @@192.168.12.123:514
Uložte změny a restartujte službu rsyslog na klientovi pomocí příkazu:
sudo systemctl restart rsyslog
Krok 5: Zobrazení zpráv protokolu na serveru
Pomocí SSH se můžete přihlásit ke svému vzdálenému serveru a zobrazit protokoly odeslané z klientských serverů. V tomto případě je rsyslog nakonfigurován tak, aby ukládal klientské protokoly do /var/log/remote adresář vzdáleného serveru.
cd /var/logs/remote
Poté vypište obsah adresáře pomocí příkaz ls:
ls -l
Jak můžete vidět na výstupu, adresář obsahuje zprávy protokolu pro pojmenované vzdálené servery andiwa a rukuru. Jejich protokolové soubory jsou pojmenovány andiwa.log a rukuru.log resp.
Potom se můžete podívat na soubory protokolu pomocí textového editoru nebo pomocí Linuxové nástroje pro prohlížení souborů jako je kočka nebo méně.
Vzdálené protokolování vám dává větší kontrolu
Tato příručka se zabývá tím, jak nastavit vzdálený protokolovací server (hostitel protokolu) v systému Linux.
Hostitel protokolů vám nabízí lepší organizaci a kontrolu, pokud jde o protokolování. I ve scénářích, kdy je systém poškozený nebo nedostupný, můžete stále zobrazit jeho protokoly z hostitele protokolů a zjistit, co se pokazilo.
Začínáme s přihlašováním do systému v Linuxu
Přečtěte si další
Související témata
- Linux
- Správa systému
- Linuxové příkazy
O autorovi
Mwiza vyvíjí software z povolání a ve velké míře píše o Linuxu a front-end programování. Mezi jeho zájmy patří historie, ekonomika, politika a podniková architektura.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem