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 |
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;\
é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 [AT] wind.com) végezte, Martin Schulze (joey [AT] 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 [AT] arts7.hu>