Syslogd Linux dhe Unix Command

Sysklogd ofron dy shërbime të sistemit të cilat ofrojnë mbështetje për regjistrimin e sistemit dhe kurthe të kernel-it. Mbështetja e bazave të internetit dhe të Unix- it të domain-it mundëson këtë paketë të shërbimeve për të mbështetur regjistrimin lokal dhe të largët.

Regjistrimi i sistemit është siguruar nga një version i syslogd (8) që buron nga burimet BSD të aksioneve. Mbështetja për prerjen e kernelit sigurohet nga programi klogd (8) i cili lejon që prerjet e kernelit të kryhen në mënyrë të pavarur ose si klient i syslogd.

Syslogd siguron një lloj logging që përdorin shumë programe moderne. Çdo mesazh i regjistruar përmban të paktën një kohë dhe një fushë të hostname, zakonisht një fushë emri programor, por kjo varet nga sa i besueshëm programi i prerjes është.

Ndërsa burimet e syslogd janë modifikuar shumë, disa shënime janë në rregull. Para së gjithash ka pasur një përpjekje sistematike për të siguruar që syslogd ndjek standardin e tij të paracaktuar, BSD standarde. Koncepti i dytë i rëndësishëm që duhet të theksohet është se ky version i syslogd ndërvepron në mënyrë transparente me versionin e syslog të gjetur në bibliotekat standarde. Nëse një binar i lidhur me bibliotekat standarde të përbashkëta nuk funksionon siç duhet, ne dëshirojmë një shembull të sjelljes anormale.

Skedari kryesor i konfigurimit /etc/syslog.conf ose një skedar alternativ, i dhënë me opsionin -f , lexohet në fillim. Çdo rresht që fillon me shenjën e hash (`` # '') dhe linjat bosh injorohen. Nëse ndodh një gabim gjatë analizës, tërë linja injorohet.

përmbledhje

[ -n ] [ -n ] [ -n ] [ -n ] [ -f ] [ -m ] [ -n ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] v ] [ -x ]

Opsione

një fole

Duke përdorur këtë argument ju mund të specifikoni bazat shtesë nga syslogd që duhet të dëgjoni. Kjo është e nevojshme nëse ju do të lejoni që një demon të ekzekutohet brenda një ambienti chroot (). Ju mund të përdorni deri në 19 bazamente shtesë. Nëse ambienti juaj ka nevojë edhe më shumë, duhet të rrisni MAXFUNIX simbolin brenda skedarit burimor syslogd.c. Një shembull për një daemon chroot () është përshkruar nga njerëzit nga OpenBSD në http://www.psionic.com/papers/dns.html.

-d

Aktivizon mënyrën e debugimit. Duke përdorur këtë daemon nuk do të vazhdojë një pirun (2) për të vendosur veten në sfond, por e kundërta me atë qëndrim në plan të parë dhe të shkruani shumë informacion debug mbi tty aktuale. Shihni seksionin DEBUGGING për më shumë informacion.

-f skedari i konfigurimit

Specifikoni një skedar konfigurimi alternativ në vend të /etc/syslog.conf , i cili është parazgjedhja.

-h

By default syslogd nuk do të përcjellë mesazhet që merr nga hostët e largët. Specifikimi i kësaj ndërprerjeje në rreshtin e komandës do të bëjë që demoni i logit të përcjellë çdo mesazh të largët që merr për të përcjellë hostet të cilat janë përcaktuar.

-l listën e strehimit

Specifikoni një emër që duhet të regjistrohet vetëm me emrin e thjeshtë të hostit dhe jo me fqdn. Shumë hostë mund të specifikohen duke përdorur ndarësin e zorrës së trashë (``: '').

-m interval

Syslogd regjistron rregullisht një timestamp të shënuar. Intervali i parazgjedhur midis dy linjave MARK - është 20 minuta. Kjo mund të ndryshohet me këtë opsion. Vendosja e intervalit në zero e fiket tërësisht.

-N

Shmangni sfondin automatik. Kjo është e nevojshme veçanërisht nëse syslogd është nisur dhe kontrolluar nga init (8).

-p socket

Ju mund të specifikoni një socket tjetër domain unix në vend të / dev / log .

-r

Ky opsion do të mundësojë që objekti të marrë një mesazh nga rrjeti duke përdorur një pritje të domain-it me shërbimin syslog (shih (5)). Parazgjedhja është që të mos merrni asnjë mesazh nga rrjeti.

Ky opsion futet në versionin 1.3 të pakos sysklogd. Ju lutem vini re se sjellja e parazgjedhur është e kundërta e asaj se si sillen versionet e vjetra, kështu që mund ta aktivizoni këtë.

-s domainlist

Specifikoni një emër domain që duhet të hiqet para se të regjistrohet. Domenet e shumëfishta mund të specifikohen duke përdorur ndarësin e zorrës së trashë (``: ''). Ju lutemi të këshilloheni që nuk mund të specifikohet asnjë nën-domain, por vetëm domenë të tërë. Për shembull, nëse -s north.de është specifikuar dhe prerja pritëse e zgjidh në satu.infodrom.north.de asnjë domain nuk pritet, ju duhet të specifikoni dy fusha si: -s north.de:infodrom.north.de .

-V

Versioni i printimit dhe dalje.

-X

Çaktivizo pamjet e emrit kur merr mesazhe të largëta. Kjo shmang bllokimin kur serveri i emrave po kandidon në të njëjtën makinë që drejton demonin e syslog.

Signals

Syslogd reagon ndaj një sërë sinjale. Ju lehtë mund të dërgoni një sinjal për syslogd duke përdorur sa vijon:

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

Sighup

Kjo lejon syslogd të kryejë një ri-inicializim. Të gjitha skedarët e hapur janë të mbyllura, skedari i konfigurimit (default është /etc/syslog.conf ) do të rirezohet dhe objekti i syslog (3) do të fillojë përsëri.

SIGTERM

Syslogd do të vdesë.

SIGINT , SIGQUIT

Nëse debugging është aktivizuar këto injorohen, përndryshe syslogd do të vdesë.

SIGUSR1

Ndërroni debugging on / off. Ky opsion mund të përdoret vetëm nëse syslogd është nisur me opsionin -d debug.

SIGCHLD

Prisni fëmijën nëse disa kanë lindur, për shkak të mesazheve të murit.

Dallimet e Sintasë së Dhënave të Konfigurimit

Syslogd përdor një sintaksë paksa të ndryshme për skedarin e saj të konfigurimit sesa burimet origjinale të BSD. Fillimisht të gjitha mesazhet e një prioriteti të caktuar dhe më lart u përcollën në skedarin e regjistrit.

Për shembull, vija e mëposhtme ka shkaktuar prodhim të ALL nga demonët duke përdorur objektet daemon (debug është prioriteti më i ulët, kështu që çdo i lartë gjithashtu do të përputhet) për të shkuar në / usr / adm / daemons :

# Shembull syslog.conf daemon.debug / usr / adm / daemonet

Sipas skemës së re, kjo sjellje mbetet e njëjtë. Dallimi është shtimi i katër specifikuesve të rinj, wildcard yll ( * ), shenja ekuacion ( = ), emri i thirrjes ( ! ), Dhe shenja minus ( - ).

* Specifikon që të gjitha mesazhet për objektin e caktuar duhet të drejtohen në destinacion. Vini re se kjo sjellje është e degjeneruar me përcaktimin e një niveli përparësie të debugut. Përdoruesit kanë treguar se shenja asterike është më intuitive.

= Wildcard është përdorur për të kufizuar regjistrimin në klasën e prioritetit të specifikuar. Kjo lejon, për shembull, të drejtosh vetëm mesazhet e korrigjimit në një burim të veçantë regjistrimi.

Për shembull, rreshti në vijim në syslog.conf do të drejtonte mesazhet e debugut nga të gjitha burimet në skedarin / usr / adm / debug .

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

! përdoret për të përjashtuar regjistrimin e prioriteteve të përcaktuara. Kjo ndikon në të gjitha (!) Mundësitë e përcaktimit të prioriteteve.

Për shembull, linjat e mëposhtme do të regjistrojnë të gjitha mesazhet e postës së objektit përveç atyre me informacionin e prioritetit në skedarin / usr / adm / mail . Dhe të gjitha mesazhet nga news.info (duke përfshirë) në news.crit (duke përjashtuar) do të regjistrohen në dosjen / usr / adm / news .

# Shembull syslog.conf mail. *; Mail!! = Info / usr / adm / mail news.info; lajme.! Crit / usr / adm / lajme

Ju mund ta përdorni atë në mënyrë intuitive si një specifikues përjashtimi. Interpretimi i mësipërm është thjesht i përmbysur. Të bësh atë që mund të përdorësh

mail.none

ose

postë.! *

ose

postë.! debug

për të kapërcyer çdo mesazh që vjen me një strukturë të postës. Ka shumë hapësirë ​​për të luajtur me të. :-)

- Mund të përdoret vetëm për të prefiksuar një emër file nëse doni të hiqni syncing file pas çdo shkruani në të.

Kjo mund të marrë disa aklimatizime për ata individë që përdoren për sjelljen e pastër BSD, por testuesit kanë treguar se kjo sintaksë është disi më fleksibile sesa sjellja e BSD. Vini re që këto ndryshime nuk duhet të ndikojnë në standardin syslog.conf (5) fotografi. Duhet të modifikoni në mënyrë specifike skedarët e konfigurimit për të marrë sjelljen e përmirësuar.

Mbështetje për regjistrimin në distancë

Këto modifikime sigurojnë mbështetjen e rrjetit në objektin e syslogd. Mbështetja e rrjetit nënkupton që mesazhet mund të përcillen nga një nyjë që drejton syslogd në një tjetër nyje që vrapon syslogd ku do të hyjnë në një skedar disk.

Për të mundësuar këtë duhet të specifikoni opsionin -r në rreshtin e komandave. Sjellja e parazgjedhur është se syslogd nuk do të dëgjojë rrjetin.

Strategjia është që të ketë syslogd të dëgjojë në një socket të domain unix për mesazhet log të gjeneruara në vend. Kjo sjellje do të lejojë syslogd të bashkëpunojë me syslog gjetur në bibliotekën standarde C. Në të njëjtën kohë syslogd dëgjon në portin standard të syslog për mesazhet e transmetuara nga hostë të tjerë. Për të kryer këtë punë në mënyrë korrekte, shërbimet (5) skedarët (që gjenden zakonisht në / etc ) duhet të kenë këtë shënim:

syslog 514 / udp

Nëse ky shënim mungon, syslogd as nuk mund të marrë mesazhe të largëta as t'i dërgojë ato, sepse portet e UDP nuk mund të hapen. Në vend të kësaj, syslogd do të vdes menjëherë, duke defektuar një mesazh gabimi.

Për të shkaktuar që mesazhet të përcillen në një tjetër strehë zëvendësojnë vijën normale të skedarit në skedarin syslog.conf me emrin e hostit në të cilin duhet dërguar mesazhe me një @.

Për shembull, për të përcjellë të gjitha mesazhet në një host të largët duke përdorur hyrjen në vijim syslog.conf :

# Sample file syslogd configuration në # mesazhe në një host të largët përpara të gjitha. *. * @hostname

Për të përcjellë të gjitha mesazhet e kernel në një host të largët skedari i konfigurimit do të jetë si më poshtë:

# Sample file konfigurimi për të përcjellë të gjitha mesazhet e kernel # në një host të largët. kern. * @hostname

Nëse emri i hostit të largët nuk mund të zgjidhet në momentin e nisjes, sepse emri-serveri mund të mos jetë i arritshëm (mund të fillohet pas syslogd), nuk duhet të shqetësoheni. Syslogd do të përpiqet sërish për të zgjidhur emrin dhjetë herë dhe pastaj të ankohet. Një mundësi tjetër për të shmangur këtë është vendosja e hostname në / etc / hosts .

Me syslogd normale ju do të merrni syslog loops nëse ju dërgoni mesazhe që janë marrë nga një host të largët për të njëjtën host (ose më e komplikuar për një host të tretë që e dërgon atë përsëri në të parë, dhe kështu me radhë). Në domenin tim (Infodrom Oldenburg) kemi aksidentalisht një dhe disqet tona të mbushura me të njëjtin mesazh të vetëm. :-(

Për të shmangur këtë, në kohë të mëvonshme, asnjë mesazh që nuk është marrë nga një host i largët i dërgohet më një host tjetër të (ose të njëjtë) të largët. Nëse ekzistojnë skenarë ku kjo nuk ka kuptim, ju lutem më lini mua (Joey) një rresht.

Nëse serveri i largët është i vendosur në të njëjtën fushë si host, syslogd po kandidon, vetëm emri i thjeshtë i host do të regjistrohet në vend të të gjithë fqdn-së.

Në një rrjet lokal ju mund të siguroni një server log qendror për të mbajtur të gjithë informacionin e rëndësishëm të mbajtur në një makinë. Nëse rrjeti përbëhet nga fusha të ndryshme, nuk duhet të ankoheni për regjistrimin e emrave plotësisht të kualifikuar në vend të hostname-ve të thjeshta. Ju mund të dëshironi të përdorni funksionet e domain-strip të këtij serveri. Ju mund t'i tregoni syslogd - ut që të heqë disa fusha të tjera nga ato në të cilat serveri është i vendosur dhe vetëm logon emrat e thjeshtë të hostit.

Duke përdorur opsionin -l , ekziston gjithashtu një mundësi për të përcaktuar host të vetme si makina lokale. Kjo, gjithashtu, rezulton në prerjet vetëm të emrave të thjeshtë të hostit dhe jo të fqdns-it.

Foleja e UDP-së përdorur për të përcjellë mesazhe në hostët e largët ose për të marrë mesazhe prej tyre është hapur vetëm kur është e nevojshme. Në lëshimet para 1.3-23 ajo u hap çdo herë, por nuk u hap për leximin ose përcjelljen respektivisht.

Prodhimi i tubave të emëruar (FIFOs)

Ky version i syslogd ka mbështetje për nxjerrjen e regjistrave të prodhimit të tubave me emrin (fifos). Një tub i quajtur ose i quajtur mund të përdoret si destinacion për mesazhet e regjistrave duke parapenduar një simbol pipy (`` | '') me emrin e skedarit. Kjo është e dobishëm për debugging. Vini re se fifo duhet të krijohet me komandën mkfifo para fillimit të syslogd.

Dosja e konfigurimit në vijim nis mesazhet e korrigjimit nga kerneli në një pesëdhjetë:

# Konfigurimi i mostrës për të gjurmuar kernel debugging # messages VETËM tek / usr / adm / debug i cili është një # tub i quajtur. kern. = debug | / usr / adm / debug

Shqetësimet për instalim

Ka ndoshta një konsideratë të rëndësishme kur instaloni këtë version të syslogd. Ky version i syslogd varet nga formatimi i duhur i mesazheve nga funksioni syslog. Funksionimi i funksionit të syslog në bibliotekat e përbashkëta ndryshoi diku në rajonin e libc.so.4. [2-4] .n. Ndryshimi specifik ishte që ta përfundonte mesazhin pa e përfunduar atë përpara se ta transmetonte atë në fole / dev / log . Funksionimi i duhur i këtij versioni të syslogd varet nga mbarimi i mesazhit.

Ky problem zakonisht do të shfaqet nëse binarë të vjetër të lidhur statikisht po përdoren në sistem. Binarët që përdorin versionet e vjetra të funksionit syslog do të bëjnë që linjat bosh të regjistrohen pasuar nga mesazhi me karakterin e parë në mesazhin e hequr. Lidhja e këtyre binareve në versione më të reja të bibliotekave të përbashkëta do ta korrigjojë këtë problem.

Si syslogd (8) dhe klogd (8) mund të drejtohen nga init (8) ose filluan si pjesë e sekuencës rc. *. Nëse është nisur nga init opsioni -n duhet të vendoset, përndryshe, do të merrni tonin e demoneve syslog filluar. Kjo është për shkak se init (8) varet nga procesi ID.

Kërcënimet e sigurisë

Ka potencial që demoni syslogd të përdoret si një kanal për një mohim të sulmit të shërbimit. Faleminderit shkoni tek John Morrison (jmorriso@rflab.ee.ubc.ca) për të njoftuar me këtë potencial. Një program mashtrues (mer) mund ta përmbytë shumë lehtë demonin e syslogd me mesazhe syslog që rezultojnë në dosjet log që konsumojnë të gjithë hapësirën e mbetur në sistemin e skedarëve . Aktivizimi i prerjeve në bazat e domain-inet do të ekspozojë një sistem të rreziqeve jashtë programeve ose individëve në makinën lokale.

Ekzistojnë një numër metodash për mbrojtjen e një makine:

  1. Zbatimi i firewall-ut të kernel për të kufizuar se cilat hostë ose rrjete kanë qasje në prizë 514 / UDP.
  2. Regjistrimi mund të drejtohet në një skedar sistemi të izoluar ose jo-rrënjor i cili, nëse është i mbushur, nuk do të dëmtojë makinën.
  3. Mund të përdoret skedari i skedarit ext2 i cili mund të konfigurohet për të kufizuar një përqindje të caktuar të një sistemi skedar në përdorim vetëm nga rrënja. SHËNIM që kjo do të kërkojë që syslogd të funksionojë si një proces jo-rrënjë. Gjithashtu, vini re se kjo do të parandalojë përdorimin e prerjeve të largëta që nga syslogd nuk do të jetë në gjendje të lidhet në prizë 514 / UDP.
  4. Çaktivizimi i bazave të inet domain do të kufizojë rrezikun për makinën lokale.
  5. Përdoreni hapin 4 dhe nëse problemi vazhdon dhe nuk është sekondar për një program / daemon mashtrues të marrë një gjatësi prej 3.5 metrash (rreth 1 metër) * dhe të bisedoni me përdoruesin në fjalë. Shufra e shpatullave def. --- 3/4, 7/8 ose 1in. shufra çeliku e ngurtë, mashkull i ndërprerë në secilin fund. Përdorimi primar në industrinë e naftës në Dakotën Veriore të Veriut dhe vende të tjera për të pompuar naftën e thithur nga puset e naftës. Përdorimet dytësore janë për ndërtimin e bagazheve të bagëtive dhe për t'u marrë me individin e rastit të pabindur ose me luftë.

Debugging

Kur debugging është aktivizuar duke përdorur opsionin -d atëherë syslogd do të jetë shumë i përpiktë duke shkruar shumë nga ajo që bën në stdout. Sa herë që skedari i konfigurimit të rilexohet dhe ri-analizohet do të shihni një tabelë, që korrespondon me strukturën e brendshme të të dhënave. Kjo tabelë përbëhet nga katër fusha:

numër

Kjo fushë përmban një numër serik duke filluar nga zero. Ky numër përfaqëson pozicionin në strukturën e të dhënave të brendshme (p.sh. grupi). Nëse një numër është lënë jashtë atëherë mund të ketë një gabim në linjën përkatëse në /etc/syslog.conf .

model

Kjo fushë është e ndërlikuar dhe përfaqëson saktësisht strukturën e brendshme. Çdo kolonë qëndron për një objekt (referojuni syslog (3)). Siç mund ta shihni, ka ende disa lehtësira të lira për përdorim të mëparshëm, vetëm shumica e majtë përdoren. Çdo fushë në një kolonë përfaqëson prioritetet (referojuni syslog (3)).

veprim

Kjo fushë përshkruan veprimin e veçantë që ndodh sa herë që merr një mesazh që përputhet me modelin. Referojuni syslog.conf (5) manpage për të gjitha veprimet e mundshme.

argumentet

Kjo fushë tregon argumente shtesë për veprimet në fushën e fundit. Për skedar-logging kjo është emri i skedarit për logfile; për regjistrimin e përdoruesve kjo është një listë e përdoruesve; për regjistrim të largët ky është emri i hostit të makinës për tu identifikuar; për console-logging kjo është tastierë e përdorur; për tty-logging kjo është specifikuar tty; muri nuk ka argumente shtesë.

Shiko gjithashtu

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

bashkëpunëtorë

Syslogd është marrë nga burimet BSD, Greg Wettstein (greg@wind.enjellic.com) ka kryer portin në Linux , Martin Schulze (joey@linux.de) fiksoi disa bug dhe shtoi disa veçori të reja. Klogd ishte shkruar fillimisht nga Steve Lord (lord@cray.com), Greg Wettstein bëri përmirësime të mëdha.

Dr. Greg Wettstein
Zhvillimi i Sistemeve Enjellic

Sektori i Kërkimeve të Kërkimit onkologjik
Roger Maris Qendra e Kancerit
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Departamenti i Shkencave Kompjuterike
Universiteti i Edinburgut, Skoci
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

E rëndësishme: Përdorni komandën e njeriut ( % man ) për të parë se si përdoret një komandë në kompjuterin tuaj të veçantë.

Artikuj të ngjashëm