rSyslog

Tags:

OS

|

Networking

|

Logging

Konfigurační soubory

Najdeme je v /etc/ , zde se nachází většina konfiguračních souborů v Linuxu. V tomto adresáři hledáme soubor /etc/rsyslog.conf , pokud chceme konfigurační soubory rozdělit do více souborů, musíme jít do adresáře /etc/rsyslog.d/ , v něm můžeme vytvořit jakýkoliv soubor končící na .conf a napsat do něj naši konfiguraci.

/etc/rsyslog.conf

Hlavní konfigurační soubor

/etc/rsyslog.d/*.conf

Adresář, ve kterém můžeme konfiguraci rozdělit na více souborů

Client

rSyslog nám umožnuje posílat logy na jiné servery, aby byly na více místech a v bezpečí .

[Facility].[Severity] [Protokol][IP]:[PORT]

Syntax pro posílání logů na server

Příklady

kern,local0.crit @@192.168.0.223:514

Posílá kernelové a local0 zprávy o severitě critical a výše skrze TCP na server

*.=emerg @192.168.7.245:514

Posíla všechny zprávy o severitě emergency skrze UDP na server

ftp,auth.warning;ftp,auth.=info @@10.246.8.8:514

Posílá zprávy ftp a auth o severitě warning a víše + info skrze TCP na server

*.* @172.16.68.74:514

Posílá všechny zprávy skrze UDP na server

Server

Pro zapnutí serveru musíme vědět pokud potřebujeme UDP nebo TCP spojení. Následně hledáme řádek v /etc/rsyslog.conf na kterém je import s naším vysněným protokolem.

V defaultní konfiguraci se toto nastavení již nachází zakomentované.

module(load="[module]")

Načtení modulu

input(type="[module]" port="[port]")

Poslouchání modulem na daném portu

Příklady

module(load="imudp")

input(type="imudp" port="514")

Nastavení (a zapnutí) UDP serveru na portu 514

UDP input modul IMTCP

module(load="imtcp")

input(type="imtcp" port="514")

Nastavení (a zapnutí) TCP serveru na portu 514

TCP input modul IMTCP

Občas se stane, že náš server nebude dostávat logy. V tomto případě je možné, že nám firewall blokuje komunikaci. Zde je jak povolit komunikaci na CentOS.

sudo firewall-cmd --permanent --add-port=514/tcp

sudo firewall-cmd --reload

Facility

Facilities používáme k určování odkud logy přichází, představte si, že máte dvě sítě a jedné dáte jméno local1 a druhé local2 , následně v logu vidíte kritické errory, ale jelikož znáte jméno facility odkud log přišel tak může rychleji najít a vyřešit problém.

Číslo / Jméno

Popis facility

0 / kern

1 / user

2 / mail

3 / daemon

4 / auth

5 / syslog

6 / lpr

7 / news

8 / uucp

9 / cron

10 / security

11 / ftp

12 / ntp

13 / logaudit

14 / logalert

15 / clock

16 / local0

17 / local1

18 / local2

19 / local3

20 / local4

21 / local5

22 / local6

23 / local7

kernel messages

user-level messages

mail system

system daemons

security/authorization messages

messages generated internally by syslogd

line printer subsystem

network news subsystem

UUCP subsystem

clock daemon

security/authorization messages

FTP daemon

NTP subsystem

log audit

log alert

clock daemon (note 2)

local use 0 (local0)

local use 1 (local1)

local use 2 (local2)

local use 3 (local3)

local use 4 (local4)

local use 5 (local5)

local use 6 (local6)

local use 7 (local7)

Severity

Severitou určujeme jak vážné logy jsou, třeba dostaneme log se severitou info o tom, že uživatel přečetl soubor a moc nás to nezajíma, pokud však uvidíme log se severitou emerg tak víme, že je něco hodně špatně a musíme to opravit.

Pokud před severitu přidáme = říkáme rSyslogu aby bral pouze tuto severitu, když se = vynechá tak bere tuto severitu a všechny vyšší.

Číslo / Jméno

Popis severity

0 / emerg

1 / alert

2 / crit

3 / error

4 / warning

5 / notice

6 / info

7 / debug

emergency/system is unusable

action must be taken immediately

critical conditions

error conditions

warning conditions

normal but significant condition

informational messages

debug-level messages

Protokol

Logy lze odesílat buď přes UDP , který je rychlý, ale nespolehlivý protokol a neověřuje, zda data dorazila v pořádku, nebo prostřednictvím TCP , které naopak zajišťuje spolehlivost přenosu díky kontrole doručení a integrity dat.

Protokol

Značka

UDP

TCP

@

@@

Podmínky

Pokud chceme něco filtrovat, potřebujeme udělat podmínky, bez nich bychom se nikam nedostali.

if $rawmsg contains 'key="user-action' then { ... }

Kontrolujeme pokud je v nezpracované zprávě text 'key="user-action'

if $syslogfacility-text == "local0" then { ... }

Kontrolujeme pokud log přišel z local0 facility

else if $syslogseverity <= '6' then { ... }

Pokud první podmínka nevyšla, kontrolujeme zda je severita menší nebo rovna 6

if not $hostname == "Ubuntu" then { ... }

Kontrolujeme zda hostname není 'Ubuntu'

Název proměnné

Popis

msg

rawmsg

hostname / source

syslogseverity

syslogseverity-text

syslogfacility

syslogfacility-text

syslogtag

Zpráva

Zpráva bez žádného upravení

Hostname zařízení

Severity v číselné podobě

Severity v textové podobě

Facility v číselné podobě

Facility v textové podobě

Tag ze zprávy

Actions

Akce nám umožnují manipulovat se zprávou. Můžeme ji třeba zapsat do logu nebo přeposlat dále na jiné servery .

action(type="omfile" file="/var/log/rsyslogs/failed_auth.log")

Ukládáme logy do souboru '/var/log/rsyslogs/failed_auth.log'

module(load="omfwd")

action(type="omfwd" target="192.168.2.5" port="514" protocol="tcp")

Zapneme modul pro forwarding

Přeposíláme logy na další server

Logo

Adresa

Preslova 72/25

Praha 5 - Smíchov

150 21

n17r0 © 2025