Jak vytvořit centralizovaný Log Server s Rsyslog v CentOS / RHEL 7

aby správce systému mohl identifikovat nebo vyřešit problém v serverovém systému CentOS 7 nebo RHEL 7, musí znát a zobrazit události, ke kterým došlo v systému v určitém časovém období, ze souborů protokolu uložených v systému v adresáři /var/log.

syslog server Na Linuxovém počítači může působit jako centrální monitorovací bod v síti, kde všechny servery, síťová zařízení, směrovače, přepínače a většina jejich interních služeb, které generují protokoly, ať už se týkají konkrétního interního problému nebo jen informativních zpráv, mohou posílat své protokoly.

na CentOS/RHEL 7 systému, Rsyslog daemon je hlavní log server předinstalovaný, následovaný Systemd Journal Daemon (journald).

Rsyslog server v sestavení jako služba architektury klient / server a může dosáhnout obou rolí současně. Může běžet jako server a shromažďovat všechny protokoly přenášené jinými zařízeními v síti nebo může běžet jako klient zasláním všech interních systémových událostí zaznamenaných na server syslog vzdáleného koncového bodu.

když je rsyslog nakonfigurován jako klient, protokoly mohou být uloženy lokálně v souborech v lokálním souborovém systému nebo mohou být odeslány vzdáleně, spíše než je zapisovat do souborů uložených v počítači nebo zapisovat soubory protokolu událostí lokálně a odesílat je na vzdálený server syslog současně.

Syslog server provozuje jakoukoli zprávu protokolu pomocí následujícího schématu:

type (facility).priority (severity) destination(where to send the log)

a. Data zařízení nebo typu jsou reprezentována interními systémovými procesy, které zprávy generují. V Linuxu jsou interní procesy (zařízení), které generují protokoly, standardizovány následovně:

  • auth = Zprávy generované autentizačními procesy (login).
  • cron= Zprávy generované naplánovanými procesy (crontab).
  • daemon = Zprávy generované démony (interní služby).
  • kernel = Zprávy generované samotným jádrem Linuxu.
  • mail = Zprávy generované poštovním serverem.
  • syslog = zprávy generované samotným démonem rsyslog.
  • lpr = Zprávy generované lokálními tiskárnami nebo tiskovým serverem.
  • local0-local7 = vlastní zprávy definované správcem (local7 je obvykle přiřazen pro Cisco nebo Windows).

B. úrovně priority (závažnosti) jsou také standardizovány. Každá priorita je přiřazena standardní zkratkou a číslem, jak je popsáno níže. 7. prioritou je vyšší úroveň všech.

  • emerg = Emergency-0
  • alert = Alerts-1
  • err = Errors-3
  • warn = Warnings-4
  • notice = Notification-5
  • info = Information-6
  • debug = Debugging– 7

speciální klíčová slova Rsyslog:

  • * = všechna zařízení nebo priority
  • none = zařízení nemají dané priority, např.žádné

C. třetí část schématu syslog představuje Cílová směrnice. Rsyslog daemon může posílat zprávy protokolu, které mají být zapsány do souboru v lokálním souborovém systému (většinou v souboru v/ var / log / adresáři) nebo mají být převedeny do jiného lokálního procesu nebo mají být odeslány do místní uživatelské konzole (do stdout), nebo poslat zprávu na vzdálený server syslog přes protokol TCP/UDP, nebo dokonce zahodit zprávu do / dev / null.

abychom mohli nakonfigurovat CentOS / RHEL 7 jako centrální Server protokolu, musíme nejprve zkontrolovat a zajistit, aby oddíl /var, kde jsou zaznamenány všechny soubory protokolu, byl dostatečně velký (minimálně několik GB), aby bylo možné uložit všechny soubory protokolu, které budou odeslány jinými zařízeními. Je to dobré rozhodnutí použít samostatnou jednotku (LVM, RAID) pro připojení adresáře /var/log/.

požadavky

  1. CentOS 7.3 postup instalace
  2. RHEL 7.3 postup instalace

jak nakonfigurovat Rsyslog V serveru CentOS / RHEL 7

1. Ve výchozím nastavení je služba Rsyslog automaticky nainstalována a měla by být spuštěna v CentOS / RHEL 7. Chcete-li zkontrolovat, zda je démon spuštěn v systému, zadejte následující příkaz s oprávněními root.

# systemctl status rsyslog.service
zkontrolujte službu Rsyslog
zkontrolujte službu Rsyslog

pokud služba není ve výchozím nastavení spuštěna, spusťte níže uvedený příkaz pro spuštění démona rsyslog.

# systemctl start rsyslog.service

2. Pokud balíček rsyslog není nainstalován v systému, který chcete použít jako centralizovaný protokolovací server, nainstalujte balíček rsyslog následujícím příkazem.

# yum install rsyslog

3. Prvním krokem, který musíme v systému udělat, abychom nakonfigurovali démona rsyslogu jako centralizovaný server protokolu, aby mohl přijímat zprávy protokolu pro externí klienty, je otevřít a upravit pomocí vašeho oblíbeného textového editoru hlavní konfigurační soubor z /etc/rsyslog.conf, jak je uvedeno v níže uvedeném výňatku.

# vi /etc/rsyslog.conf

v hlavním konfiguračním souboru rsyslog vyhledejte a odkomentujte následující řádky (odstraňte znak hashtag # na začátku řádku), abyste zajistili přenos UDP na server Rsyslog přes 514 port. UDP je standardní protokol používaný pro přenos protokolu Rsyslog.

$ModLoad imudp $UDPServerRun 514
Konfigurace Serveru Rsyslog
Konfigurace Serveru Rsyslog

4. UDP protokol nemá TCP režii, což je rychlejší pro přenos dat než TCP protokol. Na druhé straně protokol UDP nezajišťuje spolehlivost přenášených dat.

pokud však potřebujete použít protokol TCP pro příjem protokolu, musíte vyhledat a odkomentovat následující řádky z / etc / rsyslog.conf soubor za účelem konfigurace Rsyslog daemon svázat a poslouchat TCP socket na 514 portu. TCP a UDP poslechové zásuvky pro příjem lze konfigurovat na serveru Rsyslog současně.

$ModLoad imtcp $InputTCPServerRun 514 

5. V dalším kroku soubor ještě nezavírejte, vytvořte novou šablonu, která bude použita pro příjem vzdálených zpráv. Tato šablona dá pokyn místnímu serveru Rsyslog, kam uložit přijaté zprávy odeslané síťovými klienty syslog. Šablona musí být přidána před začátek bloku globálních směrnic, jak je znázorněno v níže uvedeném výňatku.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" . ?RemoteLogs & ~
vytvořit Rsyslog Template
vytvořit Rsyslog Template

výše uvedená direktiva $ template RemoteLogs nařizuje démonovi Rsyslogu shromažďovat a zapisovat všechny přijaté zprávy protokolu do různých souborů na základě názvu klientského počítače a vzdáleného klientského zařízení (aplikace), které generovaly zprávy na základě definovaných vlastností, představuje v konfiguraci šablony: %HOSTNAME% a %PROGRAMNAME%.

všechny tyto soubory protokolu budou zapsány do lokálního souborového systému do vyhrazeného souboru pojmenovaného po hostname klientského počítače a uloženy v adresáři/ var / log/.

pravidlo & ~ redirect dává pokyn místnímu serveru Rsyslog, aby přestal dále zpracovávat přijatou zprávu protokolu a zprávy zahodil (nezapisoval je do interních souborů protokolu).

Název RemoteLogs je libovolný název daný této směrnici šablony. Můžete použít jakýkoli název, který nejlépe vyhovuje vaší šabloně.

Chcete-li zapsat všechny přijaté zprávy od klientů do jediného souboru protokolu pojmenovaného po IP adrese vzdáleného klienta, bez filtrování zařízení, které zprávu vygenerovalo, použijte níže uvedený výňatek.

$template FromIp,"/var/log/%FROMHOST-IP%.log" . ?FromIp & ~ 

další příklad šablony, kde budou všechny zprávy s příznakem auth facility zaznamenány do šablony s názvem „TmplAuth“.

$template TmplAuth, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth

níže je uveden výňatek z definice šablony ze serveru Rsyslog 7:

template(name="TmplMsg" type="string" string="/var/log/remote/msg/%HOSTNAME%/%PROGRAMNAME:::secpath-replace%.log" )

výše uvedený výňatek šablony lze také napsat jako:

template(name="TmplMsg" type="list") { constant(value="/var/log/remote/msg/") property(name="hostname") constant(value="/") property(name="programname" SecurePath="replace") constant(value=".log") }

Chcete-li psát složité šablony Rsyslog, přečtěte si příručku k konfiguračnímu souboru Rsyslog vydáním man rsyslog.příkaz conf nebo nahlédněte do online dokumentace Rsyslog.

6. Po úpravě konfiguračního souboru Rsyslog s vlastním nastavením, jak je vysvětleno výše, restartujte démona Rsyslog, abyste mohli použít změny vydáním následujícího příkazu:

# service rsyslog restart

7. Nyní by měl být Server Rsyslog nakonfigurován tak, aby fungoval jako centralizovaný server protokolu a zaznamenával zprávy od klientů syslogu. Chcete-li ověřit síťové sokety Rsyslog, spusťte příkaz netstat s oprávněními root a pomocí grep filtrujte řetězec rsyslog.

# netstat -tulpn | grep rsyslog 
Ověřte Síťovou Zásuvku Rsyslog
Ověřte Síťovou Zásuvku Rsyslog

8. Pokud máte v CentOS/RHEL 7 povolen SELinux, zadejte následující příkaz a nakonfigurujte SELinux tak, aby umožňoval provoz rsyslog v závislosti na typu síťové zásuvky.

# semanage -a -t syslogd_port_t -p udp 514# semanage -a -t syslogd_port_t -p tcp 514 

9. Pokud je brána firewall povolena a aktivní, spusťte níže uvedený příkaz a přidejte nezbytná pravidla pro otevření portů rsyslog v Firewalld.

# firewall-cmd --permanent --add-port=514/tcp# firewall-cmd --permanent --add-port=514/udp# firewall-cmd –reload

to je vše! Rsyslog je nyní nakonfigurován v režimu serveru a může centralizovat protokoly ze vzdálených klientů. V dalším článku uvidíme, jak nakonfigurovat klienta Rsyslog na serveru CentOS / RHEL 7.

použití Rsyslog server jako centrální monitorovací bod pro vzdálené zprávy protokolu můžete kontrolovat soubory protokolu a sledovat zdravotní stav klientů nebo problémy ladění klienta snadněji, když systémy havárie nebo jsou pod nějakým druhem útoku.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.