Syslogd Linux ir Unix komanda

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 yra syslogd (8) versija, sukurta iš BSD šaltinių. Paramą branduolių kirtimui teikia klogd (8) programa, kuri 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.

Nors syslogd š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į.

Pagrindinė konfigūracijos failo /etc/syslog.conf arba alternatyvaus failo, pateikto kartu su -f parinktimi, yra perskaitytas 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

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

Galimybės

- lizdas

Naudodamiesi šiuo argumentu galite nurodyti papildomus lizdus iš to, ko " syslogd" 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 syslogd.c šaltinio failo. "Chroot ()" pavyzdys pavyzdys aprašytas žmonių iš "OpenBSD" adresu http://www.psionic.com/papers/dns.html.

-d

Įjungia derinimo režimą. Naudojant šį procesą, daina neatliks šakutės (2), kad nustatytų save fone, bet priešingai nei tame, kas lieka į priekinį planą ir rašo daug 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 turizmo sąrašas

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

Syslogd reguliariai registruoja žymos laiko žymę. Numatytasis intervalas tarp dviejų ženklų eilučių yra 20 minučių. Tai galima pakeisti naudojant šią parinktį. Nustatymo intervalas nuliui visiškai išjungia.

-n

Venkite automatinio fono kūrimo. Tai reikalinga, ypač jei syslogd yra paleidžiamas ir kontroliuojamas init (8).

-p lizdas

Galite nurodyti alternatyvų unix domeno lizdą vietoj / 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.

-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 nusiųsti signalą į syslogd, naudodamiesi šiais būdais :

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

Sighup

Tai leidžia " syslogd" atlikti iš naujo inicijuoti. Visi atvirieji failai yra uždaryti, konfigūracijos failas (pagal nutylėjimą yra /etc/syslog.conf ) bus iš naujo perskaitytas ir syslog (3) įrenginys bus paleistas dar kartą.

SIGTERM

Syslogd mirs.

SIGINT , SIGQUIT

Jei derinimas yra įjungtas, jie ignoruojami, kitaip syslogd mirs.

SIGUSR1

Perjungti derinimo įjungimą / išjungimą. Ši parinktis gali būti naudojama tik tuo atveju, jei syslogd yra paleistas su -d atkūrimo parinktimi.

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ų" naudojant "daemon" įrenginius (derinimas yra mažiausias prioritetas, todėl kiekvienas didesnis taip pat atitiks) / usr / adm / daemons :

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

Pagal naują schemą šis elgesys išlieka tas pats. Skirtumas yra keturių naujų specifikatorių, žvaigždutė ( * ) pakaitos simbolis, lygties ženklas ( = ), šauktukas ( ! ) Ir minuso ženklas ( - ).

* Nurodo, kad visos nurodytos priemonės pranešimai 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 = wildcard naudojama apriboti prisijungimą prie nurodytos prioriteto klasės. Tai leidžia, pavyzdžiui, nukreipti tik atkūrimo pranešimus į konkretų žurnalo šaltinį.

Pavyzdžiui, ši eilutė syslog.conf nukreiptų pranešimus apie klaidas iš visų šaltinių į / usr / adm / derinimo failą.

# 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 prioriteto informaciją, į / usr / adm / mail failą. Ir visi pranešimai iš news.info (įskaitant) į news.crit (išskyrus) būtų registruojami į / usr / adm / naujienų failą.

# 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 neturi įtakos standartiniams syslog.conf (5) failams. 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 komandinėje eilutėje parinktį -r . Numatytasis elgesys yra tai, kad syslogd nebus klausytis 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ų teisingas, paslaugos (5) failai (paprastai randami / ir tt ) turi turėti šį įrašą:

syslog 514 / udp

Jei šiame įraše trūksta syslogd, negalima gauti nuotolinių pranešimų ar siųsti juos, nes atidarius UDP portą nepavyks. Vietoj to, " syslogd " mirs iškart, išpūstant klaidos pranešimą.

Jei norite, kad pranešimai būtų persiųsti kitam priimančiam kompiuteriui, pakeiskite įprastą failo eilutę failo syslog.conf pavadinimu, su kuriuo bus siunčiami pranešimai, pridedami su @.

Pavyzdžiui, jei norite persiųsti VISUS pranešimus į nutolusį kompiuterį, naudodami šį įrašą syslog.conf :

# Paragavęs syslogd konfigūracijos failą į # pranešimus nuotoliniam kompiuteriui. *. * @hostname

Norėdami persiųsti visus branduolio pranešimus į nutolusį kompiuterį, 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 bandys dešimt kartų išspręsti pavadinimą ir tada skųstis. Kita galimybė to išvengti - tai įvesti kompiuterio vardą / etc / hosts .

Naudodamiesi įprastais syslogd'ais, jūs gausite syslog-kilpų, jei išsiųsite pranešimus, kurie buvo gauti iš nuotolinio kompiuterio to paties kompiuterio (arba sudėtingesnio 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 dalyje, kuriame yra kompiuteris, syslogd veikia, o tik visas fqdn įrašomas tik paprastas kompiuterio vardas.

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 šio serverio juostos domeno savybes. Galite nurodyti " syslogd", kad pašalintumėte keletą kitų sričių, išskyrus tuos, kuriuose yra serveris, ir tik užregistruokite paprastus prieglobos pavadinimus.

Naudojant -l parinktį taip pat yra galimybė nustatyti 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" lizdą. 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.

Tiek syslogd (8), tiek klogd (8) gali būti paleisti iš init (8) arba paleisti kaip dalis rc. * Sekos. Jei jis prasideda iš init, turi būti nustatytas parinktis -n , priešingu atveju pradėsite tonų "syslog" daemonų. Taip yra todėl, kad init (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 (jmorriso@rflab.ee.ubc.ca), 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ą:

  1. Įdiekite branduolio ugniasienę, kad galėtumėte apriboti, kurie kompiuteriai ar tinklai turi prieigą prie 514 / UDP lizdo.
  2. Registravimas gali būti nukreiptas į izoliuotą arba ne root'o failų sistemą, kuri, jei ji užpildyta, netrikdo mašinos.
  3. 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: tai reikalauja, kad syslogd būtų paleistas kaip ne root procesas. Be to, atkreipkite dėmesį, kad taip bus užkirstas kelias nuotolinio žurnalo naudojimui, nes syslogd negalės susieti su 514 / UDP lizdu.
  4. "Inet" srities lizdų išjungimas sumažins vietinio kompiuterio keliamą riziką.
  5. 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 yra įjungtas naudojant -d parinktį, syslogd bus labai verbuotas, rašydamas 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 reiškia vidinę duomenų struktūrą (ty masyvą). Jei vienas numeris užmirštas, tai gali būti klaida atitinkamoje /etc/syslog.conf eilutėje.

modelis

Šis laukas yra sudėtingas ir tiksliai atspindi vidinę struktūrą. Kiekvienas stulpelis reiškia įrenginį (žr. Syslog (3)). Kaip matote, vis dar yra keletas laisvių įrenginių, kurie naudojami buvusiam naudojimui, tačiau naudojama tik likusi dalis. Kiekviena stulpelio lauka nurodo prioritetus (žr. Syslog (3)).

veiksmas

Šiame lauke aprašomas konkretus veiksmas, kuris vyksta kiekvieną kartą, kai gaunamas pranešimas, atitinkantis modelį. Žiūrėkite syslog.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 (greg@wind.enjellic.com) atliko uostą Linux , Martin Schulze (joey@linux.de) ištaisė keletą klaidų ir pridėjo keletą naujų funkcijų. Klogd iš pradžių parašė Steve Lordas (lord@cray.com), Greg Wettstein padarė didelių patobulinimų.

Dr Greg Wettstein
Enjellic Systems Development

Onkologijos tyrimų departamentas "Computing Facility"
Rogerio Mario vėžio centras
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Informatikos katedra
Edinburgo universitetas, Škotija
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodromas Oldenburgas
joey@linux.de

Svarbu: naudokite komandą man ( % man ), kad pamatytumėte, kaip komanda naudojama jūsų konkrečiame kompiuteryje.

susiję straipsniai