Syslogd Linux in Unix ukaz

Sysklogd ponuja dve sistemski pripomočki, ki zagotavljajo podporo za sistemsko beleženje in zajemanje sporočil jedra. Podpora internetnih in enotnih domenskih vtičnic omogoča, da ta pripomoček podpira lokalno in oddaljeno sečnjo.

Sistemsko beleženje je na voljo s pomočjo različice syslogd (8), ki izhaja iz izvornih virov BSD. Podpora za sečnjo jedra zagotavlja pripomoček klogd (8), ki omogoča, da se dnevnik jedra izvaja samostojno ali kot stranka syslogd.

Syslogd ponuja vrsto dnevnika, ki ga uporabljajo številni sodobni programi. Vsako zabeleženo sporočilo vsebuje najmanj časovno polje in ime gostitelja, običajno tudi polje z imenom programa, vendar je odvisno od tega, kako zanesljiv je program za dnevnike.

Medtem ko so bili izvorni viri močno spremenjeni, je nekaj beležk v redu. Najprej je bil sistematičen poskus zagotoviti, da syslogd sledi svojemu privzetemu, običajnemu vedenju BSD. Drugi pomemben koncept, ki ga je treba opozoriti, je, da ta različica syslogd deluje pregledno z različico syslog, ki je bila najdena v standardnih knjižnicah. Če binarna povezava s standardnimi knjižnicami v skupni rabi ne deluje pravilno, bi želeli primer nepravilnega vedenja.

Glavna konfiguracijska datoteka /etc/syslog.conf ali alternativna datoteka, podana z opcijo -f , se ob zagonu bere. Vse vrstice, ki se začnejo z oznako hash (`` # '') in prazne vrstice, se prezrejo. Če pride do napake pri razčlenjevanju, se celotna vrstica ne upošteva.

Povzetek

syslogd [ -a socket ] [ -d ] [ -f config datoteka ] [ -h ] [ -l seznam gostiteljev ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

Opcije

- vtičnica

S tem argumentom lahko določite dodatne vtičnice iz tega syslogda, ki jih je treba poslušati. To je potrebno, če boste dovolili, da se neki daemon izvaja v okolju chroot (). Uporabite lahko do 19 dodatnih vtičnic. Če vaše okolje potrebuje še več, morate v izvorni datoteki syslogd.c povečati simbol MAXFUNIX . Primer za demon chroot () opisujejo ljudje iz OpenBSD na http://www.psionic.com/papers/dns.html.

-d

Vklopi postopek odpravljanja napak. Uporaba tega demona ne bo nadaljevala z vilicami (2), da se nastavi v ozadju, ampak nasprotno, ostane v ospredju in napiše veliko debugnih podatkov o trenutni tty. Za več informacij glejte razdelek DEBUGGING.

-f konfiguracijske datoteke

Navedite alternativno konfiguracijsko datoteko namesto /etc/syslog.conf , ki je privzeta.

-H

Po privzetku syslogd ne bo posredoval sporočil, ki jih prejme od oddaljenih gostiteljev. Določitev tega stikala v ukazni vrstici bo povzročila, da bi dnevnik dnevnika posredoval vsa oddaljena sporočila, ki jih prejme, za posredovanje gostiteljev, ki so bili definirani.

- seznam gostiteljev

Navedite ime gostitelja, ki bi ga bilo treba registrirati samo s preprostim imenom gostitelja, ne pa s fqdn. Več gostiteljev je mogoče določiti s pomočjo ločila debelega črevesa (``: '').

-m interval

Syslogd redno dnevno spremlja oznako časovnega žiga. Privzeti interval med dvema - vrsticama MARK - je 20 minut. To možnost lahko spremenite s to možnostjo. Nastavitev intervala na nič se izklopi v celoti.

-n

Izogibajte se samodejnemu ozadju. To je potrebno zlasti, če se syslogd zažene in nadzoruje z initom (8).

-p vtičnica

Namesto / dev / log lahko podate alternativno vtičnico za Unix domene.

-r

Ta možnost bo objektu omogočila prejemanje sporočila iz omrežja z vtičnico internetne domene s storitvijo syslog (glej (5)). Privzeto je, da ne prejmete nobenega sporočila iz omrežja.

Ta možnost je predstavljena v različici 1.3 paketa sysklogd. Upoštevajte, da je privzeto vedenje v nasprotju s tem, kako se starejše različice obnašajo, zato boste morda morali to vklopiti.

-s domene

Določite ime domene, ki ga je treba pred prijavo odstraniti. Več razdelkov se lahko določi z uporabo ločila debelega črevesa (``: ''). Upoštevajte, da poddomen ne morete podati, temveč samo celotne domene. Na primer, če je podana -s north.de in se beleženje gostitelja razrešuje na satu.infodrom.north.de, nobena domena ne bo zmanjšana, boste morali določiti dve domeni, na primer: -s north.de:infodrom.north.de .

-v

Različica za tiskanje in izstop.

-x

Onemogočite lookups pri prejemu oddaljenih sporočil. S tem se izognete zaprtim blokom, ko se nameserver izvaja na istem računalniku, ki zažene syslog daemon.

Signali

Syslogd reagira na niz signalov. Z lahkoto lahko pošljete signal syslogd z naslednjim:

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

Sighup

To omogoča, da syslogd izvede ponovno inicializacijo. Vse odprte datoteke so zaprte, datoteka s konfiguracijo (privzeto je /etc/syslog.conf ), se bo ponovno prebrala in objekt syslog (3) se znova zagnati.

SIGTERM

Syslogd bo umrl.

SIGINT , SIGQUIT

Če je omogočeno odpravljanje napak, se te ne upoštevajo, sicer bo syslogd umrl.

SIGUSR1

Vklopite / izklopite odpravljanje napak. To možnost lahko uporabite le, če se syslogd zažene s funkcijo -d debug.

SIGCHLD

Počakajte otroke, če so se nekateri rodili zaradi stenskih sporočil.

Razlike v sintaksi v konfiguracijski datoteki

Syslogd uporablja rahlo drugačno sintakso za svojo konfiguracijsko datoteko kot izvorni viri BSD. Prvotno so bila vsa sporočila določene prioritete in zgoraj posredovana v datoteko dnevnika.

Na primer, naslednja vrstica je povzročila VSE izhode od demonov, ki uporabljajo elemente daemon (debug je najnižja prednostna naloga, tako da se bo tudi vsaka višja ujemala), da bi šli v / usr / adm / daemons :

# Vzorec syslog.conf daemon.debug / usr / adm / daemons

V skladu z novo shemo to vedenje ostaja enako. Razlika je dodatek štirih novih specifikatorjev, zvezdic ( * ), znak za enačbo ( = ), klicaj ( ! ) In znak minus ( - ).

* Določa, da se vsa sporočila za določen objekt usmerijo na cilj. Upoštevajte, da je to vedenje degenerirano z določitvijo stopnje prednostne stopnje razhroščevanja. Uporabniki so pokazali, da je oznaka zvezdica bolj intuitivna.

Dovolilnica se uporablja za omejitev beleženja v določeni razred prednostnega razreda. To omogoča, na primer, usmerjanje samo razhroščevalnih sporočil v določen vir vira.

Na primer, naslednja vrstica v syslog.conf bi usmerila razhroščevalna sporočila iz vseh virov v datoteko / usr / adm / debug .

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

The ! se uporablja za izključitev beleženja določenih prednostnih nalog. To vpliva na vse (!) Možnosti določanja prednostnih nalog.

Naslednje vrstice bi na primer vpisale vsa sporočila poštne pošiljke, razen tistih s prednostnimi informacijami v datoteki / usr / adm / mail . In vsa sporočila iz news.info (vključno) do news.crit (brez) bi bila prijavljena v datoteko / usr / adm / news .

# Vzorec syslog.conf pošte. *; Pošta.! = Info / usr / adm / mail novice.info; novice.! Crit / usr / adm / novice

Uporabite ga lahko intuitivno kot izjemo. Omenjena razlaga je preprosto obrnjena. To lahko storite

mail.none

ali

pošta.! *

ali

pošta.! debug

da preskočite vsa sporočila, ki prihajajo s storitvijo pošte. Z njim je veliko prostora. :-)

- - se lahko uporabi samo za predpono imena datoteke, če želite, da po vsaki pisavi ne želite sinhronizirati datoteke.

To lahko zahteva aklimatizacijo za tiste posameznike, ki se uporabljajo za čisto vedenje BSD, vendar so testerji pokazali, da je ta sintaksa nekoliko prožnejša od vedenja BSD. Upoštevajte, da te spremembe ne smejo vplivati ​​na standardne datoteke syslog.conf (5). Za izboljšano vedenje morate posebej spremeniti konfiguracijske datoteke.

Podpora za oddaljeno prijavo

Te spremembe zagotavljajo omrežno podporo objektu syslogd. Omrežna podpora pomeni, da se lahko sporočila pošljejo iz enega vozlišča, ki se izvaja syslogd, v drugo vozlišče, ki se izvaja syslogd, kjer bodo dejansko prijavljeni v datoteko diska.

Če želite to omogočiti, morate v ukazni vrstici podati možnost -r . Privzeto vedenje je, da syslogd ne bo poslušal omrežja.

Strategija je, da ima syslogd poslušati v vtičnici unix domene za lokalno ustvarjena dnevnika sporočil. To vedenje bo omogočilo, da syslogd interoperira s sslogom, ki je v standardni knjižnici C. Hkrati syslogd posluša na standardnem portalu syslog za sporočila, posredovana drugim gostiteljem. Da bi to pravilno opravili, morajo biti datoteke storitev (5) (običajno najdene v / etc ) naslednji vnos:

syslog 514 / udp

Če ta vnos manjka, syslogd ne more sprejemati oddaljenih sporočil niti jih ne pošiljati, ker se vrata UDP ne morejo odpreti. Namesto tega bo syslogd umrl takoj, izpuščal sporočilo o napaki.

Če želite posredovati sporočila drugim gostiteljem, zamenjajte običajno vrstico datoteke v datoteki syslog.conf z imenom gostitelja, na katerega naj bodo sporočila poslana s @.

Na primer, če želite posredovati VSE sporočila oddaljenemu gostitelju z naslednjim vnosom syslog.conf :

# Vzorec konfiguracijske datoteke syslogd na # sporočila oddaljenemu gostitelju posredujte vse. *. * @hostname

Če želite vsa sporočila jedra posredovati oddaljenemu gostitelju, bo konfiguracijska datoteka naslednja:

# Vzorec konfiguracijske datoteke za posredovanje vseh sporočil jedra # oddaljenemu gostitelju. kern. * @hostname

Če oddaljenega gostitelja ni mogoče odpraviti ob zagonu, ker name-strežnik morda ni dostopen (se lahko zažene po syslogd), vam ni treba skrbeti. Syslogd bo znova poskusil rešiti ime desetkrat in nato pritožiti. Druga možnost, da se to izognemo, je, da se ime gostitelja namesti v / etc / hosts .

Z običajnim syslogd-jem boste dobili syslog-zanke, če pošljete sporočila, ki so bila sprejeta od oddaljenega gostitelja na isti gostitelj (ali bolj zapletena tretjemu gostitelju, ki jo pošlje nazaj na prvo, in tako naprej). V moji domeni (Infodrom Oldenburg) smo nenamerno dobili enega in naši diski napolnili z enim samim sporočilom. :-(

Da bi se temu izognili v prihodnosti, nobena sporočila, ki so bila sprejeta od oddaljenega gostitelja, niso več poslana na drug (ali isti) oddaljeni gostitelj. Če obstajajo scenariji, kjer to ni smiselno, prosim spustite me (Joey) črto.

Če se oddaljeni gostitelj nahaja na isti domeni kot gostitelj, se vklopi syslogd, namesto celotnega fqdn bosta zabeležena samo preprosto ime gostitelja.

V lokalnem omrežju lahko posredujete osrednji dnevniški strežnik, da so na enem računalniku shranjeni vsi pomembni podatki. Če je omrežje sestavljeno iz različnih domen, vam ni treba pritoževati, da prijavite polno kvalificirana imena namesto preprostih imen gostiteljev. Morda boste želeli uporabiti funkcijo strip-domain-a tega strežnika. Syslogd lahko poveste, da odstranite več domen, razen tistega, na katerem se nahaja strežnik, in samo prijavite preproste imena gostiteljev.

Z možnostjo -l obstaja tudi možnost določitve posameznih gostiteljev kot lokalnih strojev. Tudi to privede do prijave samo njihovih preprostih imen gostiteljev in ne fqdns.

Vtičnica UDP, ki se uporablja za posredovanje sporočil oddaljenim gostiteljem ali prejemanje sporočil od njih, se odpre le, ko je to potrebno. V izpustih pred 1.3-23 je bil odprt vsakič, ne pa tudi za branje ali posredovanje.

Izhod do imenovanih cevi (FIFO)

Ta različica syslogd podpira izpisovanje v imenske cevi (fifos). Fifo ali imenovana cev lahko uporabite kot destinacijo za sporočila dnevnika, tako da napišete simbol pip (`` | '') na ime datoteke. To je priročno za odpravljanje napak. Upoštevajte, da mora biti fifo ustvarjen z ukazom mkfifo, preden se začne syslogd.

Naslednja konfiguracijska datoteka usmerja sporočila za razhroščevanje iz jedra v fazo:

# Vzorec konfiguracije za usmerjanje kernelov razhroščevanje # sporočil SAMO v / usr / adm / debug, ki je # imenovan cev. kern. = debug | / usr / adm / debug

Namestitev Concerns

Pri namestitvi te različice syslogd je verjetno ena pomembna skrb. Ta različica syslogd je odvisna od pravilnega oblikovanja sporočil s funkcijo syslog. Delovanje funkcije syslog v skupnih knjižnicah se je spremenilo nekje v regiji libc.so.4 [2-4] .n. Posebna sprememba je bila, da sporočilo prekličete, preden ga pošljete v vtičnico / dev / log . Pravilno delovanje te različice syslogd je odvisno od ničle končanja sporočila.

Ta težava se običajno manifestira, če se v sistemu uporabljajo stare statično povezane binarne datoteke. Binarne datoteke z uporabo starejših različic funkcije syslog bodo povzročile, da bodo zabeležene prazne vrstice, nato pa sporočilo s prvim znakom v odstranjenem sporočilu. Ta problem se bo odpravil s preusmeritvijo teh binarnih datotek na novejše različice knjižnic v skupni rabi.

Syslogd (8) in klogd (8) sta lahko zagnani iz init (8) ali pa se začneta kot del zaporedja rc. *. Če je začel iz init, je treba nastaviti možnost -n , v nasprotnem primeru boste dobili tone syslog demonov. To je zato, ker je init (8) odvisen od ID-ja procesa.

Varnostne grožnje

Obstaja možnost, da se syslogd daemon uporabi kot kanal za napadi zavrnitve storitve. Hvala, da pojdite na John Morrison (jmorriso@rflab.ee.ubc.ca), da me opozorite na ta potencial. Zločinski program (mer) bi lahko zelo enostavno poplavil syslogd daemon s sporočili syslog, zaradi česar so datoteke dnevnika porabile ves preostali prostor v datotečnem sistemu . Aktiviranje beleženja preko vtičnic domene inet bo seveda izpostavilo sistem tveganjem zunaj programov ali posameznikov na lokalnem računalniku.

Obstaja več načinov za zaščito stroja:

  1. Implementirajte požarni zid jedra, da omejite, kateri gostitelji ali omrežja imajo dostop do vtičnice 514 / UDP.
  2. Logiranje se lahko usmeri v izolirani ali nekorenski datotečni sistem, ki, če je napolnjen, ne bo oviral naprave.
  3. Datotečni sistem ext2 se lahko uporabi, ki ga je mogoče konfigurirati tako, da določen odstotek datotečnega sistema omeji samo na root. OPOMBA, da bo to zahtevalo, da se syslogd izvaja kot nekorenski postopek. TUDI OPOZORILO, da bo to preprečilo uporabo oddaljenega zapisovanja, ker se syslogd ne more povezati s vtičem 514 / UDP.
  4. Onemogočanje vtičnic domene inet bo omejilo tveganje za lokalni računalnik.
  5. Uporabite korak 4 in če se težava še naprej odpravi in ​​ni sekundarna za prevarantski program / daemon, dobite 3,5-palčno dolžino droga za sesirje * in se pogovorite z zadevnim uporabnikom. Sesalna palica def. --- 3/4, 7/8 ali 1in. utrjena jeklena palica, moški navoj na vsakem koncu. Primarna uporaba v naftni industriji v zahodni Severni Dakoti in na drugih lokacijah za črpanje "sesati" olje iz naftnih vodnjakov. Sekundarne rabe so za gradnjo goveda in za obravnavo občasnega nepremagljivega ali vojskovalnega posameznika.

Razhroščevanje

Ko je odpravljanje napak vključeno z uporabo možnosti -d , bo syslogd zelo verban, tako da bo veliko pisal o storitvi stdout. Kadarkoli se ponovno preberi in ponovno razčleni konfiguracijska datoteka, se prikaže tabela, ki ustreza notranji strukturi podatkov. To tabelo sestavljajo štiri polja:

številka

To polje vsebuje serijsko številko, ki se začne z ničlo. Ta številka predstavlja položaj v notranji podatkovni strukturi (tj. Matriki). Če je ena številka izpuščena, je morda v ustrezni vrstici v /etc/syslog.conf prišlo do napake.

vzorec

To polje je težavno in natančno predstavlja notranjo strukturo. Vsak stolpec pomeni objekt (glej syslog (3)). Kot lahko vidite, še vedno obstajajo nekateri prostori, ki so za nekdanjo uporabo ostali brezplačni, uporabljajo se le levi najbolj. Vsako polje v stolpcu predstavlja prednostne naloge (glej syslog (3)).

ukrepanje

V tem polju je opisano posamezno dejanje, ki se izvede, ko prejmete sporočilo, ki se ujema z vzorcem. Za vse možne akcije si oglejte priročnik syslog.conf (5).

argumente

To polje prikazuje dodatne argumente za dejanja v zadnjem polju. Za prijavo v datoteko je to ime datoteke za log datoteko; za prijavo uporabnika je seznam uporabnikov; za oddaljeno prijavo je ime gostitelja za prijavo v račun; za konzolo sečnje je to uporabljena konzola; za tty-logging je to tty; stena nima nobenih dodatnih argumentov.

Poglej tudi

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

Sodelavci

Syslogd je vzel iz virov BSD, Greg Wettstein (greg@wind.enjellic.com) je pristanišče Linuxa , Martin Schulze (joey@linux.de) popravil nekaj napak in dodal nekaj novih funkcij. Klogd je prvotno napisal Steve Lord (lord@cray.com), Greg Wettstein pa je naredil velike izboljšave.

Dr. Greg Wettstein
Enjellic Systems Development

Raziskovalni oddelek za računalniške raziskave
Roger Maris Cancer Center
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Oddelek za računalništvo
Univerza Edinburgh, Škotska
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Pomembno: Uporabite ukaz man ( % man ), da vidite, kako se na vašem računalniku uporablja ukaz.

povezani članki