Syslog

A HupWiki-ből...

Tartalomjegyzék

Rendszernaplózó (démon)

Unix alapú rendszerek naplózásért felelős mechanizmusa. Feladata a rendszerben történő események feljegyzése. Hogy ez pontosan hogy történjen, részletesen be lehet állítani a syslog.conf ( /etc/syslog.conf ) fájlban.
Alapesetben a /var/log könyvtárba történik a naplózás. Így egy helyen megtalálhatók a naplók, ami sokkal átláthatóbbá teheti a rendszert.
Az egyes programoknak nem kell kötelezően a központi rendszernaplózót használnia, fenntarthatnak külön fájlokat (az átláthatóság rovására, esetleg speciális igények végett ). A syslogd alapból a /dev/log socketen várja az üzeneteket, de képes más gépek üzeneteit is naplózni az UDP 514-es portról ( ehhez -r kapcsolóval kell indítani ). A kernel viszont nem írja az üzeneteit a /dev/log-ra, ezért van egy külön kernel naplózó ( klogd ), ami a syslog-nak küldi a kernelüzeneteket.
Minden üzenet tartalmaz információt az üzenet típusáról és prioritásáról. A rendszernaplózó ezek alapján tudja később eldönteni, hogy hova kerüljön az üzenet.

Syslog.conf:

Minden sor tartalmaz egy filtert (típus/prioritás) és egy célt ahova küldi a kiválasztott üzeneteket. Minden üzenet minden sorral össze lesz vetve.
Pl.
               mail.*/var/log/mail.log
A mail típusú, tetszőleges prioritású üzeneteket a /var/log/mail.log fájlba írja.
A syslogd egyik nagy hátránya, hogy csak az előredefiniált típusokat/prioritásokat tudja kezelni.

Típusok

auth, auth-priv, daemon, kern, mark, user, local0, local1, …, local7, none, *

===Prioritások=== (növekvő sorrendben):

debug, info, notice, warning, err, crit, alert, emerg
Ha egy filterben egy prioritás van megadva, akkor az a megadott prioritásra és a nagyobbakra is vonatkozik:
               mail.warning			mail tipusú  warning, err, crit, alert, emerg prioritású üzenetek
A filterekben megadhatunk helyetesitő kifejezéseket is:
               auth.=notice         auth típusú, és notice prioritású üzenetek
               auth.!=notice        auth típusú, és nem notice prioritású üzenetek
               auth.*			minden auth típusú üzenet ( == auth.notice )
               *.err			bármilyen típus err prioritás
               *.*        		minden üzenet

Célok:

A naplót általában fájlba írjuk, azonban az üzeneteket tovább küldhetjük egy másik gépen futó naplózónak is, vagy akár egy csőbe ( named pipe ) is írhatjuk.
               auth.notice	            /var/log/messages	a /var/log/messages fájlhoz füzi az üzenetet.
               auth.notice	            @10.0.0.1		a 10.0.0.1 es gépre küldi az üzenetet.
               auth.notice	            |/tmp/pipe		a /tmp/pipe csőbe  küldi az üzenetet.
Nagy forgalomnál zavaró a lehet hogy minden üzenetet egyenként írunk fájlba
               auth.notice	            -/var/log/messages	a – hatására blokkonként lesz kiírva.
Lehetőség van egyetlen sorba több filtert is irni:
               auth,user.=notice;kern.*	/var/log/messages	
az auth és user típusú, és notice prioritású üzeneteket, valamint minden kernel üzenetet a /var/log/messages fájlba ír.

Debug:

Ha nem várt viselkedést tapasztalunk, szegiséget nyújthat a logger parancs:
logger -p típus.prioritás üzenet

Kapcsolódó szócikkek