Syslogd Linux en Unix Command

Sysklogd jout twa systeemprogramma's dy't stipe foar systeemprotokolling en kernel-berjocht-trapping leverje. Stipe fan sawol ynternet- en unix- domeinsetten befettet dit pakket foar it brûken fan lokale en ferwidering.

Systemlogging wurdt fersoarge troch in ferzje fan syslogd (8) dy't ôflaat fan de boarch BSD-boarnen. Stipe foar kernel-logging wurdt fersoarge troch it klogd (8) -jinnebelied wêrmei't jo kernel- loggening kinne wurde yn sawol as standalone-modus as as client fan syslogd.

Syslogd jout in soarte fan logging dat in soad moderne programma's brûke. Eltse oanmeldmelding befettet op syn minst in tiid en in hostnammefjild, normaal in programma-nammeromte, mar dat hinget ôf fan hoe fertrouwen it loggingprogramma is.

Wylst de syslogd boarnen hurd feroaren binne in pear notysjes yn 'e oarder. Earst wie der in systematysk besykjen om te sykjen dat syslogd syn standert, standert BSD-gedrach folget. It twadde wichtige konsept om te notizen is dat dizze ferzje fan syslogd transparant ynterakket mei de ferzje fan syslog fûn yn 'e standertbiblioteken. As in binêre ferbûn mei de standert dielde biblioteken net goed wurket, wolle wy in foarbyld fan it anomalous gedrach.

De belangrykste konfiguraasje triem /etc/syslog.conf of in alternatyf triem, opjûn mei de -f- opsje, wurdt lêzen by it opstarten. Alle linen dy't begjinne mei it Hashmark (`` # '') en lege rigels wurde negearre. As der in flater is by it analysearjen fan de hiele line wurdt negearre.

Synopsis

syslogd [ -s socket ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

Opsjes

-a socket

Mei dit argumint kinne jo oanfoljende sockets opjaan fan dit syslogd hawwe te harkjen. Dit is nedich as jo in oantal daemon útfiere litte yn in kwroot () omjouwing. Jo kinne oant 19 oanfoljende sockets brûke. As jo ​​omjouwing noch mear nedich is, moatte jo it symboal MAXFUNIX yn 'e syslogd.c-boarne-bestân ferheegje. In foarbyld foar in chroot () daemon wurdt beskreaun troch de minsken fan OpenBSD op http://www.psionic.com/papers/dns.html.

-d

Ferhellet de debugmodus. Mei dizze gebrûk sil de daemon net in gabel sette (2) om him yn 'e eftergrûn te setten, mar tsjinoer dy bleau yn' e foargrûn en skriuwt in protte debugynformaasje oer de aktuele tty. Sjoch it rubryk DEBUGGING foar mear ynformaasje.

-f config triem

Jou in alternatyf konfiguraasjetriem ynstelle fan /etc/syslog.conf , dy't de standert is.

-h

Standert sil syslogd gjin berjochten ferwurkje dy't it ûntfangen fan remote hosts. It oanwizen fan dizze skeakel op 'e kommandorigel feroarsake it log-daemon om alle ûntjaan berjochten te foardracht dat it ûntfietet om foetsjinners te ferfarskjen dy' t definiearre binne.

-l hostlist

Meitsje in hostnamme dy't allinich mei jo ienfâldige hostnamme protokolje moat en net de fqdn. Multiple hosts kinne oanjûn wurde mei de kolon (``: '') skiedingstafel.

-m ynterval

De syslogd jout in markearre tiidstempel regelmjittich. De standertynterval tusken twa - MARK - rigels is 20 minuten. Dit kin feroare wurde mei dizze opsje. It ynstellen fan it ynterval nei nul draait it folslein út.

-n

Avoiding auto-eftergrûn. Dit is benammen nedich as it syslogd begon en kontrolearret troch init (8).

-p socket

Jo kinne in alternatyf unix domein socket oantsjutte ynstee fan / dev / log .

-r

Dizze opsje sil de ynstallaasje ynskeakelje om in berjocht fan it netwurk te krijen mei in ynternet domein mei de syslog-tsjinst (sjoch (5)). De standert is om gjin berjochten fan it netwurk te ûntfangen.

Dizze opsje is ynfierd yn ferzje 1.3 fan it pakket sysklogd. Tink derom dat it standert gedrach it tsjinoerstelde is fan hoe âldere ferzjes behelje, dus jo moatte dit wêze.

-s domainlist

Jou in domeinnamme oan dat jo foardat jo loggenis ôfbrekke moatte. Meardere domeinen kinne oanjûn wurde mei de kolon (``: '') skiedingstafel. Tink derom dat gjin sub-domeinen opjûn wurde mar allinich domeinen. Bygelyks as -s north.de is spesifisearre en de host-logging beslút op satu.infodrom.north.de gjin domein te knipen, jo moatte twa domeinen hawwe lykas: -s north.de : infodrom.north.de .

-v

Print ferzje en ôfslach.

-x

Skeakeljen fan nammen opsjes by it ûntfangen fan remote berjochten. Dit beweart deadlocks as de nammeromte rint op deselde masine dy't de syslog-daemon útfiert.

Sinjalen

Syslogd reagearret nei in set fan sinjalen. Jo kinne in sinjaal log in syslogd brûke troch de folgjende te brûken:

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

Sighup

Dit liedt syslogd in reynitialisaasje út. Alle iepenje triemmen binne sluten, de konfiguraasjetriem (standert is /etc/syslog.conf ) sil ferwidere wurde en de syslog (3) -ynstellings wurdt opnij begjinne.

SIGTERM

De syslogd sil stjerre.

SIGINT , SIGQUIT

As it debuggen ynskeakele is, wurde dizze ignorearre, oars sil syslogd stjerre.

SIGUSR1

Wikselje op / út. Dizze opsje kin allinich brûkt wurde as syslogd begjint mei de -d debug-opsje.

SIGCHLD

Wacht foar bern as guon binne berne, fanwegen wall'ing berjochten.

Konfiguraasjetriem Syntaksferskillen

Syslogd brûkt in wat ferskillende syntaks foar syn konfiguraasjetriem as de orizjinele BSD-boarnen. Oarspronklik waarden alle berjochten fan in spesifike prioriteit en boppesteande nei de logfile trochstjoerd.

Bygelyks, de folgjende line laket alle útfier fan daemon mei de daemonynstellingen (debug is de leechste prioriteit, dus alle hegere sil ek passe) om yn / usr / adm / daemons te gean :

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

Under it nije skeakel bliuwt dit gedrach itselde. It ferskil is it tafoegjen fan fjouwer nije specifiers, de asterisk ( * ) wildcard, it lykweardich teken ( = ), it útlûkenmark ( ! ), En it minus teken ( - ).

De * befettet dat alle berjochten foar de oantsjutte foarsjenning wurde rjochte op it bestimming. Taljochting: dit gedrach wurdt ferwurke mei it bepalen fan in prioriteit nivo fan debug. Brûkers hawwe oanjûn dat de asterisknota mear yntuïte is.

De = wildcard wurdt brûkt om de loggening te beheinen ta de oantsjutte prioriteit klasse. Dit liedt bygelyks allinich debugberjochten oan in spesifike loggingboarne.

Bygelyks, de folgjende line yn syslog.conf soene debugberjochten fan alle boarnen rjochtsje nei de triem / usr / adm / debug .

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

De ! wurdt brûkt om it oanmelden fan 'e oantsjutte prioriteiten út te sluten. Dit beynfloedet alle (!) Mooglikheden foar spesifisearjen fan prioriteiten.

Bygelyks, de neikommende linen soenen alle berjochten fan it oplinypost as útskreaun wurde mei de prioriteit-ynfo yn it / usr / adm / mail- bestân. En alle berjochten fan news.info (ynklusyf) nei news.crit (útsluten) wurde oanmeld yn it / usr / adm / news file.

# Sample syslog.conf post. *; Mail.! = Info / usr / adm / mail news.info; nijs.! Crit / usr / adm / news

Jo kinne it yntuktyf brûke as in útsûnderingssykterm. De hjirboppe neamde ynterpretaasje is gewoan ynvertjoerd. Doch dat jo brûke kinne

mail.none

of

post.!*

of

mail.! debug

om elke berjocht oer te skodzjen dy't komt mei in postfakânsje. Der is in protte romte om te spyljen. :-)

De - kin allinich brûkt wurde foar foarkar in filename as jo de triem trochlizze wolle nei elts skriuwe.

Dit kin wat eklimatisearring nimme foar dy persoanen dy't brûkt wurde foar it pure BSD-gedrach, mar testers hawwe oanjûn dat dizze syntaksis wat flugger is as it BSD-gedrach. Tink derom dat dizze wizigingen net ynfloed op standert syslog.conf (5) bestannen. Jo moatte de konfiguraasje bestannen spesifyk ferbetterje om it fersterke gedrach te krijen.

Support for Remote Logging

Dizze modifikaasjes biede netwurkstipe oan de syslogd-ynstallaasje. Netwurk-ûndersteuning betsjut dat berjochten trochstjoerd wurde kinne fan ien node syslogd útfiere nei in oare node syslogd, wêrby't se werklik ynlogd wurde yn in disk-bestân.

Om dit te aktivearjen moatte jo de -r- opsje ynstelle op 'e kommandorigel. It standert gedrach is dat syslogd net nei it netwurk harket.

De strategy is om syslogd te harkjen op in unix domein socket foar lokaal generearre logberjochten. Dit gedrach sil syslogd ynskeakelje mei it syslog dat fûn yn 'e standert C bibleteek. Tagelytsi syslogd harket op de standert syslogpoarte foar berjochten dy't troch oare hosts trochstjoerd binne. Om dit wurk korrekt te meitsjen, moatte de tsjinsten (5) bestannen (typysk fûn yn / etc ) hawwe de folgjende yngong:

syslog 514 / udp

As dizze yngong gjin syslogd fynt , kin gjin ferfangende berjochten ûntfange of noch stjoere, om't de UDP-haven net iepene wurde kin. Ynstee dêrfan sil syslogd daliks stjerre, in flater boadskip útbrekke.

Om berjochten te stjoeren nei in oare host ferfange de gewoane triemline yn 'e syslog.conf triem mei de namme fan de host wêrtroch't de berjochten ferstjoerd wurde mei in @.

Bygelyks om ALS- berjochten nei in remote host te foarkommen mei de folgjende syslog.conf- yngong:

# Syslogd foar konfiguraasjebefol foar syslogd nei alle berjochten nei in host op ôfstân foar alle foardielen. *. * @hostname

Om alle kernel- berjochten nei in remote host te foarkommen, sil de konfiguraasjetriem wêze:

Konfiguraasjetriem foar alle foarbylden foar sesje om alle kernel # berjochten nei in remote host te foarkommen. kern. * @hostname

As de ôfstjoerde hostnamme net opliede kin by it opstarten, om't de namme-server miskien net tagonklik is (it kin nei syslogd begon wêze) jo moatte net soargen meitsje. Syslogd sil werhelle wurde om de namme tsien kear op te lossen en klagje dan. In oare mooglikheid om dit te foarkommen is de hostnamme yn / etc / hosts te pleatsen.

Mei normale syslogd sille jo syslog-loops besykje as jo ferstjoeren berjochten ferstjoere, dy't ûntfongen binne fan in host op ôfstân nei deselde host (of mear komplisearre foar in tredde host dy't it werom nei it earste stjoert, en sa). Yn myn domein (Infodrom Oldenburg) krigen wy ûngelok ien en ús disken waarden mei deselde inkeld berjocht folbrocht. :-(

Om dit te foarkommen yn fierdere tiden wurde gjin berjochten ûntfangen dy't fanút in ferwidering host ûntfangen binne nei in oare (of deselde) host opstjoerd. As der skaartsjes binne wêr't dit gjin sin betsjutt, nim dan my (Joey) in line yn.

As de host op ôfstân is yn deselde domein as de host, sil syslogd leare , allinich de ienfâldige hostnamme sil ynlogd wêze ynstee fan de fqdn.

Yn in lokale netwurk kinne jo in sintrale logtsjinner leverje om alle wichtige ynformaasje op ien masine te hâlden. As it netwurk bestiet út ferskillende domeinen, moatte jo net klagje oer it loggen fan folsleine kwalifisearre nammen yn stee fan ienfâldige hostnammen. Jo kinne de strip-domein-funksje fan dizze tsjinner brûke. Jo kinne de syslogd fertelle om ferskate domeinen te ûnderskieden dan de iene de tsjinner is yn en allinich lêzen ienfâldige hostnammen.

Mei de -l- opsje is der ek in mooglikheid om ienige hosts as lokale masines te bepalen. Dit docht ek resultaten yn te logjen allinich har ienfâldige hostnammen en net de fqdns.

De UDP-socket brûkt om berjochten nei ferwiderjende hosts te foarkommen of berjochten te ûntfangen, wurdt allinich iepene as it nedich is. Yn ferwizings foarôfgeand oan 1.3-23 waard it elke kear iepene, mar net iepene foar it lêzen of trochjaan.

Utfier nei nammenpipen (FIFO's)

Dizze ferzje fan syslogd hat stipe foar it loggenútfier nei tiden neamd (fyos). In fyfo of neamd pipe kin brûkt wurde as bestimming foar log-berjochten troch it foarkommen fan in pipy-symboal (`` | '') nei de namme fan it bestân. Dit is handich foar debuggen. Taljochting: it fyfo moat mei it mkfifo kommando makke wurde foardat syslogd begon is.

De folgjende konfiguraasjetriem rjochtet debugberjochten fan 'e kearn nei in fyfo:

# Sample-konfiguraasje om kernel-debuggen # berjochten allinich te rinnen / usr / adm / debug dat is in # neamd pylk. kern. = debug | / usr / adm / debug

Ynstellingsbelangen

Der is wierskynlik in wichtige berjocht as jo dizze ferzje fan syslogd ynstallearje. Dizze ferzje fan syslogd is ôfhinklik fan it goede formaat fan berjochten troch de syslogfunksje. It funksjonearjen fan de syslogfunksje yn 'e dielde biblioteken feroare earne yn' e regio fan libc.so.4 [2-4] .n. De spesifike wiziging wie om it berjocht te nuljen foardat it it trochstjoeren nei de / dev / log socket. Feilige funksjonearjen fan dizze ferzje fan syslogd is ôfhinklik fan net-ôfsluting fan it berjocht.

Dit probleem makket it gewoan as jo âlde statyske keppele binäringen brûke op it systeem. Binêre brûkers dy't âlde ferzjes fan 'e syslog-funksje brûke, liede lege rigels dy't oanmeld wurde troch it berjocht mei it earste karakter yn it berjocht fuorthelle. Ferbining dizze binaries nei nije ferzjes fan 'e dielde biblioteken sil dit probleem beheare.

Sawol de syslogd (8) en de klogd (8) kinne fanút init (8) rinne of begjinne as in part fan de rc * *. As it begon is fan 'e opsje fan' e opsje -n moat set wurde, oars kinne jo tonnen syslog-daemon starte. Dit is omdat init (8) hinget fan 'e proseduere-ID.

Security Threats

Der is it potinsjeel foar de syslogd-daemon dy't brûkt wurdt as in conduit foar in ôfwiking fan tsjinsten. Tankje gean nei John Morrison (jmorriso@rflab.ee.ubc.ca) om my op dit potinsjeel te warskjen. In skewielprogramma (mer) koe it syslogd-daemon tige sykhelle mei syslog-berjochten dy't resultaat yn 'e log-bestannen dy't alle oare romte op it triemsysteem brûke . It aktivearjen fan loggeneraasje oer de ynet-domein-sockets sil fansels in systeem om risiko's te ûntwikkeljen bûten programma 's of persoanen op' e lokale masine.

Der binne in oantal metoaden foar it beskermjen fan in masine:

  1. Kearn-firewalling útfiere om te beheinen hokker hosts of netwurken tagong hawwe ta de 514 / UDP-socket.
  2. Logging kin regele wurde oan in isolearre of net-root-triemsysteem, dy't, as folslein, de masine net beweecht.
  3. It ext2-bestânsysteem kin brûkt wurde om te konfigurearjen om in bepaalde persintaazje fan in bestânsysteem te beheinen ta allinich foar root. Tink derom dat dizze syslogd nedich is as in net-root-proses. Tink derom dat dizze gebrûk foarkomt dat jo gebrûk meitsje fan fernielde logging omdat syslogd net biede kin oan de 514 / UDP-socket te binen.
  4. It ynstellen fan inet-domein-sockets sil de risiko beheine oan de lokale masine.
  5. Gebrûk fan stap 4 en as it probleem oanhâldt en net sekundêr is foar in skampeprogramma / daemon in 3.5 ft (sawat 1 meter) lingte fan sûkerstjer * en hawwe in petear mei de brûker yn petear. Sûker stipe def. --- 3/4, 7/8 of 1in. hardened stielstiennen, manlju oan elke ein. Primêre gebrûk yn 'e oaleksektor yn West-Noard-Dakota en oare lokaasjes om' oankommen 'oalje fan oalje-boarnen. Wenjende gebrûksfoarmen binne foar de bou fan fûgelsfeesten en foar it behanneljen fan 't yndividueel opnij ornearre.

Debugging

As it debuggen útskeakelje mei help fan d-op, dan sil syslogd tige verbose wurde troch it skriuwen fan in protte fan wat it op stdout tut. Wannear't de konfiguraasjetriem ferwidere is en opnij fersterke sjogge jo in tabulair, dy't oerienkomt mei de ynterne datastruktuer. Dizze tabulêre bestiet út fjouwer fjilden:

nûmer

Dit fjild befettet in searial nûmer dat begjint mei nul. Dit nûmer jout de posysje yn 'e ynterne datastruktuer (dat is de array). As ien getal is, dan kin in flater wêze yn 'e oerienkommende line yn /etc/syslog.conf .

patroan

Dit fjild is skriklik en fertsjintwurdiget de ynterne struktuer. Eltse kolom stiet foar in ynstallaasje (ferwize nei syslog (3)). As jo ​​sjogge, binne der noch guon foarsjenningen dy't fergees binne foar eardere gebrûk, mar allinich de links wurde brûkt. Alle fjilden yn in kolom fertsjintwurdige de prioriteiten (ferwize nei syslog (3)).

aksje

Dit fjild beskriuwt de spesifike aksje dy't plakfynt wannear in berjocht ûntfongen is dat oerienkomt mei it patroan. Gean nei de syslog.conf (5) manpage foar alle mooglike aksjes.

arguminten

Dit fjild lit ekstra arguminten sjen oan de aksjes yn it lêste fjild. Foar triem-logjen is dit de triemnamme foar it lochtriem; foar brûker-logging Dit is in list mei brûkers; Foar ferwiderjende logboek dit is de hostnamme fan 'e masine om te loggen; Foar konsole-logging dit is de gebrûklike konsole; foar tty-logging dit is de spesifisearre tty; muorre hat gjin oanfoljende arguminten.

Sjoch ek

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

Collaborators

Syslogd is basearre op BSD-boarnen, Greg Wettstein (greg@wind.enjellic.com) hat de poarte nei Linux útfierd , Martin Schulze (joey@linux.de) befette wat bugs en fereide ferskate nije funksjes. Klogd waard oarspronklik skreaun troch Steve Lord (lord@cray.com), Greg Wettstein makke grutte ferbetterings.

Dr. Greg Wettstein
Enjellysk systeemûntwikkeling

Onkologyske ûndersyksdielingsferkaveling
Roger Maris Cancer Center
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Department of Computer Science
Edinburgh University, Skotlân
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Wichtich: Brûk de manbehearder ( % man ) om te sjen hoe't in kommando brûkt wurdt op jo bepaalde komputer.

Related Articles