Skip to main content

Syslogd Linux a Unix Command

LINUX Logger command (Červen 2026)

LINUX Logger command (Červen 2026)
Anonim

Sysklogd poskytuje dva systémové nástroje, které poskytují podporu pro protokolování systému a zachycení zpráv o jádře. Podpora obou internetových a unixových doménových soketů umožňuje tento balíček nástrojů podporovat jak lokální, tak vzdálené protokolování.

Systémové protokolování je poskytováno verzísyslogd(8) odvozených ze zásob BSD zdrojů. Podporu pro protokolování jádra poskytujeklogd(8), který umožňuje protokolování jádra buď samostatně, nebo jako klient syslogd.

Syslogd poskytuje druh logování, který využívá mnoho moderních programů. Každá zaznamenána zpráva obsahuje alespoň časové pole a pole hostitele, obvykle také pole s názvem programu, ale to závisí na tom, jak je protokolovací program důvěryhodný.

Zatímcosyslogd zdroje byly silně upraveny a pár poznámek je v pořádku. Především se systematicky pokoušel zajistit, aby systém syslogd dodržoval standardní standardní chování BSD. Druhým důležitým pojmem je, že tato verze syslogd interaguje transparentně s verzí syslog, která se nachází ve standardních knihovnách. Pokud nefunguje binární propojení se standardními sdílenými knihovnami, chtěli bychom si představit příklad anomálního chování.

Hlavní konfigurační soubor /etc/syslog.conf nebo alternativního souboru, který byl dán s-F volba, se čte při spuštění. Všechny řádky začínající znakem hash (`` # '') a prázdné řádky jsou ignorovány. Pokud dojde během procesu analýzy k chybě, ignoruje se celý řádek.

Synopse

syslogd -A zásuvka -d -F konfigurační soubor -h -l seznam hostitelů -m interval -n -p zásuvka -r -s seznam domén -proti -X

Možnosti

-A zásuvka

Pomocí tohoto argumentu můžete zadat další sokety z tohosyslogd musí poslouchat. To je zapotřebí, pokud necháte nějaký démon běžet v prostředí chroot (). Můžete použít až 19 dalších zásuvek. Pokud vaše prostředí potřebuje ještě víc, musíte zvýšit symbolMAXFUNIX v rámci zdrojového souboru syslogd.c. Příklad pro démona chroot () je popsán lidmi z OpenBSD na adrese http://www.psionic.com/papers/dns.html.

-d

Zapne režim ladění. Pomocí tohoto démona nebude pokračovat aVidlička(2), aby se nastavil na pozadí, ale naproti tomu zůstal v popředí a napsal mnoho ladicích informací o aktuálním tty. Další informace naleznete v části DEBUGGING.

-F konfigurační soubor

Zadejte alternativní konfigurační soubor namísto /etc/syslog.conf , což je výchozí hodnota.

-h

Ve výchozím nastavení syslogd nebude předávat zprávy, které přijímá ze vzdálených počítačů. Určení tohoto přepínače na příkazovém řádku způsobí, že démon protokolu předá vzdálené zprávy, které přijímá, pro předávání hostitelů, které byly definovány.

-l seznam hostitelů

Určete název hostitele, který by měl být přihlášen pouze se svým jednoduchým názvem hostitele a nikoli fqdn. Mnoho hostitelů může být zadáno pomocí oddělovače dvojtečky (``: '').

-m interval

Thesyslogd pravidelně zaznamenává značku časových značek. Výchozí nastavení interval mezi dvěma - MARK - line je 20 minut. Tuto možnost lze změnit. Nastavení interval na nulu to úplně vypne.

-n

Vyhněte se automatickému pozadím. To je zapotřebí zejména v případě, žesyslogd je spuštěn a řízeninit(8).

-p zásuvka

Můžete zadat alternativní soketu domény Unix namísto / dev / log .

-r

Tato možnost umožní službě přijímat zprávy ze sítě pomocí zásuvky internetové domény se službou syslog (viz (5)). Výchozí nastavení není přijímat žádné zprávy ze sítě.

Tato možnost je zavedena ve verzi 1.3 balíčku sysklogd. Vezměte prosím na vědomí, že výchozí chování je opakem toho, jak se chovají starší verze, takže je možná třeba zapnout.

-s seznam domén

Zadejte název domény, který by měl být před protokolem odebrán. Vícenásobné domény mohou být zadány pomocí dvojtečky (``: ''). Upozorňujeme, že žádné subdomény nesmí být zadány, ale pouze celé domény. Například pokud-s north.de je zadáno a protokolování hostitele se řeší na adresu satu.infodrom.north.de žádná oblast by nebyla zkrácena, budete muset zadat dvě domény, jako například:-s north.de:infodrom.north.de.

-proti

Vytiskněte verzi a ukončete.

-X

Při přijímání vzdálených zpráv deaktivujte vyhledávání názvů. Tím se zabrání zablokování, když je jmenný server spuštěn na stejném počítači, který spouští démona syslog.

Signály

Syslogd reaguje na soubor signálů. Můžete snadno odeslat signálsyslogd pomocí následujícího:

zabít -SIGNAL `cat / var / run / syslogd.pid`

Sestup

To vám umožnísyslogd proveďte opětovnou inicializaci. Všechny otevřené soubory jsou uzavřeny, konfigurační soubor (výchozí je /etc/syslog.conf ) bude znovu přečten asyslog(3) zařízení je znovu zahájeno.

SIGTERM

Thesyslogd zemře.

SIGINT, SIGQUIT

Pokud je povoleno ladění, ignorují se jinaksyslogd zemře.

SIGUSR1

Zapněte / vypněte ladění. Tuto možnost lze použít pouze v případěsyslogd je spuštěn s-d ladění.

SIGCHLD

Počkejte na děti, pokud se někteří narodili kvůli zprávám o zdi.

Rozdíly v konfiguraci souboru syntaxe

Syslogd používá trochu jinou syntaxi pro svůj konfigurační soubor než původní zdroje BSD. Původně všechny zprávy specifické priority a výše byly předány do souboru protokolu.

Například následující řádek způsobil VŠECHNY výstupy z daemonů pomocí zařízení daemon (ladění je nejnižší priorita, takže každá vyšší bude také odpovídat) / usr / adm / daemony :

# Příklad vzoru syslog.conf daemon.debug / usr / adm / daemons

Podle nového schématu toto chování zůstává stejné. Rozdílem je přidání čtyř nových specifikátorů, hvězdička (*) zástupný znak, značka rovnice (=), vykřičník (!) a znaménko mínus (-).

The* specifikuje, že všechny zprávy určené zařízení musí být směrovány do cíle. Všimněte si, že toto chování je degenerované s určením úrovně priority ladění. Uživatelé uvedli, že označení hvězdičky je intuitivnější.

The= zástupný znak se používá k omezení záznamu na zadanou třídu priorit. To umožňuje například směrování pouze ladění zpráv na konkrétní protokolovací zdroj.

Například následující řádek v syslog.conf by ladí zprávy ze všech zdrojů na / usr / adm / debug soubor.

# Příklad syslog.conf *. = Debug / usr / adm / debug

The! se používá k vyloučení protokolování stanovených priorit. To ovlivňuje všechny (!) Možnosti určení priorit.

Následující řádky by například zaznamenávaly všechny zprávy poštovního zařízení, s výjimkou těch, které obsahovaly informace o prioritě / usr / adm / mail soubor. A všechny zprávy z news.info (včetně) do news.crit (vyjma) by byly zaznamenány do souboru / usr / adm / zpravodajství soubor.

# Ukázka syslog.conf pošty. *; Mail.! = Info / usr / adm / mail news.info; novinky.! Crit / usr / adm / news

Můžete jej použít intuitivně jako specifikátor výjimek. Výše uvedená interpretace je jednoduše obrácená. Děláte to, můžete použít

mail.none

nebo

pošta.!*

nebo

mail. debug

přeskočit každou zprávu, která je dodávána s poštovním zařízením. Je s tím spousta místa. :-)

The- může být použito pouze k předponu názvu souboru, pokud nechcete synchronizovat soubor po každém zápisu do souboru.

To může vyžadovat určitou aklimatizaci pro ty osoby, které se používají k čistému chování BSD, ale testeři naznačili, že tato syntaxe je poněkud flexibilnější než chování BSD. Všimněte si, že tyto změny by neměly mít vliv na standardsyslog.conf(5) souborů. Musíte speciálně upravit konfigurační soubory, abyste získali vylepšené chování.

Podpora pro vzdálené protokolování

Tyto modifikace poskytují síťovou podporu zařízení syslogd. Síťová podpora znamená, že zprávy mohou být předávány z jednoho uzlu se systémem syslogd do jiného uzlu se systémem syslogd, kde budou skutečně přihlášeni do disku.

K tomu je třeba zadat-r na příkazovém řádku. Výchozí chování je totosyslogd nebude naslouchat síti.

Strategií je naslouchat syslogd na socket domény unix pro lokálně generované zprávy protokolu. Toto chování umožní syslogd spolupracovat se syslog nalezeným v standardní knihovně C. Současně syslogd naslouchá na standardním portu syslog pro zprávy předávané jinými hostiteli. Aby to fungovalo správněslužeb(5) soubory (obvykle nalezené v /atd ) musí obsahovat následující záznam:

syslog 514 / udp

Pokud tato položka chybísyslogd ani nemohou přijímat vzdálené zprávy ani je posílat, protože se otevře port UDP. Místo toho, syslogd okamžitě zemře a vyfouká chybovou zprávu.

Chcete-li způsobit, že zprávy budou předány jinému hostiteli, nahraďte normální řádek souboru syslog.conf soubor s názvem hostitele, ke kterému mají být zprávy odesílány, předplacené znakem @.

Například pro předáváníVŠECHNO zprávy vzdálenému hostiteli pomocí následujícího syslog.conf vstup:

# Ukázkový konfigurační soubor syslogd do # zpráv vzdálenému počítači předá všechny. *. * @hostname

Chcete-li předat všechnyjádro zprávy na vzdáleného hostitele konfigurační soubor bude následující:

# Vzorový konfigurační soubor pro předávání všech zpráv jádra # do vzdáleného hostitele. kern. * @hostname

Není-li vzdálený název hostitele při spuštění možné vyřešit, jelikož server názvů nemusí být přístupný (může být spuštěn po syslogd), nemusíte se obávat.Syslogd pokusí se znovu vyřešit ten název desetkrát a pak si stěžovat. Další možností, jak se tomuto vyhnout, je umístit jméno hostitele v souboru / etc / hosts .

S normálemsyslogdkdybyste odeslali zprávy, které byly přijaty ze vzdáleného hostitele na stejného hostitele (nebo komplikovanější pro třetího hostitele, který ho odešle zpět na první a tak dále). V mé doméně (Infodrom Oldenburg) jsme náhodou dostali jeden a naše disky byly naplněny stejnou jednotnou zprávou. :-(

Chcete-li se tomu v budoucnu vyhnout, žádné zprávy, které byly přijaty ze vzdáleného hostitele, nebudou již odeslány jinému (nebo stejnému) vzdálenému hostiteli. Pokud existují scénáře, kde to nedává smysl, dejte mě (Joey) linku.

Pokud je vzdálený hostitel umístěn ve stejné doméně jako hostitel,syslogd je spuštěn, bude namísto celé fqdn zaznamenáno pouze jednoduché jméno hostitele.

V lokální síti můžete poskytnout centrální protokolový server, aby byly na jednom počítači uloženy všechny důležité informace. Pokud síť sestává z různých domén, nemusíte si stěžovat na protokolování plně kvalifikovaných jmen namísto jednoduchých názvů hostitelů. Možná budete chtít použít funkci strip-domain-s tohoto serveru. Můžete to říctsyslogd odstranit několik domén, než je server, ve kterém je server umístěn, a zaznamenávat pouze jednoduché názvy hostitelů.

Za použití-l možnost je také možnost definovat jednotlivé počítače jako lokální počítače. To také vede k zápisu pouze jejich jednoduchých názvů hostitelů, nikoliv fqdns.

Socketová sada UDP sloužící k předávání zpráv vzdáleným hostitelům nebo přijímání zpráv od nich je otevřena pouze v případě potřeby. Ve verzích před 1.3-23 byla vždy otevřena, ale neotevřená pro čtení nebo předávání.

Výstup do pojmenovaných trubek (FIFOs)

Tato verze syslogd má podporu pro protokolování výstupu do pojmenovaných kanálů (fifos). Fifo nebo pojmenovaná trubka může být použita jako cíl pro zprávy protokolu předáním symbolu pipy (`` | '') k názvu souboru. To je užitečné pro ladění. Všimněte si, že FIFO musí být vytvořen příkazem mkfifo před spuštěním syslogd.

Následující konfigurační soubor přenáší ladicí zprávy z jádra do FIFO:

# Ukázka konfigurace k trasování jádra # zpráv LEN na / usr / adm / debug, což je # pojmenované potrubí. kern. = debug | / usr / adm / debug

Problémy při instalaci

Při instalaci této verze syslogd je pravděpodobně jedna důležitá pozornost. Tato verze syslogd závisí na správném formátování zpráv pomocí funkce syslog. Funkce funkce syslog ve sdílených knihovnách se někde změnila v oblasti libc.so.4 2-4 .n. Zvláštní změnou bylo zpravodajské ukončení zprávy před odesláním zprávy / dev / log zásuvka. Správné fungování této verze syslogd závisí na null-termination zprávy.

Tento problém se obvykle projeví, pokud se v systému používají staré staticky propojené binární soubory. Binární soubory používající staré verze funkce syslog způsobí, že budou zaznamenány prázdné řádky a následně zpráva s prvním znakem v odstraněné zprávě. Přenesení těchto binárních souborů do novějších verzí sdílených knihoven opraví tento problém.

Obasyslogd(8) aklogd(8) může být buď spuštěna z init (8) nebo spuštěna jako součást sekvence rc. *. Je-li spuštěn od initové volby -n musí být nastavena, jinak vy dostanete spousty dyslů syslogů. To je proto, žeinit(8) závisí na ID procesu.

Bezpečnostní hrozby

Existuje potenciál, aby démon syslogd mohl být použit jako vedení pro útok na popření služby. Děkuji Johnovi Morrisonovi ([email protected]), který mě upozornil na tento potenciál. Neopodstatněný program (mer) mohl velmi snadno zaplavit syslogd démon se zprávami syslog, což vedlo k tomu, že soubory s protokoly spotřebovávají veškerý zbývající prostor na souborovém systému. Aktivování protokolování nad zásuvkami domény inet bude samozřejmě vystavovat systém rizikům mimo programy nebo jednotlivce na místním počítači.

Existuje řada metod ochrany stroje:

  1. Implementujte bránu firewall pro omezení, které hostitelé nebo sítě mají přístup k zásuvce 514 / UDP.
  2. Protokolování může být směrováno do samostatného nebo non-root souborového systému, který, pokud je vyplněn, nepoškodí zařízení.
  3. Může být použit souborový systém ext2, který může být nakonfigurován tak, aby omezil určité procento souborového systému na využití pouze root.POZNÁMKA že to bude vyžadovat, aby byl syslogd spuštěn jako proces bez oprávnění root. POZNÁMKA že to zabrání použití vzdálené protokolování, protože syslogd nebude schopen vázat na zásuvku 514 / UDP.
  4. Zakázání soketů domény inet omezuje riziko na místní počítač.
  5. Použijte krok 4, a pokud problém přetrvává a není druhotný k neúspěšnému programu / démonu, dostanete délku sací tyče o délce 3,5 stopy (asi 1 metr) a pohovořte s dotčeným uživatelem. Sucker tyč def. --- 3/4, 7/8 nebo 1in. kalená ocelová tyč s vnějším závitem na obou koncích. Primární použití v ropném průmyslu v západní části Severní Dakoty a dalších místech, kde se čerpá "olej" z ropných vrtů. Sekundární využití se týká stavby krmných krmiv pro dobytek a jednání s občasnými nepoctivými nebo bojujícími jednotlivci.

Ladění

Při ladění je zapnuto pomocí-d pak možnostsyslogd bude velmi podrobný psaním hodně z toho, co dělá na stdout. Vždy, když se konfigurační soubor přečte a znovu analyzuje, uvidíte tabulku, která odpovídá interní datové struktuře. Tato tabulka obsahuje čtyři pole:

číslo

Toto pole obsahuje sériové číslo začínající nulou. Toto číslo představuje polohu ve vnitřní struktuře dat (tj. Pole). Pokud je jedno číslo vynecháno, může dojít k chybě v odpovídajícím řádku /etc/syslog.conf .

vzor

Toto pole je složité a představuje přesně vnitřní strukturu. Každý sloupec představuje zařízení (vizsyslog(3)). Jak můžete vidět, stále existují nějaké zázemí, které jsou pro staré použití libovolné, používá se pouze levá většina. Každé pole ve sloupci představuje priority (vizsyslog(3)).

akce

Toto pole popisuje konkrétní akci, ke které dochází při každém přijetí zprávy, která odpovídá vzoru. Odkazovat nasyslog.conf(5) manuál pro všechny možné akce.

argumenty

Toto pole obsahuje další argumenty pro akce v posledním poli. Pro protokolování souborů je to název souboru pro logfile; pro protokolování uživatele je to seznam uživatelů; pro vzdálené protokolování se jedná o název hostitele, na který se má stroj přihlásit; pro protokolování konzoly je to používaná konzola; pro tty-logging to je specifikovaný tty; stěna nemá žádné další argumenty.

Viz též

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

Spolupracovníci

Syslogd je odvozen z zdrojů BSD, Greg Wettstein ([email protected]) provedl port do Linuxu, Martin Schulze ([email protected]) opravil některé chyby a přidal několik nových funkcí.Klogdpůvodně napsal Steve Lord ([email protected]), Greg Wettstein dělal velké zlepšení.

Dr. Greg WettsteinVývoj enjelických systémů

Výpočetní technika oddělení onkologického výzkumuRoger Maris Cancer CenterFargo, ND[email protected]

Stephen TweedieKatedra informatikyEdinburghská univerzita, Skotsko[email protected]

Juha Virtanen[email protected]

Shane Alderton[email protected]

Martin SchulzeInfodrom Oldenburg[email protected]

Důležité: Použijte muž příkaz ( % muž ), abyste zjistili, jak je v daném počítači použit příkaz.

Související články

  • sysklogd - příkaz Linux - příkaz Unixu
  • rwall - Co je rwa