Syslogd Linux i Unix Command

Sysklogd pruža dva sustava alata koji pružaju podršku za bilježenje sustava i zalihe poruke kernela. Podrška internet i unix domenu omogućuje korisnicima da podržavaju lokalno i daljinsko bilježenje.

Sustavno bilježenje osigurava verzija syslogd (8) izvedenog iz izvora BSD izvora. Podrška za zapisivanje kernela osigurava korisni programi klogd (8) koji dopušta zapisivanje kernela na samostalni način ili kao klijent syslogd-a.

Syslogd pruža vrstu zapisivanja koju koriste mnogi moderni programi. Svaka prijavljena poruka sadrži barem jedno vrijeme i polje naziva glavnog računala, inače polje naziv programa, ali to ovisi o tome koliko je pouzdan program bilježenja.

Dok su izvori syslogda jako izmijenjeni, nekoliko bilježaka je u redu. Prije svega, postojao je sustavni pokušaj da se osigura da syslogd slijedi svoj zadani, standardni BSD ponašanje. Drugi važan koncept koji treba imati na umu je da ova verzija syslogd interakciju transparentno s verzijom syslog naći u standardnim knjižnicama. Ako binarnu vezu s standardnim dijeljenim bibliotekama ne funkcionira ispravno, želimo primjer anomalnog ponašanja.

Glavna konfiguracijska datoteka /etc/syslog.conf ili alternativna datoteka, s opcijom -f , čitaju se pri pokretanju. Bilo koja linija koja započinje s oznakom hashe (`` # '') i praznih redaka zanemaruje se. Ako se tijekom parsiranja pojavi pogreška, cijela linija se zanemaruje.

Sinopsis

[ -n ] [ -n ] [ -n ] [ -n ] [ -n ] [ -n config ] [ - v ] [ -x ]

Opcije

- utičnicu

Pomoću ovog argumenta možete odrediti dodatne utičnice iz tog syslogda koji moraju slušati. To je potrebno ako dopustite nekom daemonu da radi unutar okruženja chroot (). Možete koristiti do 19 dodatnih utora. Ako vaše okruženje treba još više, morate povećati simbol MAXFUNIX unutar izvorne datoteke syslogd.c. Primjer za demo chroot () opisuju ljudi iz OpenBSD na http://www.psionic.com/papers/dns.html.

-D

Uključuje način otklanjanja pogrešaka. Na taj način daemon neće nastaviti vilicu (2) da se postavi u pozadini, ali suprotno onom boravku u prednjem planu i napiši mnogo informacija o ispravljanju trenutnog tty. Dodatne informacije potražite u odjeljku ODOBRAVANJE.

-f konfiguracijsku datoteku

Navedite alternativnu konfiguracijsku datoteku umjesto /etc/syslog.conf , što je zadano.

-h

Prema zadanim postavkama syslogd neće prosljeđivati ​​poruke koje prima od udaljenih računala. Navođenje ovog prekidača u naredbenom retku uzrokovat će demon da će proslijediti sve daljinske poruke koje prima za prosljeđivanje definiranih hostova.

- popis domaćina

Navedite naziv hosta koji bi trebao biti prijavljen samo s jednostavnim nazivom hosta, a ne fqdn-om. Višestruki domaćini mogu se odrediti pomoću razdjelnika debelog crijeva (``: '').

-m interval

Syslogd redovito bilježi oznaku vremenske oznake. Zadani interval između dva - MARK - linija je 20 minuta. To se može promijeniti s ovom opcijom. Postavljanje intervala na nulu isključuje ga u potpunosti.

-n

Izbjegavajte automatsko pozadinsko praćenje. To je posebno potrebno ako se syslogd pokrene i kontrolira init (8).

-p utičnicu

Možete odrediti zamjensku jedinicu Unix umjesto / dev / log .

-r

Ova opcija omogućit će objektu da primi poruku s mreže koristeći internetsku domenu sa syslog uslugom (vidi (5)). Zadana postavka je da ne primate nikakve poruke iz mreže.

Ova je opcija uvedena u verziji 1.3 paketa sysklogd. Napominjemo da je zadano ponašanje suprotno načinu na koji se starije verzije ponašaju, pa biste možda morali uključiti tu značajku.

s popisom domena

Navedite naziv domene koji bi trebao biti uklonjen prije zapisivanja. Višestruke domene mogu se odrediti pomoću razdjelnika debelog crijeva (``: ''). Imajte na umu da ne mogu biti navedene poddomene, već samo sve domene. Na primjer, ako je specificiran if -s north.de , a prijavljivanje domaćinstva rješava se satu.infodrom.north.de, niti jedna domena neće biti izrezana, morat ćete navesti dvije domene poput: -s north.de:infodrom.north.de .

-v

Ispis verzije i izlaz.

-x

Onemogućite traženja naziva prilikom primanja udaljenih poruka. To izbjegava zastoj kada servis naziva radi na istom stroju koji pokreće syslog daemon.

signali

Syslogd reagira na skup signala. Možete jednostavno poslati signal syslogdu pomoću sljedećeg:

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

Sighup

To omogućuje syslogd izvršiti ponovno inicijalizaciju. Sve otvorene datoteke su zatvorene, konfiguracijska datoteka (zadano /etc/syslog.conf ) će se ponovno pročitati i ponovno pokrenuti syslog (3) objekt.

SIGTERM

Syslogd će umrijeti.

SIGINT , SIGQUIT

Ako je uklanjanje pogrešaka omogućeno, one se zanemaruju, inače će syslogd umrijeti.

SIGUSR1

Uključivanje / isključivanje uklanjanja pogrešaka. Ova se opcija može koristiti samo ako je syslogd započeo s opcijom -d debug.

SIGCHLD

Pričekajte dijete ako su neki rođeni zbog zidnih poruka.

Razlike u sintaksama konfiguracijskih datoteka

Syslogd koristi malo drugačiju sintaksu za svoju konfiguracijsku datoteku od izvornog BSD izvora. Izvorno su sve poruke određenog prioriteta i gore bile proslijeđene log datotekama.

Na primjer, sljedeći redak je prouzročio SVE izlaz iz demonova koji upotrebljavaju demonstracijske objekte (debug je najniži prioritet, tako da će svaka veća također odgovarati) ići u / usr / adm / daemone :

# Uzorak syslog.conf daemon.debug / usr / adm / daemona

Prema novoj shemi, ovo ponašanje ostaje isto. Razlika je dodavanje četiri nove specifikacije, zamjenski znak zvjezdice ( * ), znak jednadžbe ( = ), uskličnik ( ! ) I znak minus ( - ).

* Specificira da se sve poruke za navedeni objekt trebaju usmjeriti na odredište. Imajte na umu da ovo ponašanje degenerira s određivanjem razine prioriteta uklanjanja pogrešaka. Korisnici su naznačili da je oznaka zvjezdice više intuitivna.

= Zamjenski znak se koristi za ograničavanje prijave na navedeni prioritetni razred. To omogućuje, primjerice, usmjeravanje samo debug poruka na određeni izvor zapisivanja.

Na primjer, sljedeći redak u syslog.conf usmjerit će poruke za ispravljanje pogrešaka iz svih izvora u datoteku / usr / adm / debug .

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

! se koristi za isključivanje prijave određenih prioriteta. To utječe na sve (!) Mogućnosti određivanja prioriteta.

Na primjer, sljedeće linije bilježit će sve poruke u objektnoj pošti osim onih s prioritetnim podacima na / usr / adm / mail datoteku. I sve poruke iz news.info (uključujući) do news.crit (isključujući) bit će prijavljene u datoteku / usr / adm / news .

# Uzorak syslog.conf pošte. *; Mail!! = Info / usr / adm / mail news.info; vijesti!! Crit / usr / adm / vijesti

Možete ga upotrijebiti intuitivno kao iznimka za određivanje. Gore spomenuto tumačenje jednostavno je obrnuto. To možete učiniti

mail.none

ili

pošte.! *

ili

pošte.! ispravljanje

da preskočite svaku poruku koja dolazi s objektom za poštu. Mnogo prostora za igranje s njim. :-)

Moguće je upotrijebiti samo za prefiks naziva datoteke ako želite izostaviti datoteku za sinkronizaciju nakon što ga svaki pisati.

To može potrajati nekim aklimatizacijom za one pojedince koji se koriste u čistom ponašanju BSD-a, ali testeri su naznačili da je ta sintaksa nešto fleksibilnija od BSD ponašanja. Imajte na umu da ove izmjene ne bi trebale utjecati na standardne syslog.conf (5) datoteke. Morate posebno izmijeniti konfiguracijske datoteke kako biste dobili poboljšano ponašanje.

Podrška za daljinsko bilježenje

Te izmjene pružaju mrežnu podršku sustavu syslogd. Mrežna podrška znači da se poruke mogu proslijediti iz jednog čvora koji pokreće syslogd u drugi čvor koji pokreće syslogd gdje će se zapravo prijaviti u datoteku diska.

Da biste to omogućili, morate odrediti opciju -r na naredbenom retku. Zadano ponašanje je da syslogd neće slušati mrežu.

Strategija je da syslogd posluša na jednoj Unix domenskoj utičnici za lokalno generirane dnevničke poruke. Ovo ponašanje omogućit će syslogdu da surađuje s syslogom koji se nalazi u standardnoj C biblioteci. Istodobno syslogd sluša standardni syslog port za poruke proslijeđene od drugih hostova. Da biste ispravno funkcionirali, usluge (5) datoteke (obično se nalaze u / etc ) moraju imati sljedeći unos:

syslog 514 / udp

Ako ovaj unos nedostaje, syslogd ne može primati ni udaljene poruke niti ih poslati, jer se UDP port ne može otvoriti. Umjesto toga, syslogd će umrijeti odmah, ispuštajući poruku o pogrešci.

Da bi se prosljeđivanje poruka proslijedilo drugom hostu, zamijenite uobičajenu liniju datoteka u syslog.conf datoteci s imenom domaćina na koji će se poruke poslati prenijeti s @.

Na primjer, proslijedite sve poruke udaljenom računalu pomoću sljedećeg unosa syslog.conf :

# Prikažite syslogd konfiguracijsku datoteku na # poruke udaljenom računalu. *. * @hostname

Za prosljeđivanje svih kernel poruka na udaljeno računalo konfiguracijska datoteka bila bi sljedeća:

# Primjer datoteke konfiguracije za prosljeđivanje svih kernel # poruka na udaljeno računalo. kern. * @hostname

Ako se daljinski naziv računala ne može riješiti prilikom pokretanja jer poslužitelj-naziv možda nije dostupan (može se pokrenuti nakon syslogd-a), ne morate se brinuti. Syslogd će pokušati riješiti ime deset puta i onda se žaliti. Druga mogućnost da se to izbjegne jest postaviti ime računala u / etc / hosts .

S normalnim syslogd-ovima dobivate syslog-petlje ako šaljete poruke koje su primljene s udaljenog računala na isti host (ili složenije za treći host koji ga šalje natrag na prvi, itd.). U mom domeni (Infodrom Oldenburg) slučajno smo dobili jedan i naši diskovi ispunjeni istom jedinom porukom. :-(

Kako biste to izbjegli u daljnjim vremenima, poruke koje su primljene s udaljenog računala više se ne šalju drugom (ili istom) udaljenom računalu. Ako postoje scenarija u kojima ovo nema smisla, molim vas da me ispustite (Joey).

Ako se udaljeni host nalazi u istoj domeni kao i domaćin, syslogd se pokreće, umjesto cijele fqdn će biti zabilježen samo jednostavan hostname.

U lokalnoj mreži možete osigurati središnji dnevnik koji će imati sve važne informacije zadržane na jednom računalu. Ako se mreža sastoji od različitih domena, ne morate se žaliti na prijavljivanje potpuno kvalificiranih imena umjesto jednostavnih naziva hostova. Preporučujemo da koristite značajku domene domene na ovom poslužitelju. Syslogd vam može reći da izbrišete nekoliko domena, osim one na kojoj se poslužitelj nalazi i samo prijavljuju jednostavne nazive hostova.

Koristeći opciju -l postoji i mogućnost definiranja pojedinačnih domaćina kao lokalnih strojeva. To također dovodi do prijave samo jednostavnih naziva računala, a ne fqdnsa.

UDP utičnica koja se koristi za prosljeđivanje poruka udaljenim računalima ili za primanje poruka od njih otvara se samo kada je to potrebno. U izdanjima prije 1.3-23 otvorena je svaki put, ali nije otvorena za čitanje ili prosljeđivanje.

Izlaz iz nazivnih cijevi (FIFOs)

Ova verzija syslogd-a ima podršku za bilježenje izlaza na ime cijevi (fifos). Fino ili nazvanu cijev se može koristiti kao odredište za dnevnike zapisivanjem simbola pipy (`| | '') na naziv datoteke. Ovo je prikladno za uklanjanje pogrešaka. Imajte na umu da se fifo mora biti kreiran s mkfifo naredbom prije pokretanja syslogd-a.

Sljedeća konfiguracijska datoteka usmjerava poruke o ispravljanju iz kernela na petnaest:

# Primjer konfiguracije za usmjeravanje kernela debugging # messages SAMO na / usr / adm / debug koji je # named pipe. kern. = ispravljanje pogrešaka / usr / adm / debug

Zabrinutost za instalaciju

Vjerojatno je jedno važno razmatranje prilikom instaliranja ove verzije syslogda. Ova verzija syslogd ovisi o pravilnom oblikovanju poruka syslog funkcijom. Funkcija syslog funkcije u dijeljenim knjižnicama promijenila se negdje u regiji libc.so.4. [2-4] .n. Određena je promjena bila da se poruka nul-prekine prije nego što je proslijedi na / dev / log socket. Pravilno funkcioniranje ove verzije syslogd ovisi o nul-prekidanju poruke.

Taj će se problem obično očitovati ako se na sustavu koriste stari statički povezani binari. Korištenje starih verzija syslog funkcije uzrokovat će zapisivanje praznih redaka nakon čega slijedi poruka s prvim znakom u poruci uklonjenoj. Ponovno povezivanje tih datoteka s binarnim verzijama na nove verzije dijeljenih biblioteka ispravit će taj problem.

I syslogd (8) i klogd (8) mogu se pokrenuti od init (8) ili započeti kao dio slijeda rc. *. Ako je pokrenut od init, opcija -n mora biti postavljena, inače ćete dobiti tona syslog daemona pokrenuta. To je zato što init (8) ovisi o ID-u procesa.

Sigurnosne prijetnje

Postoji potencijal da se syslogd daemon koristi kao kanal za napad uskraćivanja usluga. Hvala vam na John Morrison (jmorriso@rflab.ee.ubc.ca) za upozorenje na ovaj potencijal. Program skitnica (mer) može vrlo lako preplaviti syslogd daemon sa syslog porukama, što rezultira log datotekama koje troše preostalo mjesto na datotečnom sustavu . Aktivacija prijave na utičnice inet domene će, naravno, izložiti sustavu rizicima izvan programa ili pojedinaca na lokalnom računalu.

Postoji niz metoda za zaštitu stroja:

  1. Provedite vatrozid kernela kako biste ograničili koje domaćine ili mreže imaju pristup 514 / UDP utičnici.
  2. Zapisivanje se može usmjeriti na izolirani ili ne-root datotečni sustav koji, ako je ispunjen, neće oštetiti uređaj.
  3. Možete koristiti ext2 datotečni sustav koji se može konfigurirati tako da ograničava određeni postotak datotečnog sustava samo korištenjem root-a. NAPOMENA : to će zahtijevati da syslogd bude pokrenut kao ne-korijen proces. Također napominjemo da će to spriječiti korištenje udaljenog bilježenja jer se syslogd neće moći povezati s 514 / UDP utičnicom.
  4. Onemogućavanje inet domene utičnica ograničit će rizik na lokalni stroj.
  5. Upotrijebite korak 4 i ako problem i dalje postoji i nije sekundaran programu skitnica / daemon, dobit ćete duljinu štapa za usitnjavanje od 3,5 m (oko 1 m) i razgovarajte s dotičnim korisnikom. Sucker štapić def. --- 3/4, 7/8 ili 1in. stvrdnutu čeličnu šipku, mušku navojem na svakom kraju. Primarna uporaba u naftnoj industriji u zapadnoj Sjevernoj Dakoti i drugim mjestima za pumpanje 'sisati' ulje iz uljnih bušotina. Sekundarne upotrebe služe za izgradnju stočne hrane za životinje i za rješavanje povremenih nepopustljivih ili ratobornih pojedinaca.

otklanjanje grešaka

Kada je uklanjanje pogrešaka uključeno pomoću opcije -d, syslogd će biti vrlo opasan pisanjem velikog broja onoga što radi na stdoutu. Kad god se konfiguracijska datoteka ponovno pročita i ponovno analizira, vidjet ćete tablični, što odgovara internoj strukturi podataka. Ova se tablica sastoji od četiri polja:

broj

Ovo polje sadrži serijski broj koji počinje nuli. Ovaj broj predstavlja položaj u internoj strukturi podataka (tj. Polju). Ako je jedan broj izostavljen, postoji pogreška u odgovarajućoj liniji u /etc/syslog.conf .

uzorak

Ovo polje je lukav i predstavlja točno unutarnju strukturu. Svaki stupac označava objekt (pogledajte syslog (3)). Kao što vidite, još uvijek postoje neki sadržaji koji su ostavljeni slobodni za nekadašnju uporabu, a koriste se samo lijevi most. Svako polje u stupcu predstavlja prioritete (pogledajte syslog (3)).

akcijski

Ovo polje opisuje određenu radnju koja se odvija kad god se primila poruka koja odgovara uzorku. Pogledajte manjinu syslog.conf (5) za sve moguće radnje.

argumenti

Ovo polje prikazuje dodatne argumente akcijama u zadnjem polju. Za zapisivanje datoteka ovo je naziv datoteke za log datoteku; za prijavu korisnika ovo je popis korisnika; za daljinsko bilježenje ovo je naziv hosta stroja za prijavu; za logiranje konzola ovo je upotrijebljena konzola; za tty-logging ovo je specificirano tty; zid nema dodatnih argumenata.

Vidi također

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

suradnici

Syslogd je preuzet iz BSD izvora, Greg Wettstein (greg@wind.enjellic.com) izveo luka na Linux , Martin Schulze (joey@linux.de) popravio neke greške i dodao nekoliko novih značajki. Klogd je izvorno napisao Steve Lord (lord@cray.com), Greg Wettstein je napravio značajna poboljšanja.

Dr. Greg Wettstein
Enjuički razvoj sustava

Računalna djelatnost na području onkologije
Roger Maris Centar za karcinom
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Odjel za računalnu znanost
Sveučilište 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

Važno: Upotrijebite naredbu čovjek ( % man ) kako biste vidjeli kako se naredba koristi na vašem računalu.

povezani članci