GNU/Linux >> Znalost Linux >  >> Cent OS

Konfigurace vzdáleného protokolování pomocí rsyslog v CentOS/RHEL

Vzdálené protokolování

Standardní konfigurace správy systémových protokolů rotuje soubory protokolu každý týden a uchovává je po čtyři rotace. Často je žádoucí udržovat protokoly déle než standardně čtyři týdny, zejména při stanovování trendů výkonu systému souvisejících s úkoly, jako jsou finanční uzávěrky na konci měsíce, které se provádějí pouze jednou za měsíc. Odesláním zpráv protokolů vzdálenému hostiteli protokolů s vyhrazeným velkokapacitním úložištěm mohou administrátoři udržovat velké archivy systémových protokolů pro své systémy, aniž by měnili výchozí konfiguraci rotace protokolů, která má zabránit tomu, aby protokoly přetěžovaly diskové úložiště.

Centrální sběr zpráv systémového logu může být také velmi užitečný pro sledování stavu systémů a pro rychlou identifikaci problémů. Poskytuje také záložní umístění pro zprávy protokolu pro případ, že systém utrpí katastrofální selhání pevného disku nebo jiné problémy, které způsobí, že místní protokoly již nebudou k dispozici. V těchto situacích lze kopii zpráv protokolu, které se nacházejí na hostiteli centrálního protokolu, použít k diagnostice problému, který problém způsobil.

Standardizované protokolování systému je v Red Hat Enterprise Linux 7 implementováno pomocí rsyslog servis. Systémové programy mohou odesílat zprávy syslog na místní rsyslogd služba, která pak tyto zprávy přesměruje do souborů v /var/log , vzdálené protokolové servery nebo jiné databáze na základě nastavení v konfiguračním souboru /etc/rsyslog.conf .

Zprávy protokolu mají dvě vlastnosti, které se používají k jejich kategorizaci. Schopnost protokolové zprávy označuje typ zprávy, o kterou se jedná. Priorita na druhé straně udává důležitost události zaznamenané ve zprávě.

Úrovně priority Syslog

Priorita Význam
emerg Systém je nepoužitelný
upozornění Je vyžadována okamžitá akce
crit Kritický stav
chyba Chybový stav
varování Varovná podmínka
upozornění Normální, ale významný stav
informace Informační zprávy
ladění Ladění zpráv

Konfigurace hostitele centrálního protokolu

Implementace hostitele centrálního protokolování vyžaduje konfiguraci služby rsyslog na dvou typech systémů:na vzdálených systémech, ze kterých zprávy protokolu pocházejí, a na hostiteli centrálního protokolu, který tyto zprávy přijímá. Na centrálním hostiteli protokolů je třeba nakonfigurovat službu rsyslog tak, aby byly přijímány protokolové zprávy od vzdálených hostitelů.

Chcete-li nakonfigurovat službu rsyslog na hostiteli centrálního protokolování tak, aby přijímala vzdálené protokoly, zrušte komentář u přijímacích linek TCP nebo UDP v sekci moduly v /etc/rsyslog.conf soubor.

Pro příjem UDP:

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

pro příjem TCP:

# Provides TCP syslog reception
$ModLoad imtcp.so
$InputTCPServerRun 514

TCP poskytuje spolehlivější doručování zpráv vzdáleného protokolu, ale UDP je podporováno širší řadou operačních systémů a síťových zařízení.

Poznámka :Prostý TCP přenos zpráv syslog je poměrně široce implementován, ale ještě není standardizován. Většina implementací v současnosti používá port 514/TCP, což je starší port rshd. Pokud má systém nainstalovaný balíček rsh-server a používá starou nezabezpečenou službu rshd, bude to v konfliktu s použitím portu 514/TCP pro příjem syslogu prostého TCP. Nakonfigurujte protokolový server tak, aby používal jiný port, změnou nastavení pro $InputTCPServerRun.

Pravidla obsažená v /etc/rsyslog.conf jsou standardně nakonfigurována tak, aby vyhovovala protokolování zpráv na jednom hostiteli. Proto třídí a seskupuje zprávy podle zařízení. Například e-mailové zprávy jsou přesměrovány do /var/log/maillog, zatímco zprávy generované
démonem crond jsou konsolidovány do /var/log/cron, aby se usnadnilo nalezení každého typu zpráv.

Zatímco třídění zpráv podle zařízení je ideální na jednom hostiteli, vytváří nežádoucí výsledek na hostiteli s centrálním protokolem, protože způsobuje, že se zprávy z různých vzdálených hostitelů vzájemně mísí. Na hostiteli centrálního protokolu je obvykle optimálnější, aby zprávy protokolu ze vzdálených systémů zůstaly od sebe odděleny. Tohoto oddělení lze dosáhnout definováním názvů souborů dynamického protokolu pomocí funkce šablony rsyslog.

Šablony jsou definovány v /etc/rsyslog.conf a lze je použít ke generování pravidel s názvy souborů dynamického protokolu. Definice šablony se skládá z $template následuje název šablony a poté řetězec představující text šablony. Text šablony může být dynamický použitím hodnot nahrazených vlastnostmi zprávy protokolu. Chcete-li například nasměrovat zprávy syslog cron z různých systémů do různých souborů na hostiteli centrálního protokolu, použijte následující šablonu ke generování názvů souborů dynamického protokolu na základě HOSTNAME vlastnost každé zprávy:

$template DynamicFile,"/var/log/loghost/%HOSTNAME%/cron.log"

Na dynamický název souboru vytvořený pomocí definice šablony lze potom odkazovat názvem šablony v pravidle takto:

cron.*    ?DynamicFile

Na systémech provádějících extrémně podrobné protokolování může být žádoucí vypnout synchronizaci souboru protokolu po každé operaci zápisu, aby se zlepšil výkon. Synchronizaci souboru protokolu po každém protokolování lze vynechat přidáním předpony názvu souboru protokolu se znaménkem mínus (-) v pravidle protokolování. Kompromis vyššího výkonu však vytváří možnost ztráty dat protokolu, pokud se systém zhroutí okamžitě po pokusu o zápis.

Následuje další příklad použití šablon ke generování názvů souborů dynamického protokolu. V tomto příkladu budou zprávy vzdáleného protokolu seřazeny podle názvu hostitele a hodnot zařízení odkazem na HOSTNAME a syslogfacility-test vlastnosti. Zprávy protokolu budou zapsány do dynamicky generovaných názvů souborů protokolu a po operaci zápisu nebude provedena žádná synchronizace.

$template DynamicFile,"/var/log/loghost/%HOSTNAME%/%syslogfacility-text%.log"
*.*    -?DynamicFile
Poznámka :Úplný seznam vlastností zpráv syslog zpřístupněných pomocí rsyslog lze nalézt
v sekci Dostupné vlastnosti manuálové stránky rsyslog.conf(5).

Po aktivaci příjmu syslog a vytvoření požadovaných pravidel pro oddělení protokolu podle hostitele restartujte službu rsyslog, aby se změny konfigurace projevily. Kromě toho přidejte nezbytná pravidla brány firewall UDP a/nebo TCP, která povolí příchozí provoz syslog, a poté znovu načtěte firewalld .

# systemctl restart rsyslog
# firewall-cmd --add-port=514/udp --permanent
# firewall-cmd --add-port=514/tcp --permanent
# firewall-cmd --reload

Když jsou vytvořeny nové soubory protokolu, nemusí být zahrnuty do stávajícího plánu rotace protokolu hostitele protokolu. To by mělo být napraveno, aby se zajistilo, že nové soubory protokolu nenarostou do nezvládnutelné velikosti. Chcete-li například do rotace protokolů zahrnout nové soubory protokolu z předchozích příkladů, přidejte následující položku do seznamu souborů protokolu v /etc/logrotate.d/syslog konfigurační soubor.

/var/log/loghost/*/*.log

Přesměrování protokolování na hostitele centrálního protokolu

Jakmile je hostitel centrálního protokolu nakonfigurován tak, aby přijímal vzdálené protokolování, lze službu rsyslog nakonfigurovat na vzdálených systémech tak, aby posílala protokoly hostiteli centrálního protokolování. Chcete-li nakonfigurovat počítač pro odesílání protokolů na vzdálený server rsyslog, přidejte řádek do sekce pravidel v souboru /etc/rsyslog.conf. Místo názvu souboru použijte IP adresu vzdáleného serveru rsyslog. Chcete-li použít protokol UDP, zadejte před IP adresu jeden znak @. Chcete-li použít TCP, přidejte před něj dva znaky @ (@@).

Chcete-li například všechny zprávy s info nebo vyšší prioritou odeslat na loghost.example.com prostřednictvím protokolu UDP, použijte následující řádek:

*.info @loghost.example.com

Chcete-li, aby byly všechny zprávy odesílány na loghost.example.com přes TCP, použijte následující řádek:

*.*     @@loghost.example.com

Volitelně lze k názvu hostitele protokolu připojit :PORT , kde PORT je port, který používá vzdálený server rsyslog. Pokud není zadán žádný port, předpokládá se výchozí port 514 .

Po přidání pravidel restartujte službu rsyslog a odešlete testovací zprávu pomocí příkazu logger:

[root@logclient ~]# logger "Test from logclient"

Zkontrolujte protokoly na vzdáleném serveru a ujistěte se, že byla zpráva přijata.


Cent OS
  1. Nainstalujte vzdálenou plochu xrdp do CentOS 6 / RHEL 6

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

  3. CentOS / RHEL 7 :Konfigurace NTP pomocí chrony

  1. CentOS / RHEL 7 :Konfigurace statické IP adresy pomocí konfiguračních souborů síťového rozhraní

  2. CentOS / RHEL 6,7 :Jak zvýšit upovídanost zpráv systémového protokolu (rsyslogd)

  3. Jak změnit výchozí adresář protokolu (/var/log) v Rsyslog pro CentOS/RHEL 6,7

  1. Jak změnit výchozí oprávnění /var/log/messages v CentOS/RHEL

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

  3. Jak odeslat protokoly auditu na vzdálený server Rsyslog v CentOS/RHEL 6,7