přejít na obsah přejít na navigaci

Linux E X P R E S, Podívejte se do logu! Ale kam?!

Podívejte se do logu! Ale kam?!

kde.png

Pokud v systému všechno neklape, jak má (což se čas od času stane), hledá člověk informace, které mu napoví, kde hledat chybu. V Linuxu není problém tyto informace získat, je ale potřeba vědět, kde jsou.


Démony, služby, servery

Služby, servery, démony. Všechny výrazy označují v principu zhruba totéž - program běžící v systému a poskytující konkrétní funkce jiným programům. Příkladem může být webový server Apache, síťový server Samba, tiskový server CUPS, služba pro šifrované spojení mezi počítači SSH, X server starající se o běh grafického prostředí a desítky dalších. Některé se spouštějí automaticky při startu, aby poskytovaly základní funkce systému, jiné se spouštějí na požádání, další může uživatel spustit ručně (a opět je zastavit).

Obrázek:  12.jpg

Správa služeb v Mandriva Linuxu 2008.0

Každá služba vypisuje kvantum informací. Mohou být na úrovni "nula", tj. pouze kritické chyby, ale mohou být také na úrovni "deset", což znamená, že je zaznamenána každá operace, a to i ta, která není chybová. Hodnota tohoto intervalu je často nastavena dostatečně a i základní úroveň postačí k identifikaci chybového stavu. Ale kam se to všecho zapisuje?

Log znamená "záznam". Jedná se o soubor na disku, kam zapisuje jeden nebo více programů svá (chybová) hlášení. K některým má přístup pouze uživatel root, k jiným také běžný uživatel.

Mezi takové služby samozřejmě patří také logovací démon. Jedná se o program, který přijímá chybová hlášení ostatních démonů (serverů, služeb) a ukládá je do textových souborů. Ty jsou uloženy v čitelné podobě, ovšem je nutné vědět, co hledáme, jinak se jedná o hromadu nesrozumitelného technického textu (samozřejmě v angličtině). Nejčastější a nejznámější logovací službou (logger) je syslog a případně jeho následník syslog-ng (new generation, nové generace).

Slovo "blog", označující deníček na internetu, vzniklo spojením slov "web" a "log". Tedy zaznamenávání událostí osobního charakteru do deníku, který může číst na internetu kdokoliv.

Výstupem hlášení téměř všech démonů bývá soubor /var/log/messages, který je přístupný pouze pro uživatele root. Aby se do něj občas mohl podívat také běžný uživatel, existuje příkaz dmesg, jenž obsah souboru vypíše. Kromě tohoto souboru ovšem existují i další logy jednotlivých démonů, kde lze hledat (obvykle jako root) podrobnější informace. Pochopitelně je obvyklé číst je z konzole, ale existuje také pohodlný grafický nástroj - i k jeho spuštění je nutné znát heslo roota.

Obrázek:  1.jpg

Ke spuštění je nutný root

Logy pohodlně

Onen program se nazývá KSystemLog a zřejmě jej využijete v případě, kdy vás bude zlobit nějaká softwarová služba. S jeho pomocí získáte přehled o tom, co se v systému děje. Možná jej ovšem budete muset trochu nastavit.

Obrázek:  2.jpg

Aplikace se zobrazeným logem

V nastavení programu lze totiž určit, jak přesně se jednotlivé logy nazývají - jejich jména se v různých distribucích mohou nepatrně lišit, např. mívají (nebo naopak nemívají) příponu log. Program je zatím anglicky, ale jeho rozhraní je srozumitelné - stačí vybrat Settings-Configure KSystemLog, zobrazí se okno se sekcemi. Každá sekce odpovídá jedné, nejčastěji používané, službě.

Obrázek:  3.jpg

Hlavní logovací soubor messages

Soubor se logy se nacházejí v adresáři /var/log/ a tam je také program hledá. Pokud některý soubor nenalezne, zobrazte si obsah adresáře a zkuste zjistit, jestli soubor existuje a jak se přesně jmenuje (může být i v podadresáři). Na obrázku je chybové hlášení o chybějícím logu ACPI démonu (v mém systému není).

Obrázek:  4.jpg

Log pro ACPI démon nenalezen....

Obrázek:  5.jpg

...protože neexistuje

Kromě standardních logů si můžete přidat také ty, se kterými autoři KSystemLogu nepočítali - slouží k tomu sekce Daemons Log. Stačí vybrat soubor s hlášeními a vložit jej do sekce. Každý soubor má u svého jména ikonu, která naznačuje jeho obsah. Existuje někoik ikon, protože existuje více typů těchto souborů (to je v podstatě ta úroveň ukládaných informací zmiňovaná na začátku). Soubor tedy může obsahovat

  • ladicí informace (debug)
  • informace (information)
  • upozornění (notice)
  • varování (warning)
  • error (chyby)
  • kritická hlášení (critical)
  • poplach (alert)
  • stav nouze (emergency)

Obrázek:  6.jpg

Typy hlášení v souborech

Tyto ikony jsou zobrazovány u jednotlivých položek v záznamu - program totiž načte všechny soubory z jedné sekce a zobrazí je v okně. Pomocí ikon (a změny barvy písma) je hned vidět, zda se jedná pouze o varování, informaci, běžnou chybu nebo přímo poplach. Sekce se načítají v nabídce Logs.

Obrázek:  7.jpg

Načtení záznamů ze sekce Daemons

Aplikace je ale samozřejmě chytřejší - některé záznamy obsahují slovo "warning", "failed", "error" nebo další. I tyto řádky jsou zobrazeny s patřičnou ikonou, i když typ souboru je zvolen jako "information" nebo jiný. Zkrátka ihned vidíte, kde vás tlačí boty (nebo jak se to říká :-)).

Obrázek:  8.jpg

Různé typy chybových hlášení

KSystemLog umožňuje načíst více souborů s logy a zobrazit je v kartách (tabech).

Obrázek:  9.jpg

Různé logy v kartách

Jednotlivé záznamy je možné sdružovat podle jejich typu, data nebo souboru, odkud pocházejí. A protože se stále aktualizují, chyby nebo varování se mohou shlukovat hned nahoře, abyste je měli na očích. V záznamech lze samozřejmě za běhu vyhledávat a filtrovat je tak.

Obrázek:  10.jpg

Shlukování dat podle typu

Obrázek:  11.jpg

Filtrování záznamů

Chytáme chyby v grafickém prostředí

Aplikace spouštěné v grafickém prostředí zapisují (hojně) svá hlášení a chyby do souboru .xsession-errors, který se nachází v domovském adresáři uživatele. Chcete-li např. zjistit, který program hlásil chybu, otevřete konzoli (např. konsole, xterm) a napište

$ grep "error" .xsession-errors

Výsledkem bude výpis záznamů ze souboru obsahujících slovo "error". Celý soubor zobrazíte pomocí

$ cat .xsession-errors

Jeho konec pomocí

$ tail .xsession-errors

Posledních 20 záznamů pomocí

$ tail -n 20 .xsession-errors

A pokud chcete v terminálu sledovat aktuální změny (každou sekundu) na konci tohoto souboru, tedy chyby, které se objevují, použijte příkaz

$ watch -n1 tail -n 20 .xsession-errors 

Je to efektivní? Je, protože s šikovným apletem nebo úpravou můžete mít tento výpis na ploše!

Ještě praktický tip na závěr

Tip je sice pro konzoli, ale velmi se mi osvědčil. Na začátku jsem mluvil o programu syslog, který dělá na pozadí "tu špinavou práci". A všimli jste si jistě, že máte k dispozici terminály 1 až 6, na sedmém běží grafické prostředí. Na terminály se přepnete pomocí Ctrl-Alt-F1, Ctrl-Alt-F2 atd., mezi nimi stačí Alt-F1, Alt-F2. Co vidíte na dvanáctém terminálu? Černočernou tmu? A co kdyby...?

Ano, terminál lze využít pro hlášení syslogu! :-) Stačí jako root upravit soubor /etc/syslog.conf a na jeho konec dopsat řádek

*.* /dev/tty12

Předchozích řádků si nevšímejte, maximálně se z nich můžete dozvědět kdo, kam, co a na jaké úrovni informací loguje. Při dalším startu systému (nebo po restartu služby syslog) se stačí přepnout na dvanáctou konzoli pomocí Ctrl-Alt-F12 a divit se, co všechno vám démony, služby, servery a samotné jádro vašeho systému píše. Ještěže to nemusíte číst - máte na to přece výkonné pomocníky.

Samozřejmě existují další způsoby, jak se nechat informovat o dění ve svém systému. Účelem článku bylo poskytnout návod, jak máte reagovat, když na vás někdo vybafne: "A co ti to píše za chyby?" Napište do diskuze, jak sledujete hlášení svého systému vy, nebo co vám v článku chybí.

Nahoru

Odkazy

Příspěvky

Podívejte se do logu! Ale kam?!
Lucky62 17. 03. 2008, 13:20:20
Odpovědět  Odkaz 
V mojej Fedore 8 neexistuje súbor /etc/syslog.conf.
Ale mám /etc/rsyslog.conf ...
Vlastimil Ott Re:Podívejte se do logu! Ale kam?!
Vlastimil Ott 17. 03. 2008, 17:03:31
Odpovědět  Odkaz 
Je to jiný program (http://www.rsyslog.com) založený na syslogu. Tipuji, že se bude chovat v mnoha ohledech podobně.
Podívejte se do logu! Ale kam?!
Leonardo 12. 10. 2008, 19:59:46
Odpovědět  Odkaz 
I když múj syslog ( s podivením) zaznamenává logy občas i v češtině je mi to na nic,protože jsem ještě nikde nenarazil na článek o tom,co se píše v lozích?!
HmHm
Grinhilda 23. 06. 2009, 16:16:07
Odpovědět  Odkaz 
Odkedy dmesg vypisuje /var/log/messages? Som bol v tom ze vypisuje zaznamovy buffer jadra.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz