Syslogd Linux és Unix Command

A Sysklogd két olyan rendszer-segédprogramot biztosít, amelyek támogatják a rendszer naplózását és a kernel üzenetek csapdázását. Mind az internet, mind az unix tartományi aljzatok támogatása teszi lehetővé a helyi és távoli naplózást.

A rendszer naplózását a syslogd (8) változata biztosítja az állomány BSD forrásokból. A rendszermag naplózását a klogd (8) segédprogram biztosítja, amely lehetővé teszi a rendszermag naplózását akár önállóan, akár syslogd kliensként.

A Syslogd olyan naplózást biztosít, amelyet sok modern program használ. Minden bejelentkezett üzenet tartalmaz legalább egy idõt és egy gazdagépnevet, általában egy programnév mezõt is, de ez attól függ, hogy mennyire megbízható a naplózó program.

Míg a syslogd források nagymértékben módosultak, néhány jegyzet rendben van. Mindenekelőtt szisztematikus kísérlet volt annak biztosítására, hogy a syslogd kövesse az alapértelmezett BSD viselkedését. A második fontos megjegyezni, hogy a syslogd ezen verziója átláthatóan együttműködik a standard könyvtárakban található syslog verziójával. Ha a szabványos megosztott könyvtárakhoz kapcsolódó bináris nem működik megfelelően, szeretnénk példát mutatni az anomális viselkedésre.

Az /etc/syslog.conf vagy az alternatív fájl, amelyet az -f opcióval ad meg, az indításkor olvasható. Minden olyan sor, amely a hashjelöléssel kezdődik (`` # '') és az üres sorokat figyelmen kívül hagyja. Ha hiba történik az elemzés során, az egész sort figyelmen kívül hagyja.

Szinopszis

syslogd [ -a socket ] [ -d ] [ -f config fájl ] [ -h ] [ -l fogadó lista ] [ -m intervallum ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] v ] [ -x ]

Lehetőségek

- aljzat

Ezzel az argumentummal további sorkészleteket adhat meg a syslogd által meghallgatható módon. Erre azért van szükség, ha egy démon egy chroot () környezetben futna. Legfeljebb 19 kiegészítő aljzat használható. Ha még a környezetedre van szüksége, növelje a MAXFUNIX szimbólumot a syslogd.c forrásfájlban. A chroot () démonra vonatkozó példát az OpenBSD-ben lévő emberek írják le a http://www.psionic.com/papers/dns.html címen.

-d

Kapcsolja be a hibakeresési módot. Ezzel a démon nem fog továbbhaladni egy villával (2), hogy beállítsa magát a háttérben, hanem ezzel ellentétben az előtérben, és írjon sok hibakeresési információt az aktuális tty-ről. További információért olvassa el a HORDOZÁSI részt.

-f config fájl

Adjon meg egy alternatív konfigurációs fájlt az /etc/syslog.conf helyett, amely az alapértelmezett.

-h

Alapértelmezés szerint a syslogd nem továbbítja a távoli gépekről érkező üzeneteket. Ennek a kapcsolónak a parancssorban történő megadása a naplózóemut továbbítja minden olyan távoli üzenetet, amelyet a definiált továbbító hostok felé továbbít.

-l fogadó lista

Adjon meg egy gazdanevet, amelyet csak az egyszerű gazdanévvel és nem az fqdn-vel kell naplózni. Több állomás megadható a vastagbél (``: '') elválasztó segítségével.

-m intervallum

A syslogd rendszeresen regisztrálja a védjegyet. A két - MARK - vonal közötti alapértelmezett intervallum 20 perc. Ezzel az opcióval megváltoztatható. Az intervallum nullára állítása teljesen kikapcsolja.

-n

Kerülje az automatikus hátteret. Ez különösen akkor szükséges, ha a syslogd- ot az init (8) indítja el és ellenőrzi.

-p csatlakozóaljzat

Megadhat egy alternatív unix tartománycsatlakozót a / dev / log helyett.

-r

Ez az opció lehetővé teszi az eszköz számára, hogy egy üzenetet kapjon a hálózattól egy internetes tartománycsatlakozó segítségével a syslog szolgáltatással (lásd: (5)). Az alapértelmezett beállítás az, hogy ne fogadjon üzeneteket a hálózaton.

Ezt az opciót a sysklogd csomag 1.3-as verziója tartalmazza. Vegye figyelembe, hogy az alapértelmezett viselkedés ellentétes a régebbi verziók viselkedésével, ezért ezt be kell kapcsolnia.

-s domainlista

Adja meg a domain nevet, amelyet le kell vonni a naplózás előtt. Több domén megadható a vastagbél (``: '') elválasztó segítségével. Kérjük, vegye figyelembe, hogy aldomaineket nem lehet megadni, csak teljes domaineket. Például ha az -s north.de meg van adva, és a fogadó naplózása megszűnik a satu.infodrom.north.de domain bezárásához, akkor két tartományt kell megadnia, például: -s north.de:infodrom.north.de .

-v

Nyomtatási verzió és kilépés.

-x

Távoli üzenetek fogadásakor tiltsa le a névkereséseket. Ezzel elkerülhetők a holtpontok, amikor a névszerver ugyanazon a gépen fut, amely a syslog démont futtatja.

Jelzések

A Syslogd reagál egy sor jelre. Könnyen küldhetsz jelet a syslogd-nak az alábbiak használatával:

kill -SIGNAL `cat / var / fut / syslogd.pid`

SIGHUP

Ezzel a syslogd újraindítást végezhet el. Minden megnyitott fájl bezáródik, a konfigurációs fájl (alapértelmezett: /etc/syslog.conf ) újra beolvasható és a syslog (3) létesítmény újraindul.

SIGTERM

A syslogd meg fog halni.

SIGINT , SIGQUIT

Ha a hibakeresés engedélyezett, ezek figyelmen kívül maradnak, különben a syslogd meg fog halni.

SIGUSR1

A hibakeresés be / ki kapcsolása. Ez az opció csak akkor használható, ha a syslogd elindul a -d debug opcióval.

SIGCHLD

Várj gyermekekre, ha valaki megszületett, a wall'ing üzenetek miatt.

Konfigurációs fájlszintaxis különbségek

A Syslogd egy kicsit eltérő szintaxist használ a konfigurációs fájlhoz, mint az eredeti BSD források. Eredetileg egy adott prioritás és a fenti összes üzenete továbbításra került a naplófájlba.

Például a következő sor okozta az összes kimenetet a démonokból a démon létesítmények használatával (a debug a legalacsonyabb prioritás, így minden magasabb is megegyezik) a / usr / adm / daemonba való belépéshez :

# Minta syslog.conf daemon.debug / usr / adm / démonok

Az új rendszer szerint ez a viselkedés megegyezik. A különbség négy új specifikátor, a csillag ( * ) helyettesítő, az egyenletjel ( = ), a felkiáltójel ( ! ) És a mínuszjel ( - ).

A * megadja, hogy a megadott objektum összes üzenete a rendeltetési helyre irányul. Ne feledje, hogy ez a viselkedés degenerálódik a hibakeresés elsőbbségi szintjének meghatározásával. A felhasználók jelezték, hogy a csillagjelzés intuitívabb.

A = helyettesítő kártya a naplózás korlátozására szolgál a megadott prioritási osztályhoz. Ez például lehetővé teszi például, hogy csak hibakeresési üzeneteket vezessenek be egy adott naplóforráshoz.

Például a syslog.conf következő sorában az összes forrást az / usr / adm / debug fájlra irányítja.

# Minta syslog.conf *. = Debug / usr / adm / debug

A ! a megadott prioritások naplózásának kizárására szolgál. Ez hatással van a prioritások meghatározására (!).

Például a következő sorok naplózni fogják az üzenettovábbítás összes üzeneteit, kivéve azokat, akiknek a prioritási adatai a / usr / adm / mail fájlba vannak. És a news.info (beleértve) és a news.crit (kivéve) összes üzenetei a / usr / adm / news fájlba kerülnek.

# Minta syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; hírek!! Krit / usr / adm / hírek

Használhatsz intuitív módon kivételes specifikorként. A fenti értelmezést egyszerűen megfordítják. Ehhez használhatja

mail.none

vagy

levél.!*

vagy

mail.! hibakeresés

hogy kihagyja az üzeneteket tartalmazó üzeneteket. Rengeteg hely van vele játszani. :-)

A - csak fájlnév előhívásához használható, ha minden egyes írás után el szeretné hagyni a fájl szinkronizálását.

Ez némi akklimatizációt igényel azok számára, akik a tiszta BSD-viselkedéshez használódtak, de a tesztelők jelezték, hogy ez a szintaxis némileg rugalmasabb, mint a BSD-viselkedés. Vegye figyelembe, hogy ezek a változások nem érinthetik a szabványos syslog.conf (5) fájlokat. Speciálisan módosítania kell a konfigurációs fájlokat, hogy megkapja a továbbfejlesztett viselkedést.

Távoli naplózás támogatása

Ezek a módosítások hálózati támogatást biztosítanak a syslogd létesítményben. A hálózati támogatás azt jelenti, hogy az üzenetek továbbíthatók egy csomópontból a syslogd futtatásához egy másik csomóponthoz, amelyen futnak a syslogd, ahol ténylegesen bejelentkeznek egy lemezfájlba.

Ennek engedélyezéséhez meg kell adnia a -r opciót a parancssorban. Az alapértelmezett viselkedés az, hogy a syslogd nem hallja a hálózatot.

A stratégia az, hogy syslogd hallgasson egy unix tartományban a lokálisan generált naplóüzenetekre. Ez a viselkedés lehetővé teszi, hogy a syslogd együttműködjön a standard C könyvtárban található syslog programmal. Ugyanakkor a syslogd figyeli a szabványos syslog porton a más gazdagépektől továbbított üzeneteket. Ennek megfelelő működéséhez a (5) fájlokat (amelyek általában az / etc-ben találhatók ) a következő bejegyzéssel kell rendelkezniük:

syslog 514 / udp

Ha ez a bejegyzés hiányzik, a syslogd sem képes távoli üzeneteket fogadni, sem elküldeni őket, mert az UDP port megnyitása nem lehetséges. Ehelyett a syslogd azonnal elpusztul, és hibaüzenetet fúj.

Az üzenetek másik gazda számára történő továbbításához cserélje ki a syslog.conf fájlban lévő normál fájlsorozatot annak a gazdanévnek a nevével, amelyhez az üzeneteket el kell küldeni egy @ -vel.

Például, ha az összes üzenetet továbbítja a távoli gépre, a következő syslog.conf bejegyzést használja:

# Minta syslogd konfigurációs fájlt # üzenetet küld egy távoli gépnek. *. * @hostname

Az összes rendszermag üzenetek távoli gépre történő továbbításához a konfigurációs fájl a következő:

# Minta konfigurációs fájl az összes kernel # üzenet továbbítására távoli gépre. kern. * @hostname

Ha a távoli gépnév nem indítható meg indításkor, mert a névszerver esetleg nem érhető el (a syslogd után indítható), nem kell aggódnia. A Syslogd újra megpróbálja megoldani a nevet tízszer, majd panaszkodik. Egy másik lehetőség, hogy ezt elkerüljük, a gazdagép helyét az / etc / hosts könyvtárba kell helyezni.

A normál syslogd-oknál syslog-hurkot kapsz, ha olyan üzenetet küldesz, amelyet egy távoli gépről fogadott ugyanarra a gazdagépre (vagy bonyolultabb egy harmadik hostra, amely visszaadja az elsőnek, stb.). Az én domainemben (Infodrom Oldenburg) véletlenül megkaptuk az egyiket és a lemezünket ugyanazzal az egyetlen üzenetgel töltötték fel. :-(

Ennek elkerülése érdekében a távoli gépen érkező üzeneteket többé nem továbbítják egy másik (vagy ugyanazon) távoli állomáshoz. Ha vannak olyan forgatókönyvek, amelyeknek nincs értelme, kérjük, dobjon el (Joey) egy sort.

Ha a távoli gép ugyanabban a tartományban található, mint a gazda, akkor a syslogd fut, csak az egyszerű gazdanév kerül naplózásra az egész fqdn helyett.

Egy helyi hálózatban központi naplószervert adhat meg, hogy az összes fontos információt megőrizze egy gépen. Ha a hálózat különböző tartományokból áll, nem kell panaszkodnia a teljesen neves nevek naplózására az egyszerű gépnevek helyett. Érdemes lehet a kiszolgáló szalag-tartományi szolgáltatását használni. Megmondhatja a syslogd-nek, hogy kivágja a domaintől eltérő domaineket, és csak a gépneveket írja le.

Az -l függvénnyel lehetőség van arra is, hogy egyetlen gazdagépet helyi gépként definiáljunk. Ez azt is eredményezi, hogy csak az egyszerű gépneveket, és nem a fqdneket jelentkezik.

Az UDP aljzat, amely az üzeneteket továbbítja távoli gépeknek, vagy üzeneteket fogad el tőlük, csak akkor nyílik meg, amikor erre szükség van. Az 1.3-23 előtti kiadásoknál minden alkalommal megnyitották őket, de nem nyitottak olvasásra vagy továbbításra.

Kimenet a nevezett csövekhez (FIFO-k)

A syslogd ezen verziója támogatja a nevezett csövek (fifos) kimenetének naplózását. A naplóüzenetek célállomásaként egy fifo vagy nevű cső használható egy pipy szimbólum (`| | '') előhívásával a fájl nevére. Ez hasznos a hibakereséshez. Vegye figyelembe, hogy a syslogd indítása előtt a fifo-t az mkfifo paranccsal kell létrehozni.

A következő konfigurációs fájl a debug üzeneteket a kerneltől a fifo felé irányítja:

# Minta konfiguráció a kernel hibakeresésére # üzenetet CSAK a / usr / adm / hibakereséshez, ami # nevű cső. kern. = debug | / usr / adm / debug

Telepítési gondok

Valószínűleg egy fontos szempont a syslogd ezen verziójának telepítésekor. A syslogd ezen változata az üzenetek helyes formázásától függ a syslog függvénytől. A megosztott könyvtárakban a syslog függvény működése valahol a libc.so.4. [2-4] .n tartományban változott. A specifikus változás az, hogy az üzenetet null-terminálta, mielőtt elküldené a / dev / log aljzatba. A syslogd ezen verziójának megfelelő működése az üzenet null-végződésétől függ.

Ez a probléma jellemzően akkor jelenik meg, ha régi, statikailag kapcsolt binárisokat használnak a rendszeren. A syslog funkció régi verzióit használó binárisok üres sorokat fognak naplózni, majd az üzenetet az eltávolított üzenet első karakterével. Ha ezeket a binárisokat a megosztott könyvtárak újabb verzióihoz csatlakoztatja, a probléma megoldására kerül sor.

Mind a syslogd (8), mind pedig a klogd (8) init (8) futtatható vagy az rc. * Szekvencia részeként indítható. Ha az init indításakor elindul a -n beállítás, máskülönben tonna syslog démon indul. Ez azért van, mert az init (8) a folyamatazonosítótól függ.

Biztonsági fenyegetések

Lehetséges, hogy a syslogd démont a szolgáltatásmegtagadási támadások vezetékeként használják. Köszönöm John Morrisonnak (jmorriso@rflab.ee.ubc.ca), hogy figyelmeztessen erre a lehetőségre. A szélhámos program (mer) nagyon könnyen elárasztja a syslogd démont a syslog üzenetekkel, így a naplófájlok a fájlrendszer összes fennmaradó részét elfogyasztják. Az inet tartományi aljzatokra való bejelentkezés aktiválása természetesen ki fogja fedni egy rendszert a programokon vagy egyéneken kívül a helyi gépen.

Számos mód van a gép védelmére:

  1. Végezze el a rendszermag tűzfalát, hogy korlátozza, mely állomás vagy hálózat fér hozzá az 514 / UDP aljzathoz.
  2. A naplózás egy elszigetelt vagy nem root fájlrendszerre irányítható, amely, ha be van töltve, nem károsítja a gépet.
  3. Az ext2 fájlrendszer használható, amely úgy van beállítva, hogy korlátozza a fájlrendszer egy bizonyos százalékát a gyökér használatára. MEGJEGYZÉS, hogy ehhez a syslogd futása nem root eljárásnak tekintendő. TUDNIVALÓK, hogy ez megakadályozza a távoli naplózás használatát, mivel a syslogd nem tud csatlakozni az 514 / UDP aljzathoz.
  4. Az inet tartományú aljzatok letiltása korlátozza a helyi gépre vonatkozó kockázatot.
  5. Használja a 4. lépést, és ha a probléma továbbra is fennáll, és nem másodlagos a gazemberprogramhoz / démonhoz, kap egy 3,5 méter hosszú (kb. 1 méter hosszú) tapadós rudat *, és csevegjen a kérdéses felhasználóval. Sucker rúd def. --- 3/4, 7/8 vagy 1in. edzett acél rúd, mindkét végén menetes. Elsődleges felhasználás az olajiparban Nyugat-Észak-Dakotában és más helyszíneken, hogy szivattyúzzák az olaj olajat. Másodlagos felhasználás a szarvasmarha-takarmányok építésére és az alkalmi rikondozó vagy harcos egyének kezelésére.

hibakeresés

Amikor a hibakeresés bekapcsolása a -d opció használatával történik, a syslogd nagyon sokrétű lesz, ha sokat ír a stdoutról. A konfigurációs fájl újraolvasása és újraértelmezése esetén táblázatos, a belső adatszerkezetnek megfelelően. Ez a táblázat négy mezőből áll:

szám

Ez a mező nullával kezdődő sorszámot tartalmaz. Ez a szám a belső adatszerkezetben (azaz a tömbben) levő pozíciót képviseli. Ha egy szám ki van hagyva, akkor az /etc/syslog.conf megfelelő sorában hiba lehet.

minta

Ez a mező bonyolult és pontosan a belső struktúrát képviseli. Minden oszlop egy létesítményt jelent (lásd: syslog (3)). Amint láthatja, még vannak olyan létesítmények, amelyeket korábban használtak szabadon, csak a baloldali legtöbbet használják. Minden oszlopban lévő mező a prioritásokat jelenti (lásd a syslog (3)).

akció

Ez a mező leírja az adott műveletet, amikor minden olyan üzenetet kap, amely megfelel a mintának. Tekintse meg a syslog.conf (5) manpage-ot az összes lehetséges művelethez.

érvek

Ez a mező további argumentumokat jelenít meg az utolsó mezőben végrehajtott műveletekhez. Fájlnaplózás esetén ez a fájlnév a naplófájlhoz; a felhasználó naplózásához ez a felhasználók listája; a távoli naplózáshoz ez a gép gépneve, amelybe be kell jelentkezni; konzolnaplózáshoz ez a használt konzol; a tty-naplózáshoz ez a megadott tty; falnak nincs további érve.

Lásd még

logger (1), syslog (2), (5)

Az együttműködők

A Syslogd BSD forrásból származik, Greg Wettstein (greg@wind.enjellic.com) a portot Linuxra futtatta, Martin Schulze (joey@linux.de) néhány hibát rögzített és több új funkciót is hozzáadott. A Klogd- ot eredetileg Steve Lord (lord@cray.com) írta, Greg Wettstein jelentős fejlesztéseket hajtott végre.

Dr. Greg Wettstein
Enjellic rendszerek fejlesztése

Onkológiai Kutatóosztály Számítástechnikai Szolgálat
Roger Maris Rákközpont
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Számítástudományi Tanszék
Edinburgh Egyetem, Skócia
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Fontos: Az ember paranccsal ( % man ) tekintse meg, hogyan használják a parancsot az adott számítógépen.

kapcsolódó cikkek