Kdysi dávno, když jsem byl správcem systému pro jinou společnost na jiné platformě, jsme neměli prostředky k centralizaci souborů protokolů. Většinu rána, když jsem dorazil do práce, nalil jsem si šálek kávy a strávil 20 až 30 minut vzdáleným spojením s každým serverem, procházením protokolů událostí a následným zaznamenáváním všech zjištěných problémů. Ujišťuji vás, že to nebyl nejefektivnější způsob manipulace s kládami. Byla to však jediná možnost, kterou jsem měl.
Linux však ke správě souborů lokálních protokolů používá nástroj syslog založený na Unixu. Většina moderních distribucí Linuxu ve skutečnosti používá nového a vylepšeného démona s názvem rsyslog . rsyslog
je schopen předávat protokoly na vzdálené servery. Konfigurace je relativně jednoduchá a umožňuje správcům Linuxu centralizovat soubory protokolů pro archivaci a odstraňování problémů. V tomto článku vám ukážu, jak nakonfigurovat server, aby fungoval jako úložiště souborů protokolu, a jak nakonfigurovat servery Linux, aby mu předávaly své protokoly.
Soubory protokolu jsou kritickou součástí infrastruktury vašeho serveru. Systémoví správci používají soubory protokolu k provádění mnoha úkolů:
- Odstraňování problémů
- Audity smlouvy o úrovni služeb (SLA)
- Výchozí hodnota
- Preventivní údržba
Nakonfigurujte hostitele protokolu
Server hostující soubory protokolu budu označovat jako hostitel protokolu . Tento server může vyžadovat některé jedinečné konfigurace ve srovnání s jinými zařízeními Linux. Zvažte následující nastavení pro váš hostitelský server protokolu.
Samostatný oddíl pro /var/log
Pokyny k instalaci často radí správcům připojit /var/log
na samostatném oddílu, aby se zabránilo nekontrolovatelnému zaplňování úložiště, kde se nachází kořen souborového systému. Takový postup je kritický, když server přijímá soubory protokolu z velkého množství vzdálených zařízení.
Konfigurační soubor
Skutečný rsyslog
konfigurace se spravuje pomocí konfiguračního souboru v /etc
adresář. Budete muset upravit několik řádků. Nastavení se mohou mírně lišit v závislosti na distribuci. Zálohujte původní konfigurační soubor a poté otevřete /etc/rsyslog.conf
soubor pomocí vašeho oblíbeného textového editoru.
Nejprve odkomentujte dva řádky pro UDP:
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514
Jako přenosový protokol můžete také použít TCP.
# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514
Tyto řádky najdete v horní části konfiguračního souboru v Moduly sekce.
Dále nakonfigurujte šablonu pro příchozí protokoly. Pokud šablonu nenakonfigurujete, všechny položky protokolu ze vzdálených serverů se smíchají s místními protokoly hostitelského serveru protokolu.
$template DynamicFile,"/var/log/%HOSTNAME%/forwarded-logs.log"
*.* -?DynamicFile
Tato šablona umístí všechny protokoly z daného hostitele do adresáře pojmenovaného pro tohoto hostitele. Pokud máte například server s názvem WebServer1 , adresář s názvem WebServer1
je vytvořen a všechny protokoly tohoto serveru jsou uloženy v tomto adresáři. Šablony se nastavují v Šablony sekce konfiguračního souboru. Pokud není definována žádná konkrétní sekce, ujistěte se, že šablony jsou definovány před Pravidly .
Na internetu je k dispozici mnoho různých možností šablony.
Jakmile odkomentujete protokol transportní vrstvy a nastavíte šablonu, uložte změny do souboru. Nezapomeňte restartovat rsyslog
.
# systemctl restart rsyslog
Firewall
rsyslog
používá port 514 pro připojení k síti, ať už pomocí TCP nebo UDP. Musíte otevřít port 514 ve bráně firewall na hostitelském serveru protokolu. Za předpokladu, že používáte UDP, vypadá konfigurace firewallu takto:
# firewall-cmd --add-port=514/udp --permanent
# firewall-cmd --reload
Pro potvrzení konfigurace použijte následující příkaz:
# firewall-cmd --list-all
Logrote
Může být užitečné nakonfigurovat logrotate
, také. logrotate
pomáhá správcům spravovat velké množství souborů protokolu implementací archivace, komprese, mazání a dalších nezbytných úloh správy souborů protokolu. Tento nástroj efektivně popsal Edem Afenyo v článku Enable Sysadmin Setting up Logrotate in Linux, takže není důvod, abych to zde popisoval.
Dokumentujte IP adresu hostitelského serveru protokolu
Použijte ifconfig
nebo ip addr
k dokumentaci IP adresy hostitelského serveru protokolu. Tuto adresu použijete v konfiguračních souborech klienta.
Bonusová poznámka :Doporučuji používat IP adresy v konfiguračních souborech, jako je /etc/rsyslog.conf
místo názvů hostitelů. Tím se zjednoduší konfigurace a odstraní se překlad názvů z procesu připojení počítače a procesu odstraňování problémů správce systému. Odstraňuje celou pozdější složitost.
[ Také by se vám mohlo líbit: Nastavení logrotate v Linuxu ]
Konfigurace klienta protokolu
Tuto část začnu konfigurací základního linuxového serveru tak, aby předával své soubory protokolu na server protokolu hostitele nakonfigurovaný dříve. Tato konfigurace je o něco kratší. Nezapomeňte zálohovat původní /etc/rsyslog.conf
soubor.
Otevřete /etc/rsyslog.conf
konfigurační soubor s vaším oblíbeným editorem (preferuji Vim, ale cokoli vám funguje, je v pořádku). Přejděte na Pravidla sekce a vytvořte nový řádek před všemi ostatními položkami. Aby bylo jasno, přidáváte tento řádek před zařízení .závažnost záznamy. Pokud tak učiníte, umožníte předání všech shod na cílový server.
Přidejte následující informace, kde IP je adresa IP hostitelského serveru protokolu:
*.* @IP
Poznámka :Pokud používáte TCP, syntaxe je *.* @@IP
Uložte změny do konfiguračního souboru a poté restartujte rsyslog
služba:
# systemctl restart rsyslog
Otestujte konfiguraci
logger
příkaz se používá k ručnímu vytvoření položky souboru protokolu. Spuštěním následujícího příkazu vygenerujte položku:
# logger Test
Ověřte záznam v souboru protokolu pomocí tail
příkaz k zobrazení nejnovějších záznamů v /var/log/messages
přihlaste se na místní server:
# tail /var/log/messages
Měli byste vidět testovací zprávu.
Dále se přepněte na hostitelský server protokolu a poté zobrazte obsah /var/log
:
# ls /var/log
Měli byste vidět adresář s názvem vzdáleného serveru, který jste nakonfigurovali. Pokud ls
obsah tohoto adresáře, měli byste vidět protokoly předávané ze serveru. Můžete použít tail
příkaz k zobrazení obsahu protokolů v podadresáři tohoto serveru. Zde byste také měli vidět opakovanou testovací zprávu.
Nakonfigurujte zbývající servery
V tomto okamžiku můžete nakonfigurovat své zbývající linuxové servery tak, aby předávaly své protokoly hostiteli protokolů. Můžete distribuovat novou verzi /etc/rsyslog.conf
soubor pomocí rsync, SSH, nebo dokonce nastavte konfiguraci pomocí Ansible.
Přeposílat konkrétní protokoly
Výše uvedená příkladová nastavení předávají všechny protokoly hostitelskému systému protokolů (proto *.* syntax). Můžete si vybrat, zda chcete přeposílat pouze záznamy pro jednotlivá zařízení nebo předávat záznamy pro různá zařízení na různé hostitelské servery protokolu.
Řekněme, že chcete odeslat cron přihlásí na hostlogserver1 (kde mohou správci systému zkontrolovat záznamy) a FTP přihlásí na hostlogserver2 (kde mohou netadminové kontrolovat záznamy). Konfigurace vypadá asi takto:
cron.* @10.1.1.15
ftp.* @10.1.1.20
Kde hostlogserver1 má IP adresu 10.1.1.15 a hostlogserver2 má IP adresu 10.1.1.20 .
Stejné záznamy můžete také přeposlat na dva různé servery:
*.* @10.1.1.15
*.* @10.1.1.20
Další platformy
Připomeňme, že v úvodu jsem poukázal na to, že tento mechanismus souborů protokolu je ve skutečnosti unixový systém, nikoli funkce specifická pro Linux. To znamená, že se může zúčastnit prakticky jakékoli zařízení založené na Unixu, které udržuje protokoly.
Nakonfigurujte směrovače pro přeposílání protokolů
Nedávno jsem pracoval v laboratorním prostředí klienta, který používal router nakonfigurovaný s VyOS. VyOS je linuxový router, VPN, firewall a distribuce NAT. Použili jsme výše uvedený proces (úprava /etc/rsyslog.conf
konfigurační soubor) pro nastavení routeru, aby předával své protokoly na centrální server. Správci sítě mohou snadno archivovat protokoly routeru, VPN a další protokoly pomocí rsyslog
.
Dalším operačním systémem používaným v prostředí laboratoře byl pfSense. pfSense je odvozený operační systém FreeBSD, který může také předávat protokoly do centrálního umístění pomocí rsyslog
. Opět se jednalo o přímočarou konfiguraci, i když tentokrát to bylo prostřednictvím webového GUI.
[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]
Sbalit
Zvažte možnosti dostupné pro správce systému pomocí rsyslog
přeposílání protokolu. Váš síťový tým by mohl centralizovat protokoly pro všechny interní a perimetrické směrovače, zařízení VPN a brány firewall. Systémoví správci by mohli organizovat protokoly podle oblastí odpovědnosti nebo geografie. Centralizace může mít dopad na vaše týmy zabezpečení, service desk a serverů. rsyslog
je základní, ale nezbytná linuxová služba a využití její schopnosti centralizovat protokoly vám umožňuje získat z ní maximum.