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í.
  • instagram viewer
  • 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ší

PodíltweetPodílE-mailem

Související témata

  • Linux
  • Správa systému
  • Linuxové příkazy

O autorovi

Mwiza Kumwenda (52 zveřejněných článků)

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.

Více od Mwizy Kumwendy

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