Sysklogd teikia dvi sistemos komunalines paslaugas, kurios teikia paramą sistemos registravimui ir branduolio pranešimui. Pagalba tiek interneto, tiek unix domenų lizdams leidžia šiam įrankių paketui palaikyti tiek vietinę, tiek nuotolinę prieigą.
Sistemos registravimas pateikiamas naudojantsyslogd(8), gautas iš išteklių BSD šaltinių. Parama branduolių kirtimui teikiamaKlogd(8) įrankis, kuris leidžia branduolio kirtavimą atlikti atskirai arba kaip syslogd klientą.
Syslogd yra tam tikra rūšis, kurią naudoja daugelis šiuolaikinių programų. Kiekviena prisijungta žinutė turi bent jau laiką ir vardą prieglobos srityje, paprastai taip pat ir programos pavadinimo lauką, tačiau tai priklauso nuo to, kaip patikima žurnalo programa.
Kolsyslogd šaltiniai buvo labai pakeista pora pastabų yra tvarkinga. Visų pirma buvo sistemingai bandoma užtikrinti, kad syslogd seka jo numatytąją, standartinę BSD elgseną. Antroji svarbi sąvoka yra tai, kad ši "syslogd" versija skaidriai sąveikauja su standartinių bibliotekų rastos sistemos versijos versija. Jei dvejetainis ryšys, susijęs su standartinėmis bendrinamomis bibliotekomis, tinkamai neveikia, norėtume pateikti anomalinio elgesio pavyzdį.
Pagrindinis konfigūracijos failas /etc/syslog.conf arba alternatyvi byla, pateikta kartu su-f parinktis yra skaitoma paleidžiant. Visos eilutės, kurios prasideda ramybės ženklu (`` # '') ir tuščiomis eilutėmis, ignoruojama. Jei per analizę atsiranda klaida, visa eilutė ignoruojama.
Anotacija
syslogd -a lizdas -d -f konfigūracijos failas -h -l Hostlist -m intervalas -n -p lizdas -r -s domenų sąrašas -v -x
Galimybės
-a lizdas
Naudodamiesi šiuo argumentu galite nurodyti papildomus lizdus iš tosyslogd turi klausytis. Tai reikalinga, jei ketinate paleisti kai kuriuos daemonius chroot () aplinka. Galite naudoti iki 19 papildomų lizdų. Jei jūsų aplinkai reikia dar daugiau, turite padidinti simbolįMAXFUNIX per syslogd.c šaltinio failą. "Chroot ()" pavyzdys pavyzdys aprašytas žmonių iš "OpenBSD" adresu http://www.psionic.com/papers/dns.html.
-d
Įjungia derinimo režimą. Naudojant šį procesą, daina nebus paleistašakutė(2), kad nustatytumėte save fone, bet priešingai, kad liktumėte į priekinį planą ir rašykite daugelį debuginės informacijos apie dabartinį tty. Norėdami gauti daugiau informacijos, žr. Skiltyje DEBUGGING.
-f konfigūracijos failas
Nurodykite alternatyvų konfigūracijos failą, o ne /etc/syslog.conf , kuris yra numatytasis.
-h
Pagal numatytuosius nustatymus syslogd nenaudos pranešimų, kuriuos jis gauna iš nuotolinių kompiuterių. Nurodžius šį jungiklį komandinėje eilutėje, žurnalo domenas perduos bet kokius nuotolinius pranešimus, kuriuos jis gauna perduodant nustatytus svetaines.
-l Hostlist
Nurodykite prieglobos pavadinimą, kuris turėtų būti įregistruotas tik jo paprastuoju kompiuterio pavadinimu, o ne fqdn. Keli kompiuteriai gali būti nurodyti taikant dvitaškį (``: '') separator.
-m intervalas
Thesyslogd reguliariai registruoja žymos laiko žymę. Numatytasis intervalas tarp dviejų -- ŽENKLAS -- linijos yra 20 minučių. Tai galima pakeisti naudojant šią parinktį. Nustatymas intervalas iki nulio visiškai išjungia.
-n
Venkite automatinio fono kūrimo. Tai reikalinga, ypač jeisyslogd pradeda ir kontroliuojaInit(8).
-p lizdas
Galite nurodyti alternatyvų unix domeno lizdą, o ne / dev / log .
-r
Ši parinktis leis įrenginiui gauti pranešimą iš tinklo naudojant interneto domeno lizdą su syslog paslauga (žr. (5)). Numatyta, kad negausite jokių pranešimų iš tinklo.
Ši parinktis pateikiama "sysklogd" paketo 1.3 versijoje. Atkreipkite dėmesį, kad numatytasis elgesys yra priešinga tam, kaip elgiasi senesnės versijos, todėl gali tekti tai įjungti.
-s domenų sąrašas
Nurodykite domeno vardą, kurį prieš registruodami reikia pašalinti. Keli domenai gali būti nurodyti naudojant dvitaškį (``: '') separator. Atkreipkite dėmesį, kad negalima nurodyti jokių subdomenų, bet tik visus domenus. Pavyzdžiui, jei-s north.de yra nurodytas ir prisijungimo priegloba sprendžiama kaip satuzinfodrom.north.de nė vienas domenas nebūtų iškirptas, turėsite nurodyti du domenus:-s north.de:infodrom.north.de.
-v
Spausdinti versiją ir išeiti.
-x
Neleisti vardų paieškų priimant nuotolinius pranešimus. Taip išvengiama aklavietės, kai vardų serveris veikia tame pačiame kompiuteryje, kuriame veikia syslog demonas.
Signalai
Syslogd reaguoja į signalų rinkinį. Galite lengvai siųsti signaląsyslogd naudodamiesi šiais duomenimis:
kill-SIGNAL `cat / var / run / syslogd.pid '
Sighup
Tai leidžiasyslogd atlikite iš naujo inicijuoti. Visi atidaryti failai yra uždaryti, konfigūracijos failas (numatytasis yra /etc/syslog.conf ) bus perskaityti irsyslog(3) įrenginys vėl paleistas.
SIGTERM
Thesyslogd mirs.
SIGINT, SIGQUIT
Jei derinimas yra įjungtas, jie ignoruojami, kitaipsyslogd mirs.
SIGUSR1
Perjungti derinimo įjungimą / išjungimą. Ši parinktis gali būti naudojama tik jeisyslogd prasideda su-d derinimo parinktis.
SIGCHLD
Palaukite vaiko, jei kai kurie buvo gimę dėl sienų pranešimų.
Konfigūracijos failo sintaksės skirtumai
Syslogd savo konfigūracijos failui naudoja šiek tiek kitokį sintaksę nei originalūs BSD šaltiniai. Iš pradžių visi konkretaus prioriteto ir aukštesniojo lygio pranešimai buvo perkelti į žurnalo failą.
Pavyzdžiui, ši eilutė sukėlė VISŲ išėjimų iš "daemonų" naudodami "daemon" įrenginius (derinimas yra mažiausias prioritetas, taigi kiekvienas didesnis taip pat atitiks), norint pereiti į / usr / adm / daemons :
# Sample syslog.conf daemon.debug / usr / adm / daemons
Pagal naują schemą šis elgesys išlieka tas pats. Skirtumas yra keturių naujų specifikacijų pridėjimas, žvaigždutė (*) pakaitos simbolis, lygties ženklas (=), šauktukas (!) ir minuso ženklas (-).
The* nurodo, kad visi pranešimai apie nurodytą objektą turi būti nukreipti į paskirties vietą. Atkreipkite dėmesį, kad šis elgesys yra išsigimęs, nurodant prioriteto derinimo lygį. Vartotojai nurodė, kad žvaigždutė yra labiau intuityvi.
The= pakaitalas naudojamas norint apriboti prisijungimą prie nurodytos pirmumo klasės. Tai leidžia, pavyzdžiui, nukreipti tik atkūrimo pranešimus į konkretų žurnalo šaltinį.
Pavyzdžiui, ši eilutė yra syslog.conf nukreiptų debuginius pranešimus iš visų šaltinių į / usr / adm / debug failas
# Sample syslog.conf *. = Debug / usr / adm / debug
The! naudojamas siekiant pašalinti nurodytų prioritetų registravimą. Tai daro įtaką visoms (!) Galimybėms nustatyti prioritetus.
Pavyzdžiui, šiose eilutėse būtų užregistruoti visi pranešimai apie įrenginio paštą, išskyrus tuos, kurie turi prioritetinę informaciją / usr / adm / mail failas Ir visi pranešimai iš news.info (įskaitant) į news.crit (išskyrus) būtų registruojami į / usr / adm / naujienos failas
# Sample syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; news! Crit / usr / adm / news
Galite naudoti jį intuityviai kaip išimties specifiką. Minėtas aiškinimas yra tiesiog apverstas. Tai galite naudoti
mail.none
arba
Paštas.!*
arba
paštas.! derinti
praleisti kiekvieną pranešimą, kuris ateina su pašto galimybe. Yra daug galimybių žaisti su juo. :-)
The- gali būti naudojamas tik priskirti failo vardą, jei norite palikti sinchronizuoti failą po kiekvieno rašymo į jį.
Tai gali prireikti tam tikrą aklimatizaciją tiems asmenims, kurie naudojasi gryna BSD elgsena, tačiau bandytojai nurodė, kad ši sintaksė yra šiek tiek lankstesnė nei BSD elgesys. Atkreipkite dėmesį, kad šie pakeitimai neturėtų turėti įtakos standartuisyslog.conf(5) bylos. Norint gauti patobulintą elgesį, turite konkrečiai keisti konfigūracijos failus.
Parama nuotoliniam registravimui
Šie pakeitimai teikia tinklo palaikymą "syslogd" įrenginiui. Tinklo palaikymas reiškia, kad pranešimai gali būti perduodami iš vieno mazgo, kuriame veikia syslogd, į kitą mazgą, kuriame veikia syslogd, kur jie bus faktiškai prisijungti prie disko failo.
Norėdami tai padaryti, turite nurodyti-r parinktis komandinėje eilutėje. Numatytasis elgesys yra tokssyslogd nesiklausysiu tinklo.
Strategija yra, kad "syslogd" klausytų "Unix" domeno lizdas, skirtas lokaliai sukurtiems pranešimams apie žurnalą. Toks elgesys leis "syslogd" bendrauti su "Syslog", rasta standartinėje C bibliotekoje. Tuo pačiu metu syslogd klauso standartinio syslog'o prievado pranešimams, perduodamiems iš kitų kompiuterių. Kad šis darbas būtų teisingaspaslaugos(5) failai (paprastai randami / etc ) turi būti toks įrašas:
syslog 514 / udp
Jei šis įrašas trūkstasyslogd Negalima priimti nuotoliniù prane¹imù ir nei¹siùsti, nes UDP prievadas negali atidaryti. Vietoj to syslogd mirs nedelsiant, pūstu klaidos pranešimą.
Kad žinutės būtų persiųstos į kitą kompiuterį, pakeiskite įprastą failo eilutę syslog.conf failą pavadinimu "host", prie kurio siunčiami pranešimai pridedami prie @.
Pavyzdžiui, persiųstiVISI pranešimus į nutolusį kompiuterį naudodamiesi šiais duomenimis syslog.conf įrašas:
# Paragavęs syslogd konfigūracijos failą į # pranešimus nuotoliniam kompiuteriui. *. * @hostname
Persiųsti visusbranduolys pranešimai nuotoliniam kompiuteriui konfigūracijos failas bus toks:
# Parinkties konfigūracijos failas, perduodantis visus branduolio # pranešimus nuotoliniam kompiuteriui. kern. * @hostname
Jei nuotolinio kompiuterio vardo negalima išspręsti paleisties metu, nes vardų serveris gali būti nepasiekiamas (jis gali būti paleistas po syslogd) jums nereikia nerimauti.Syslogd pabandysime dešimt kartų išspręsti pavadinimą ir tada skųstis. Kita galimybė to išvengti - tai įvesti kompiuterio pavadinimą / etc / hosts .
Su normaliusyslogdSiųsite syslog-kilpas, jei išsiųsite pranešimus, kurie buvo gauti iš nuotolinio kompiuterio prie tos pačios kompiuterio (arba sudėtingiau trečiajam kompiuteriui, kuris siunčia jį atgal į pirmąjį ir tt). Mano domene (Infodrom Oldenburg) mes netyčia gavo vieną, o mūsų diskai užpildyti tuo pačiu vieninteliu pranešimu. :-(
Norint išvengti tolesnių kartų, jokie pranešimai, kurie buvo gauti iš nuotolinio kompiuterio, nebebus siunčiami į kitą (arba tą patį) nuotolinį kompiuterį. Jei yra scenarijų, kai tai neturi prasmės, prašau palikite mane (Joey) eilutę.
Jei nuotolinis kompiuteris yra toje pačioje domeno, kuriame yra kompiuteris,syslogd veikia, tik užregistruojamas tik paprastas kompiuterio pavadinimas, o ne visas fqdn.
Vietiniame tinkle galite pateikti centrinį žurnalo serverį, kad visa svarbi informacija būtų saugoma viename kompiuteryje. Jei tinklas susideda iš skirtingų sričių, jums nereikia skųstis, kad registruotų visiškai kvalifikuotus vardus, o ne paprastus kompiuterių pavadinimus. Galbūt norėsite naudoti juostos domeno funkciją-s šio serverio. Galite pasakytisyslogd išbraukti keletą kitų sričių, išskyrus tuos, kuriuose yra serveris, ir tik užregistruokite paprastus prieglobos vardus.
Naudojant-l parinktis taip pat yra galimybė apibrėžti atskirus kompiuterius kaip vietines mašinas. Tai taip pat sukelia prisijungti tik jų paprastus kompiuterių pavadinimus, o ne fqdns.
UDP lizdas, naudojamas persiunčiant pranešimus į nuotolinius kompiuterius arba gauti iš jų, yra atidarytas tik tada, kai to reikia. Release prieš 1.3-23 ji buvo atidaryta kiekvieną kartą, tačiau nebuvo atidaryta skaityti ar persiuntimo atitinkamai.
Išvestis su pavadintais vamzdžiais (FIFO)
Ši syslogd versija palaiko prisijungimą prie pavadintų vamzdžių ("fifos"). "Fifo" arba pavadintas vamzdis gali būti naudojamas kaip pranešimų siuntimo paskirties vieta, pridedant failo pavadinimą įterpiant simbolį (`| | ''). Tai yra naudinga derinti. Atkreipkite dėmesį, kad prieš pradedant syslogd, FIFO turi būti sukurtas naudojant komandą mkfifo.
Šis konfigūravimo failas nukreipia atkūrimo pranešimus iš branduolio į FIFO:
# Pavyzdinė konfigūracija, kad maršrutizuotumėte branduolio derinimą # TIK TIK "/ usr / adm / debug", kuris yra # pavadintas vamzdis. kern. = debug | / usr / adm / debug
Įrengimo problemos
Įdiegus šią "syslogd" versiją tikriausiai yra vienas svarbus veiksnys. Ši syslogd versija priklauso nuo tinkamo pranešimų formatavimo syslog funkcija. Syslog funkcijos veikimas bendrintuose bibliotekose kažkur pasikeitė libc.so.4 regione 2-4 .n. Konkretus pakeitimas buvo nutraukti pranešimo galiojimą prieš jį perduodant / dev / log lizdas. Tinkamas šios syslogd versijos veikimas priklauso nuo pranešimo nutraukimo.
Ši problema paprastai atsiranda, jei sistemoje naudojami seni statinio susiejimo dvejetainiai failai. Binaries, naudojantys senas "syslog" funkcijų versijas, bus užregistruotos tuščios eilutės, o po to - pranešimas, kuriame pašalintas pirmasis simbolis. Pertvarkant šiuos dvejetainius failus į naujesnes bendrų bibliotekų versijas bus ištaisyta ši problema.
Abusyslogd(8) irKlogd(8) gali būti paleidžiamas iš init (8) arba paleistas kaip rc. * Sekos dalis. Jei jis pradedamas nuo init varianto -n turi būti nustatytas, kitaip jūs gausite tonų "syslog" daemonų. Tai yra, nesInit(8) priklauso nuo proceso ID.
Grėsmės saugumui
Syslogd'o demonas gali būti naudojamas kaip tarnybos užpuolimo atsisakymo kanalas. Ačiū, eik į John Morrison ([email protected]), kad įspėja mane apie šį potencialą. Nesąžininga programa (mer) gali labai lengvai užtvindyti syslogd demoną su syslog pranešimais, todėl žurnalo failai sunaudoja visą likusį failų sistemos vietą. Aktyvavus prisijungimą prie "inet" domeno lizdų, žinoma, gali kilti pavojus, kad sistemoje gali kilti rizika už vietinių kompiuterių programų ar asmenų ribų.
Yra daug būdų apsaugoti mašiną:
- Įdiekite branduolio ugniasienę, kad galėtumėte apriboti, kurie kompiuteriai ar tinklai turi prieigą prie 514 / UDP lizdo.
- Registravimas gali būti nukreiptas į izoliuotą arba ne root'o failų sistemą, kuri, jei ji užpildyta, netrikdo mašinos.
- Galima naudoti ext2 failų sistemą, kuri gali būti sukonfigūruojama tam, kad tik tam tikras failų sistemos procentas būtų naudojamas tik root.PASTABA kad tai reikalauja, kad syslogd būtų paleistas kaip ne root procesas. Taip pat PASTABA kad tai užkerta kelią nuotolinio žurnalo naudojimui, nes syslogd negalės susieti su 514 / UDP lizdu.
- "Inet" srities lizdų išjungimas sumažins vietinio kompiuterio keliamą riziką.
- Naudokite 4 žingsnį ir, jei problema išlieka ir nėra antrinė priežastis, kad nesąžininga programa / demonas gautų 3,5 metro (maždaug 1 metro) pakėlimo strypo ilgį * ir kalbėtis su atitinkamu naudotoju. Sunkerio strypo def. --- 3/4, 7/8 arba 1 vnt. grūdintas plieninis strypas, kiekviename gale sriegiuotas. Pirminis naudojimas naftos pramonei Vakarų Šiaurės Dakotoje ir kitose vietose, kad būtų galima siurbti "šokti" alyvą iš naftos gręžinių. Antriniai naudojimo būdai yra galvijų pašarų dalių statyba ir elgesys su atsitiktiniu neatsargiu ar karinguoju asmeniu.
Derinimas
Kai derinimas įjungiamas naudojant-d pasirinkimas tadasyslogd bus labai verbuotas, rašydami daug ką jis daro dėl stdout. Kai konfigūracijos failas bus iš naujo peržiūrėtas ir pakartotas, matysime lentelę, atitinkančią vidinę duomenų struktūrą. Ši lentelė susideda iš keturių laukų:
numeris
Šiame lauke yra serijos numeris, prasidedantis nuliu. Šis skaičius nurodo vidinę duomenų struktūrą (t. Y. Masyvą). Jei vienas numeris užmirštas, atitinkamoje eilutėje gali būti klaida /etc/syslog.conf .
modelis
Šis laukas yra sudėtingas ir tiksliai atspindi vidinę struktūrą. Kiekvienas stulpelis reiškia įrenginį (žrsyslog(3)). Kaip matote, vis dar yra keletas laisvių įrenginių, kurie naudojami buvusiam naudojimui, tačiau naudojama tik likusi dalis. Kiekviena stulpelyje esanti laukelė nurodo prioritetus (žrsyslog(3)).
veiksmas
Šiame lauke aprašomas konkretus veiksmas, kuris vyksta kiekvieną kartą, kai gaunamas pranešimas, atitinkantis modelį. Žrsyslog.conf(5) meniu apie visus galimus veiksmus.
argumentai
Šiame lauke pateikiami papildomi argumentai paskutinio lauko veiksmams. Failų registravimui tai logfile failo pavadinimas; naudotojo registravimas yra vartotojų sąrašas; nuotoliniam registravimui - mašinisto prieglobos vardas, į kurį norite prisijungti; konsolės registravimui - tai naudojama konsolė; už tty-logging tai yra nurodyta tty; siena neturi jokių papildomų argumentų.
Taip pat žiūrėkite
logger(1), syslog(2), (5)
Bendradarbiai
Syslogd yra paimtas iš BSD šaltinių, Greg Wettstein ([email protected]) atliko uostą į Linux, Martin Schulze ([email protected]) ištaisė keletą klaidų ir pridėjo keletą naujų funkcijų.Klogdiš pradžių parašė Steve Lordas ([email protected]), Greg Wettstein padarė didelių patobulinimų.
Dr Greg WettsteinEnjellic Systems Development Onkologijos tyrimų departamentas "Computing Facility"Rogerio Mario vėžio centrasFargo, ND[email protected] Stephen TweedieInformatikos katedraEdinburgo universitetas, Škotija[email protected] Juha Virtanen[email protected] Shane Alderton[email protected] Martin SchulzeInfodromas Oldenburgas[email protected] Svarbu: Naudoti vyras komanda ( % vyras ), kad pamatytumėte, kaip komanda naudojama jūsų konkrečiame kompiuteryje. susiję straipsniai