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>