SYSLOG.CONF(5)

NÉV
syslog.conf - syslogd (8) konfigurációs fájl

ÁTTEKINTÉS
A syslog.conf fájl a syslogd(8) fő konfigurációs fájlja, amely naplózza a rendszerüzeneteket a *nix rendszereken. A syslog.conf fájl határozza meg a naplózási szabályokat. A syslogd(8) további tulajdonságai a syslogd(8) kézikönyvoldalán találhatók. Valamennyi szabály két mezőből  áll, egy kiválasztó és egy végrehajtó mezőből. A két mezőt szóközökkel vagy tabulátor jelekkel választjuk el egymástól. A kiválasztó mező meghatároz egy szolgáltatási sémát és definiálja azt a prioritást, amely a hozzárendelt végrehajtáshoz tartozik. A sorok kettőskereszt ("#") jellel kezdődnek és az üres sorok nem számítanak. A syslogd kiterjedt szintaktikát képes megérteni. Egy szabály akár több sorra is felosztható, ha a vezető sor egy backslash-sel ("\") fejeződik be.

KIVÁLASZTÓK
A kiválasztó mező önmaga is két részből áll; a szolgáltatás és a prioritás egymástól ponttal (".") elválasztva. Mindkét összetevő érzéketlen a kis- és nagybetűk közötti különbségre, és decimális számok segítségével is definiálható, de ha lehet, akkor ezt inkább kerüljük el. A szolgáltatásról és a prioritásról bővebb leírás a syslog(3) kézikönyvoldalán olvasható. Az alábbiakban megemlített nevek megfelelnek a hasonló LOG_-értékeknek a /usr/include/syslog.h fájlban.
 A szolgáltatás értéke az alábbi kulcsszavak közül kerülhet ki: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (megfelel az auth-nak), syslog, user, uucp és a local0-tól a local7-ig. A security kulcsszó használata nem javallott, a mark kulcsszó pedig kizárólag belső használatra javasolt, ezért alkalmazások esetében inkább ne használjuk. Naszóval ezeket az üzeneteket itt is meghatározhatod, de utólag is definiálhatod. A szolgáltatás meghatároz egy alrendszert, amely létrehoz egy üzenetet, pl. valamennyi levelezőprogram naplózható a mail szolgáltatással (LOG_MAIL) , ha ezek naplóznak, használva a syslogot. A prioritás értéke az alábbi kulcsszavak közül kerülhet ki, emelkedő sorrendben: debug, info, notice, warning, warn (megfelel a warning -nak), err, error (megfelel az err -nek), crit, alert, emerg, panic (megfelel az emerg -nek). Az error, warn és a panic kulcsszavak nem használatosak. A prioritás definiálja az üzenetek szigorúságát. Az eredeti BSD syslogd úgy viselkedik, hogy valamennyi meghatározott prioritású üzenetet és a magasabb rendűeket is naplózza az adott végrehajtásnak megfelelően. A jelenlegi syslogd(8) is ugyanígy viselkedik, de van néhány további kiterjesztése. Továbbá a fent megemlített neveket a syslogd(8) a következő kiterjesztésekkel érti meg: egy csillag ("*") jelképezi valamennyi szolgáltatást vagy valamennyi prioritást, attól függően, hogy hol használjuk (a pont előtt vagy után). A none kulcsszó azt jelenti, hogy nincs prioritása az adott szolgáltatásnak. Definiálható többszörös szolgáltatás ugyanazzal a prioritási sémával a meghatározásban, használva a vessző (",") operátort. Annyi szolgáltatást határozhatsz meg, amennyit csak akarsz, de ne feledd el, hogy csak a szolgáltatás része a meghatározásnak, a prioritás rész viszont elhagyható. Többszörös kiválasztók is meghatározhatók egyetlen végrehajtásban , használva a pontosvessző (";") elválasztást. De ne feledjük, hogy valamennyi kiválasztó a kiválasztó mezőben képes felülírni az azt megelőzőt. Felhasználva ezt a viselkedést ki lehet zárni néhány prioritást a sémából. A jelenlegi syslogd(8)-nak van egy szintaktikai kiterjesztése az eredeti BSD forráshoz képest, amely lehetővé teszi azt, hogy a használata sokkal inkább érthető legyen. Valamennyi prioritás elé tehetsz egy egyenlőségjelet ("=") jelezve, hogy csak ezt a prioritást vegye figyelembe és a magasabbakat ne. De tehetsz egy felkiáltójelet ("!") is a prioritás elé (mindkettő elfogadott), hogy az itt található valamennyi prioritás figyelmen kívül legyen hagyva. Ekkor sem a meglévő, sem a magasabb prioritások nem lesznek értelmezve. Ha egyszerre mindkét jelet használjuk, akkor a felkiáltójelet az egyenlőségjel elé kell tenni, de ezt csak érzéssel használjuk.

VÉGREHAJTÁSOK
A szabályhoz tartozó végrehajtási mező egy elvont formájú "naplófájlt" ír le. Ennek a naplófájlnak nem szükséges létező nevűnek lennie. A syslogd(8) a következő végrehajtásokat látja el.

  Szokásos fájl
Normál üzenetek kerülnek naplózásra létező fájlokba. A fájlt a teljes elérési úttal kell megadni, amelyet a slash ("/") jellel kell kezdeni. Lehet egy mínusz ("-") jel is valamennyi bejegyzés előtt, jelezve azt, hogy nem szükséges szikronizálni a fájlt minden bejelentkezés után. Jegyezzük meg azt, hogy információvesztés léphet fel, ha rendszerösszeomlás következik be rögtön egy írási kísérlet után. Mindazonáltal ez vissza is adhat némi teljesítményt, különösen akkor, ha olyan programot használunk, amely igen bőbeszédűen adja a naplózandó információkat.

  Névvel jelölt csővezetékek
A syslogd(8) jelenlegi verziója támogatja a naplózást a névvel jelölt csővezetékek felé (fifo-k). A fifo vagy a névvel azonosított csővezeték használható üzenetek naplózásának céljára. Ekkor a fájl neve elé tegyünk egy ("l") jelet, ezzel jelölve, hogy a célállomány egy fifo. Ez általában hibakeresésre használatos. Ám jegyezzük meg, hogy a fifo-t az mkfifo(1) paranccsal kell létrehozni még mielőtt a syslogd(8) elindult volna.

  Terminálok és a konzol
Amennyiben állományként egy tty van megadva, speciális tty-kezelés hajtódik végre, hasonlóan a /dev/console-hoz.

  Távoli számítógépek
A jelenlegi syslogd(8) teljes távoli naplózást képes véghezvinni, azaz például képes üzenetet küldeni egy távoli gépen futó syslogd(8) részére és tud fogadni üzeneteket egy távoli számítógéptől is. A távoli gép
nem fogja a kapott üzenetet ismételten  továbbítani, csak helyi    szinten fogja
naplózni. Hogy továbbítsunk egy üzenetet egy másik számítógép részére tegyünk a gép neve elé egy kukac ("@") jelet. Használva ezt a képességet lehetővé válik, hogy egy gépen ellenőrizzük le valamennyi syslog üzenetet, amennyiben a többi gép egy adott távoli gépre naplózik.

  Felhasználói lista
Általában a kritikus üzenetek közvetlenül az adott gép "root" felhasználójához kerülnek. Meghatározhatunk egy listát azokról a felhasználókról, akik szintén
megkaphatják az üzenetet. Ehhez    csak a felhasználói nevüket kell megadni. Egyszerre
több felhasználót is megadhatunk, vesszővel (",") elválasztva az egyes neveket. Ha ők be vannak jelentkezve a rendszerre, akkor megkapják az üzenetet. De ne higgyük azt, hogy egy levél is elküldésre kerül, mivel akkor már lehet hogy túl késő.

  Mindenki, aki be van jelentkezve
Valósidejű vészüzeneteket gyakran szükséges valamennyi felhasználó részére elküldeni, értesítve ezzel őket arról, hogy például valami különleges dolog történt a rendszerrel. Hogy meghatározzunk egy ilyen wall(1)-típusú üzenetet, használjuk a csillag ("*") jelet.

PÉLDÁK
A következőkben néhány olyan példa kerül felsorolásra, amelyek között alkalmanként a való életből (létező számítógépekről, konfigurációkból) kiragadott esetek is vannak. Remélhetőleg ezek minden tekintetben kidolgozott példák, ám ha mégsem küldjetek a részemre (Joey) néhány sort.

    #Összegyűjti a kritikus üzeneteket a critical-ba
    #
    *.=crit;kern.none              /var/adm/critical

Ezzel a bejegyzéssel valamennyi crit prioritású (kritikus) üzenetet gyűjtjük össze a /var/adm/critical fájlba, kivéve bármely kernel üzenetet.

    #A kernel üzenetei elsőként összegyűlnek a kernel fájlban.
    #A kritikus és a magasabb prioritásúak pedig átmennek egy
    #másik számítógépre, illetve a konzolra kerülnek.
    #
    kern.*                         /var/adm/kernel
    kern.crit                      @finlandia
    kern.crit                      /dev/console
    kern.info;kern.!err            /var/adm/kernel-info

Az első szabály alapján bármely üzenet, amely a kernel szolgáltatásából adódik, a /var/adm/kernel fájlba kerül. A második szabálynál a crit és az annál magasabb prioritású kernel üzenetek átkerülnek a finlandia nevű távoli számítógépre. Ez abban az esetben hasznos, ha egy számítógép összeomlik, és a merevlemezén olyan helyrehozhatatlan hibák keletkeznek, amik miatt nem lehet elolvasni az összegyűjtött üzeneteket. Ám ha ezek az üzenetek egy távoli számítógépen is megtalálhatók, akkor még megtudhatjuk a rendszerösszeomlás okát. A harmadik szabály ezeket az üzeneteket (a második jelentés üzeneteit) közvetlenül az aktuális gép konzoljára küldi, igy az a személy is megkapja azt, aki éppen ezen a gépen dolgozik. A negyedik sor azt mondja meg a syslogd-nak, hogy mentse el valamennyi info és az annál magasabb prioritású (egészen a warning -ig) kernel üzenetet a /var/adm/kernel-info
fájlba. Azonban    ebből hagyja ki valamennyi
err , illetve a magasabb prioritású üzeneteket.

    #A tcp wrappers naplózzon a mail.info-val, hogy lássunk
    #valamennyi kapcsolatot a tty12-n.
    #
    mail.=info                     /dev/tty12

Ez valamennyi üzenetet, amely mail.info"-thasznál(forrásban LOG_MAIL | LOG_INFO) a /dev/tty12 -höz irányítja, azaz a 12. konzolra. Például a tcpwrapper tcpd(8) ezt használja alapértelmezésben.

    #Gyűjtse össze valamennyi a levelezéssel kapcsolatos
    #üzenetet egy fájlba
    #
    mail.*;mail.!=info             /var/adm/mail

Ez a séma megfelel valamennyi olyan üzenetnek, amely a mail szolgáltatással kapcsolatos, kivéve az info prioritású üzeneteket. Ezek a /var/adm/mail fájlban lesznek összegyűjtve.

    #Naplózza valamennyi mail.info és news.info típusú
    #üzeneteket az info fájlban.
    #
    mail,news.=info                /var/adm/info

Így egy kivonatot fogunk kapni azokról az üzenetekről, amelyek mail.info vagy news.info típussal érkeznek és ezeket a /var/adm/info fájlban tároljuk.

    #Naplózd az info és a notice (megjegyzés) üzeneteket
    #a messages fájlban
    #
    *.=info;*.=notice;\
    	mail.none              /var/log/messages

Ez hagyja, hogy a syslogd naplózza valamennyi olyan üzenetet, amely info vagy notice
szolgáltatással    érkezik és ezeket tegye a
/var/log/messages fájlba. Kivétel azonban minden olyan üzenet, amely a mail szolgáltatást használja.

    #Naplózza az info üzeneteket a messages fájlba
    #
    *.=info;\
    	mail,news.none        /var/log/messages

Ez a megállapítás azt fogja okozni, hogy a syslogd naplózni fogja valamennyi info prioritással érkező üzenetet a /var/log/messages fájlba, ám a mail vagy a news szolgáltatással érkező üzenetek nem kerülnek bele ebbe az állományba.

    #A vészüzenetek a wall-t használva jelenítődjenek meg.
    #
    *.=emerg

Ez a szabály arra utasítja a syslogd-t, hogy írja ki valamennyi vészüzenetet a jelenleg bejelentkezett valamennyi felhasználó részére. Ez a wall tipusú végrehajtás.

    #Az alert (készenléti) prioritás üzenetei közvetlenül
    #az üzembentartóhoz (a karbantartóhoz) kerülnek.
    #
    *.alert		root,joey

E szabály alapján valamennyi alert (készenléti) vagy magasabb prioritású üzenetet a terminálok üzembentartója kapja meg; ez esetben a "root" és a "joey" nevű felhasználó, amennyiben be vannak jelentkezve a rendszerre.

    *.*		@finlandia

Ennek a szabálynak a következményeként valamennyi üzenet átküldésre kerül a távoli finlandia nevű számítógépre. Ez különösen több számítógép esetében hasznos, mivel ekkor valamennyi syslog üzenet egy gépen gyűlik össze, illetve tárolódik.

KONFIGURÁCIÓS FÁJL SZINTAKTIKAI KÜLÖNBSÉGEK
A syslogd némileg eltérő konfigurációs szintaktikát használ, mint az eredeti BSD forrás. Eredetileg valamennyi specifikált és az annál magasabb prioritású üzenetek továbbítódtak a naplófájlhoz. Az "=" , "!" és a "-" jelek megváltoztatták ezt, és használatukkal a syslogd sokkal hajlékonyabb és érzékenyebb módon használható. Az eredeti BSD syslogd nem értelmezi a szóköz karaktereket a kiválasztó és a végrehajtó mező közti elválasztásra.

FÁJLOK
/etc/syslog.conf
    A syslogd konfigurációs fájlja.

HIBÁK
A többszörös kiválasztók hatása néha nem igazán érezhető. Például a "mail.crit,*.err" kiválasztó csoport az "err" és a magasabb szintű mail szolgáltatási üzeneteket fogja kiválasztani, nem pedig a "crit" és az ennél magasabb prioritású üzeneteket.

LÁSD MÉG
sysklogd(8), klogd(8), logger(1), syslog(2), syslog(3)

A SZERZŐK
A syslogd BSD forrásból lett átvéve. A Linuxra való alkalmazását Greg Wettstein (greg@wind.rmcc.com) végezte, Martin Schulze (joey@linux.de) pedig kijavított néhány működésbeli hibát és hozzáadott némi új sajátosságot is.

MAGYAR FORDÍTÁS
kuksi <kuksi@arts7.hu>