Syslogd Linukso kaj Unikso Komando

Sysklogd provizas du sistemajn utilecojn, kiuj provizas subtenon por sistemo de ensalutado kaj kerna mesaĝo. Subteno de interreto kaj uniksaj domajnaj sistemoj ebligas ĉi tiun utilecan pakon subteni kaj lokan kaj malproksiman ensalutadon.

Sistemo-ensalutado estas provizita per versio de syslogd (8) derivita de la stoko BSD-fontoj. Subteno por kerno-ensalutado estas provizata per klogd (8) utileco, kiu permesas ke la kerno-ensalutado estu realigita en aŭtonome aŭ kiel kliento de syslogd.

Syslogd provizas specon de ensalutado, kiun multaj modernaj programoj uzas. Ĉiu ensalutinta mesaĝo enhavas almenaŭ tempo kaj kampo de gastignomo, kutime programo de kampo-kampo, sed tio dependas de kiom fidinda la registra programo.

Dum la syslogdaj fontoj estis tre modifitaj, kelkaj notoj estas en ordo. Antaŭe ekzistis sistema provo certigi, ke syslogd sekvas ĝian defaŭltan, norman BSD-konduton. La dua grava koncepto notinde estas, ke ĉi tiu versio de syslogd interagas travide kun la versio de syslog trovita en la normaj bibliotekoj. Se binara ligo al la normaj komunaj bibliotekoj ne funkcias ĝuste, ni ŝatus ekzemplon de la anomala konduto.

La ĉefa agorda dosiero /etc/syslog.conf aŭ alternativa dosiero, donita per la -f- opcio, estas legata ĉe la komenco. Ajna linioj, kiuj komencas kun la hash marko (`` # '') kaj malplenaj linioj estas ignoritaj. Se eraro okazas dum analizado, la tuta linio estas ignorita.

Sinopsis

syslogd [ -a socket ] [ -d ] [ -f -dosiero-dosiero ] [ -h ] [ -l hostlist ] [ -m intervalo ] [ -n ] [ -p- socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

Opcioj

-a socket

Uzante ĉi tiun argumenton vi povas specifi aldonajn bazojn de tiu syslogdo por aŭskulti. Ĉi tio bezonas, se vi permesos, ke iu demono kuras ene de kroata medio. Vi povas uzi ĝis 19 kromajn bazojn. Se via medio bezonas eĉ pli, vi devas pliigi la simbolon MAXFUNIX ene de la fonta dosiero syslogd.c. Ekzemplo por chroot () daemon estas priskribita de la homoj de OpenBSD ĉe http://www.psionic.com/papers/dns.html.

-d

Ŝaltas debug-reĝimon. Uzante ĉi tion, la demono ne progresos forkon (2) por fiksi sin en la fono, sed kontraŭa al tiu restado en la unua flanko kaj skribi multe dapuŝan informon pri la nuna tty. Vidu la sekcion DEBUGGING por pliaj informoj.

-f- dosierujo

Indiku alternativan agordan dosieron anstataŭ /etc/syslog.conf , kiu estas la defaŭlta.

-h

Defaŭlte syslogd ne sendos mesaĝojn, kiujn ĝi ricevas de izolitaj gastigantoj. Specifante ĉi tiun ŝaltilon sur la komandlinio kaŭzos la protokolon demeti ajnajn remotajn mesaĝojn, kiujn ĝi ricevas por retiriĝi gastigantoj difinitaj.

-l gastigisto

Indiku gastignomon, kiu devus esti ensalutita nur kun ĝia simpla gastignomo kaj ne la fqdn. Multoblaj gastigantoj povas esti specifitaj per la disigilo de kolon (``: '').

-m intervalo

La syslogd- logoj kutime markas markon. La defaŭlta intervalo inter du - MARKO - linioj estas 20 minutoj. Ĉi tio povas esti ŝanĝita per ĉi tiu opcio. Agordi la intervalon al nulo turnas ĝin tute.

-n

Eviti aŭtomata-fono. Ĉi tio bezonas precipe se la syslogd estas komencita kaj kontrolita de init (8).

-p- ino

Vi povas difini alternativan uniksan domon anstataŭ / dev / log .

-r

Ĉi tiu opcio ebligos la facilecon ricevi mesaĝon de la reto per interreta regado kun la syslog-servo (vidu (5)). La defaŭlto estas ne ricevi mesaĝojn de la reto.

Ĉi tiu opcio estas enmetita en la versio 1.3 de la sysklogd-pako. Bonvolu noti, ke la defaŭlta konduto estas kontraŭa al kiel pli malnovaj versioj kondutas, do vi eble devos turni ĉi tion.

-s- registara domajno

Indiku domajnan nomon, kiu devas esti forigita antaŭ ensaluto. Multoblaj domajnoj povas esti specifitaj per la kolonigo (``: '') apartigilo. Bonvolu konsiliĝi, ke neniuj sub-domajnoj povas esti specifitaj, sed nur tutaj domajnoj. Ekzemple, se -s norda.de estas specifita kaj la gastiganta retpoŝtaĵo solvas satu.infodrom.north.de neniu domajno estus tranĉita, vi devos precizigi du domajnojn kiel: -s north.de:infodrom.north.de .

-v

Printa versio kaj eliro.

-x

Malŝaltu nomojn serĉojn ricevinte remotajn mesaĝojn. Ĉi tio evitas flugilojn kiam la nomilo estas kuranta sur la sama maŝino, kiu kuras la sysloganemon.

Signaloj

Syslogd reagas al aro de signaloj. Vi povas facile sendi signalon al syslogd uzante la jenajn:

mortigu -SIGNAL `kat / var / run / syslogd.pid`

Sighup

Ĉi tio lasas syslogd realigi re-inicialigon. Ĉiuj malfermitaj dosieroj estas fermitaj, la agorda dosiero (defaŭlta estas /etc/syslog.conf ) estos reelegata kaj la syslog (3) rekomencas.

SIGTERM

La syslogd mortos.

SIGINT , SIGQUIT

Se la elpurigo estas ebligita, ĉi tiuj estas ignorataj, alie, se ĝi mortos.

SIGUSR1

Ŝaltu elŝpuriĝon / for. Ĉi tiu opcio nur povas esti uzata se syslogd komenciĝas per la -d- debug-opcio.

SIGCHLD

Atendu infanojn, se iuj naskigxis, pro mesaĝoj de muro.

Agordo de dosieraj difinoj

Syslogd uzas iomete malsaman sintakson por ĝia agorda dosiero ol la originalaj BSD-fontoj. Origine ĉiuj mesaĝoj de specifa prioritato kaj pli supre estis senditaj al la protokola dosiero.

Ekzemple, la sekva linio kaŭzis ĉion el la demonoj uzantaj la demonajn instalaĵojn (debug estas la plej malalta prioritato, do ĉiuj pli altaj ankaŭ kongruas) eniri / usr / adm / demonojn :

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

Sub la nova skemo, ĉi tiu konduto restas same. La diferenco estas la aldono de kvar novaj specifiloj, la asterisko ( * ) bildkarto, la ekvacio-signo ( = ), la eksklamo ( ! ), Kaj la minus signo ( - ).

La * specifas, ke ĉiuj mesaĝoj por la specifa facileco devas esti direktitaj al la celloko. Notu, ke ĉi tiu konduto degeneras per specifa nivelo de prioritato. Uzantoj indikis, ke la asteriska notacio estas pli intuicia.

La = ĉartujo estas uzata por restrikti ensalutadon al la specifita prioritklaso. Ĉi tio permesas, ekzemple, enrutado nur elpurigi mesaĝojn al aparta ensalutfonto.

Ekzemple, la sekva linio en syslog.conf direktus elpurigajn mesaĝojn de ĉiuj fontoj al la / usr / adm / debug- dosiero.

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

La ! estas uzata por ekskludi ensalutadon de la specifaj prioritatoj. Ĉi tio influas ĉiujn (!) Eblojn specifi prioritatojn.

Ekzemple, la sekvaj linioj registros ĉiujn mesaĝojn de la retpoŝta retpoŝto krom tiuj kun la prioritato de informoj al la / usr / adm / mail- dosiero. Kaj ĉiuj mesaĝoj de novaĵoj.info (inkluzive) al novaĵoj.crit (ekskludante) estus ensalutintaj al la / usr / adm / nova dosiero.

# Specimeno syslog.conf-mail. *; Poŝto.! = Info / usr / adm / mail news.info; novaĵoj.! Krit / usr / adm / news

Vi povas uzi ĝin intuice kiel escepte specifilo. La menciita lego estas simple renversita. Farante tion, kion vi povas uzi

poŝto.none

poŝto.! *

poŝto!! Debug

forviŝi ĉiun mesaĝon, kiu venas per retpoŝta facileco. Estas multe da ludejo kun ĝi. :-)

La - nur povas esti uzata por prefiji dosiernomon se vi volas preterlasi sinkronigi la dosieron post ĉiu skribo al ĝi.

Ĉi tio povas preni iom da aclimatigo por tiuj individuoj uzitaj al la pura BSD-konduto sed la testantoj indikis, ke ĉi tiu sintakso estas iom pli fleksebla ol la BSD-konduto. Rimarku, ke ĉi tiuj ŝanĝoj ne influas normajn syslog.conf (5) dosierojn. Vi devas specife modifi la agordajn dosierojn por akiri la plibonigitan konduton.

Subteno For Remote Logging

Ĉi tiuj modifoj provizas reton subtenon al la syslogd-instalaĵo. Reta subteno signifas, ke mesaĝoj povas esti senditaj de unu nodo, kuri syslogd al alia nodo kuranta syslogd kie ili fakte ensalutos en disko-dosiero.

Por ebligi ĉi tion vi devas specifi la -r- opcion en la komandlinio. La impliciteco estas, ke syslogd ne aŭskultos la reton.

La strategio devas esti syslogd-aŭskulti sur unikso-domajno de ŝnuroj por loke generitaj ensalutaj mesaĝoj. Ĉi tiu konduto permesos syslogd por interagi kun la syslogo trovita en la norma C-biblioteko. Samtempe syslogd aŭskultas la norman syslog-havenon por mesaĝoj senditaj de aliaj gastigantoj. Por ke ĉi tiu funkciu ĝuste la servoj (5) dosieroj (kutime trovitaj en / ktp ) devas havi la sekvan eniron:

syslog 514 / udp

Se ĉi tiu eniro mankas syslogd nek povas ricevi remotajn mesaĝojn nek sendi ilin, ĉar la UDP-haveno ne povas esti malfermita. Anstataŭe, syslogd mortos tuj, eksplodante eraran mesaĝon.

Por ke la mesaĝoj estu senditaj al alia gastiganto anstataŭigu la normalan dosieron en la syslog.conf- dosiero kun la nomo de la gastiganto, al kiu la mesaĝoj devas esti senditaj antaŭ ol @.

Ekzemple, por antaŭenigi Tiujn mesaĝojn al izolita gastiganto per la sekva eniro de syslog.conf :

# Specimeno syslogd-agorda dosiero al #mesaĝoj al remota gastiganto antaŭen ĉiuj. *. * @hostname

Por antaŭenigi ĉiujn kernajn mesaĝojn al izolita gastigilo, la agorda dosiero estus la sekva:

# Ekzemple agorda dosiero por antaŭenigi ĉiujn kernajn #mesaĝojn al fora gastiganto. kerno. * @hostname

Se la malproksima gastigomo ne povas esti solvita ĉe komenco, ĉar la nomo-servilo eble ne atingeblas (ĝi povas esti komencita post syslogd) vi ne devas zorgi. Syslogd replikos solvi la nomon dek fojojn kaj poste plendi. Alia eblo por eviti ĉi tion estas meti la gastignomon en / etc / hosts .

Kun normala syslogd s vi ricevos syslog-masxojn, se vi sendos mesaĝojn ricevitaj de izolita gastiganto al la sama gastiganto (aŭ pli komplika al tria gastiganto, kiu sendas ĝin al la unua, kaj tiel plu). En mia domajno (Infodrom Oldenburg) ni hazarde akiris unu kaj niaj diskoj plenigis per la sama sola mesaĝo. :-(

Por eviti ĉi tion en pliaj tempoj, neniu mesaĝoj ricevitaj de izolita gastiganto jam estas senditaj al alia (aŭ la sama) malproksima gastiganto. Se estas scenaroj, kie ĉi tio ne havas senton, bonvolu faligi min (Joey) linio.

Se la malproksima gastiganto situas en la sama domajno, kiel la gastiganto, syslogd funkcias, nur la simpla gastigomo estos ensalutinta anstataŭ la tuta fqdn.

En loka reto vi povas provizi centran log-servilon por havi la tutan gravan informon konservitan sur unu maŝino. Se la reto konsistas el malsamaj domajnoj, vi ne devas plendi pri ensaluti plene kvalifikitajn nomojn anstataŭ simplaj gastignomoj. Vi eble volas uzi la strion-domajnan funkcion -s de ĉi tiu servilo. Vi povas diri al la syslogd por forigi plurajn regnojn krom la en kiu la servilo situas kaj nur ensaluti simplan gastigajn nomojn.

Uzante la -l- opcion ekzistas ankaŭ ebleco difini ununurajn gastigantojn kiel lokajn maŝinojn. Ĉi tio ankaŭ rezultigas ensaluti nur siajn simplajn gastignomojn kaj ne la fqdns.

La UDP-ŝnuro uzata por antaŭenigi mesaĝojn al izolitaj gastigantoj aŭ ricevi mesaĝojn de ili nur malfermiĝas kiam ĝi bezonas. En liberigoj antaŭ 1.3-23 ĝi estis malfermita ĉiufoje sed ne malfermita por legado aŭ retransvido respektive.

Eligo al nomitaj tubaroj (FIFO)

Ĉi tiu versio de syslogd havas subtenon por ensaluti eligo al nomitaj tubaroj (fifos). Fina aŭ nomata tubaro povas esti uzata kiel celloko por ensalutaj mesaĝoj per preta simbolo (`` | '') al la nomo de la dosiero. Ĉi tio estas oportuna por elpurigado. Notu, ke la fifo devas esti kreita kun la komando mkfifo antaŭ ol syslogd komenciĝas.

La jenaj agordaj dosieroj forpuŝas mesaĝojn de la kerno al fifo:

# Specimeno agordo por trairi kernel-elpurigadon n-mesaĝojn NUR al / usr / adm / debug kiu estas nomata tubaro. kern. = debug | / usr / adm / debug

Instaladoj

Estas verŝajne unu grava konsidero kiam vi instalas ĉi tiun version de syslogd. Ĉi tiu versio de syslogd dependas de konvena formatado de mesaĝoj per la syslog-funkcio. La funkcio de la funkcio de syslog en la bibliotekoj dividitaj ŝanĝis ie en la regiono de libc.so.4. [2-4] .n. La specifa ŝanĝo estis nuligi la mesaĝon antaŭ ol ĝin transdoni al la / dev / log- konekto. La funkcia funkcio de ĉi tiu versio de syslogd dependas de nuligo de la mesaĝo.

Ĉi tiu problemo tipe manifestiĝos se malnovaj statike ligitaj binaroj estas uzataj sur la sistemo. Binarioj uzante malnovajn versiojn de la syslog-funkcio kaŭzos malplenajn liniojn registritajn sekvitajn per la mesaĝo kun la unua karaktero en la mesaĝo forigita. Restarigi ĉi tiujn duonojn al novaj versioj de la dividitaj bibliotekoj korektos ĉi tiun problemon.

Ambaŭ la syslogd (8) kaj la klogd (8) povas esti kuritaj de init (8) aŭ komenciĝis kiel parto de la rc. * Sekvenco. Se ĝi komenciĝas de la komenco, la opcio -n devas esti agordita, alie vi ricevos tunojn da syslog-demonoj komencitaj. Ĉi tio estas ĉar init (8) dependas de la proceza ID.

Sekurecaj Minacoj

Ekzistas la ebleco, ke la syslogd-demono estu uzata kiel kondukilo por rifuzo de servo. Dankon iru al John Morrison (jmorriso@rflab.ee.ubc.ca) por atentigi min al ĉi tiu potencialo. Malgranda programo (mer) povus tre facile inundi la syslogd-demonon kun syslog-mesaĝoj, kiuj rezultigas la registrajn dosierojn konsumantaj la tutan restantan spacon en la dosieristemo . Aktivigi ensalutadon super la inetaj domajnoj estas kompreneble elmontri sistemon al riskoj ekster programoj aŭ individuoj en la loka maŝino.

Estas kelkaj metodoj protekti maŝinon:

  1. Implementu kernel-fajrujon por limigi, kiujn gastigantoj aŭ retoj havas aliron al la 514 / UDP-konekto.
  2. Elŝutado povas esti direktita al izolita aŭ ne-radika dosieristemo, kiu, se plenigita, ne difektos la maŝinon.
  3. La sistemo de dosieroj ext2 povas esti uzata, kiu povas esti agordita por limigi certan procenton de dosieristemo por uzado per radiko nur. NOTA, ke ĉi tio postulos syslogd por esti kurita kiel ne-radika procezo. ALSO Rimarku, ke tio malhelpos uzadon de malproksima ensaluto, ĉar syslogd ne povos ligi al la 514 / UDP-konekto.
  4. Malŝalti inetajn domajnajn bazojn limigos riskon al la loka maŝino.
  5. Uzi paŝon 4 kaj se la problemo daŭras kaj ne malĉefa al maldolĉa programo / demono ricevas 3-metron (aprox. 1 metro) longo de kukaj vergoj * kaj havas babilejon kun la uzanto en demando. Sucker rod def. --- 3/4, 7/8 aŭ 1in. rigida ŝtalo, virseksa fadeno sur ĉiu fino. Primara uzo en la petrola industrio en Okcidenta Norda Dakoto kaj aliaj lokoj por pumpi 'suĉi' oleon de oleo-putoj. Malĉefaj uzoj estas por konstruado de brutobredajxoj kaj por trakti la eventualan malvarman aŭ beligeran individuon.

Depuŝo

Kiam elpurigado estas turnita sur uzanta -d- opcion, tiam syslogd estos tre verŝajne skribante multe de tio, kion ĝi faras sur stdout. Ĉiufoje kiam la agorda dosiero estas ripetita kaj re-analizita, vi vidos tabulon, kiu respondas al la interna datumstrukturo. Ĉi tiu tabulo konsistas el kvar kampoj:

nombro

Ĉi tiu kampo enhavas serion-numeron komencantan per nulo. Ĉi tiu nombro reprezentas la pozicion en la interna datumstrukturo (te la tabelo). Se unu nombro restas, tiam eble eraro en la responda linio en /etc/syslog.conf .

ŝablono

Ĉi tiu kampo estas malfacila kaj precize reprezentas la internan strukturon. Ĉiu kolumno staras por facileco (referu al syslog (3)). Kiel vi povas vidi, ankoraŭ ekzistas kelkaj instalaĵoj senpagaj por iama uzo, nur la plej maldekstre uzataj. Ĉiu kampo en kolumno reprezentas la prioritatojn (referu al syslog (3)).

ago

Ĉi tiu kampo priskribas la apartan agon, kiu okazas kiam ajn ricevas mesaĝon, kiu kongruas kun la ŝablono. Referu la manlibron de syslog.conf (5) por ĉiuj eblaj agoj.

argumentoj

Ĉi tiu kampo montras pliajn argumentojn al la agoj en la lasta kampo. Por dosiero-ensaluto ĉi tiu estas la dosiernomo por la dosierujo; Por uzanto-ensaluto ĉi tio estas listo de uzantoj; Por remota ensaluto ĉi tiu estas la gastigna nomo de la maŝino por ensaluti; Por konzolo-ensaluto ĉi tiu estas la uzita konzolo; Por tty-logging ĉi tiu estas la specifita tty; muro ne havas pliajn argumentojn.

Vidu ankaŭ

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

Kunlaborantoj

Syslogd estas prenita el BSD-fontoj, Greg Wettstein (greg@wind.enjellic.com) plenumis la havenon al Linukso , Martin Schulze (joey@linux.de) riparis iujn erarojn kaj aldonis plurajn novajn funkciojn. Klogd estis origine skribita fare de Steve Lord (lord@cray.com), Greg Wettstein faris gravajn pliboniĝojn.

D-ro. Greg Wettstein
Enjellicaj Sistemoj-Disvolviĝo

Onkologio-Esplorado-Komputila Instalaĵo
Kancero de Roger Maris
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Fako de Komputika Scienco
Edimburgo Universitato, Skotlando
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldemburgo
joey@linux.de

Grava: Uzu la komandon ( % viro ) por vidi kiel komando estas uzata en via komputilo.

Rilataj artikoloj