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>