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.