GNU/Linux >> Znalost Linux >  >> Linux

Jak použít rsyslog k vytvoření serveru pro agregaci protokolů Linux

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.


Linux
  1. Jak vytvořit soubory určité velikosti v Linuxu

  2. Jak používat OpenSSH k připojení k vašemu linuxovému serveru

  3. Jak používat Netcat k přenosu souborů v systému Linux

  1. Jak používat Linuxový příkaz find k hledání souborů

  2. Jak otočit soubory protokolu Apache v Linuxu

  3. Jak nastavit vzdálené přihlášení Rsyslog v systému Linux (Central Log Server)

  1. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  2. Rsyslog:Jak posílat soubory protokolu na vzdálený server v CentOS/RHEL 6,7

  3. Jak používat příkaz rpm2cpio v Linuxu