SYSLOG.CONF(5) | Linux System Administration | SYSLOG.CONF(5) |
syslog.conf - syslogd (8) konfigurációs fájl
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.
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.
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.
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.
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.
Amennyiben állományként egy tty van megadva, speciális tty-kezelés hajtódik végre, hasonlóan a /dev/console-hoz.
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.
Á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ő.
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.
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.
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.
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.
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.
kuksi <kuksi@arts7.hu>
1 January 1998 | Version 1.3 |