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).
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.
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.
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ě.
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í).
Log pro ACPI démon nenalezen....
...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)
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.
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á :-)).
Různé typy chybových hlášení
KSystemLog umožňuje načíst více souborů s logy a zobrazit je v kartách (tabech).
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.
Shlukování dat podle typu
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í.