Systémové protokoly jsou vaším nejlepším přítelem, když chcete odstraňovat chyby. Zde je vše, co potřebujete vědět o sledování protokolů na Ubuntu.

Je to velmi frustrující, když váš počítač nefunguje správně a vy nevíte proč. I když neexistují snadná řešení každého problému, se kterým se můžete v Ubuntu setkat, můžete použít zdroje, jako jsou protokoly chyb Ubuntu, k odstraňování problémů a diagnostice potíží s počítačem.

Co jsou protokoly Ubuntu?

Ubuntu logy jsou komplexní soubory které ukládají záznamy o všech událostech, které nastanou ve vašem počítači. Zahrnuje zaznamenané informace o vašem hardwaru, operačním systému a dokonce i některém vašem softwaru.

Tyto protokoly jsou neocenitelné pro proces odstraňování problémů a diagnostiky. Poskytují informace, jako jsou časová razítka, kontext a podrobné podrobnosti o událostech, které se vyskytují ve vašem systému. Abyste mohli tyto protokoly používat, musíte nejprve vědět o nejdůležitějších typech.

Typy protokolů Ubuntu

Spíše než zapisování každého bitu informací do jednoho protokolu, Ubuntu zaznamenává informace do samostatných protokolů určených pro různé účely. I když existuje příliš mnoho protokolů na seznam, existuje několik důležitých protokolů (a typů protokolů), o kterých byste měli vědět, než se je pokusíte použít k řešení problémů.

Snad nejvýraznějším ze všech protokolů je systemd journal. systemd je integrální správce služeb v Linuxu. V důsledku toho jsou problémy s mnoha různými službami operačního systému zaznamenány v žurnálu systemd. Pomocí tohoto protokolu můžete procházet příkaz journalctl.

Velmi důležité jsou také systémové protokoly. Tyto protokoly se přímo týkají různých částí Ubuntu a mohou zahrnovat věci jako systémové zprávy. Některé ze systémových protokolů zahrnují:

  • Autorizační protokol: Každý proces, který vyžaduje autorizaci, jako je příkaz sudo nebo přihlášení uživatele, bude zaznamenán do tohoto protokolu.
  • Deník démonů: Tento protokol se týká všech služeb na pozadí (nebo démonů), jako je Bluetooth a SSH.
  • Protokol ladění: Tento protokol poskytuje informace o ladění poskytované systémem a také aplikacemi, které se přihlašují do syslogd.
  • Protokol jádra: Tento protokol obsahuje záznamy o aktivitě týkající se linuxového jádra.
  • Systémový protokol: Tento protokol ukládá záznamy, které zahrnují většinu typů globální aktivity ve vašem systému.
  • Záznam selhání: Tento protokol ukládá záznamy neúspěšných přihlášení, což je zvláště užitečné pro kontrolu, zda se někdo nepokusil proniknout do vašeho systému.

Váš počítač může mít také protokoly aplikací (jako jsou soubory protokolu Apache nebo soubory protokolu MySQL) uložené v /var/log adresář. Můžeš použijte příkaz ls zobrazit všechny soubory protokolu aktuálně uložené ve vašem počítači:

ls /var/log

Jak číst protokoly na Ubuntu

Nyní, když jste obeznámeni s různými typy protokolů ve vašem systému, jste připraveni ponořit se do informací, které ukládají. Než začnete, je důležité si uvědomit, že ne všechny systémové protokoly jsou zapsány stejným způsobem.

Některé protokoly jsou uloženy jako soubory ve formátu prostého textu, zatímco jiné protokoly jsou uloženy jako binární soubory. Pokud chcete efektivně analyzovat záznamy ve vašem systému, budete se muset seznámit s oběma typy souborů – a s nástroji příkazového řádku, se kterými jsou spárovány.

Protokoly souborů v prostém textu používají šablonu známou jako RSYSLOG_TraditionalFileFormat a zahrnují čtyři základní pole: časové razítko, název hostitele, aplikaci a zprávu. Například protokol jádra používá tuto šablonu:

Na rozdíl od protokolů ve formátu prostého textu nelze protokoly binárních souborů tak snadno číst. Budete muset použít nástroje příkazového řádku, jako je SZO, poslední, a lastb pro čtení protokolů jako utmp, wtmp a btmp. Příkazy jako utmpdump pro varianty utmp a systemctl pro journald jsou také navrženy tak, aby tiskly informace binárního protokolu v čitelném formátu.

Ve většině situací bude důležité vědět, jak tyto protokoly efektivně analyzovat v terminálu. Můžete použít příkazy jako grep a tail k získání konkrétních informací, aniž byste museli pracně číst celé vaše systémové protokoly.

Některé z nejlepších příkazů, které můžete použít, zahrnují:

  • grep: Vyhledá řetězec znaků v souboru
  • ocas: Vytiskne 10 řádků od konce souboru
  • hlava: Vytiskne 10 řádků od začátku souboru
  • seřadit: Vytiskne soubor reorganizovaný podle vašich požadavků

Nástroje příkazového řádku, jako je utmpdump a systemctl, mají také užitečné příznaky, které byste měli mít na paměti při práci v terminálu. Tyto příznaky vám umožní upravit příkaz a mít větší kontrolu nad tím, co se vytiskne v terminálu.

Některé zvláště užitečné příznaky pro příkaz journalctl jsou:

  • -b: Způsobí, že journalctl vrátí pouze záznamy shromážděné po posledním restartu
  • --od „RRRR-MM-DD HH: MM: SS“ --do „RRRR-MM-DD HH: MM: SS“: Instruuje journalctl, aby vrátil záznamy pouze před a/nebo po zadaných datech
  • -p NUM: Filtruje položky podle jejich úrovní priority syslog (v rozsahu od 0/emerg do 7/debug)

Odstraňování problémů s protokoly Ubuntu

Nyní, když jste obeznámeni s různými typy systémových protokolů a víte, jak je číst efektivně, jediné, co zbývá udělat, je použít informace, které jste shromáždili, na řešení problémů proces. Tento proces obvykle vyžaduje určitou kreativitu.

Je dobré přistupovat k řešení problémů tak, že se nejprve zamyslíte nad významnými charakteristikami problému, který řešíte. Dochází k problému, když otevřete určitou aplikaci? Zhroutí se váš systém a restartuje se pokaždé, když se vyskytne problém?

Když se zamyslíte nad charakteristikou problému, přirozeně vás to přivede k některým z nejlepších protokolů pro sbírání informací o něm. Pokud má váš systém například problémy během procesu zavádění, můžete získat některé užitečné informace odkazem na zaváděcí položky v journald.

Chcete-li vytisknout všechna zaprotokolovaná bootování v journald, zadejte následující příkaz:

journalctl --list-boots

Terminál vytiskne seznam zaznamenaných bootů; nejnovější boty najdete na konci seznamu. Podívejte se na zaznamenaná data a časy každého spouštění, dokud nenajdete zaprotokolované spouštění, kde došlo k chybě.

Vezměte číslo ze sloupce zcela vlevo jako NUM a zadejte následující příkaz, abyste získali další informace o spouštění:

journalctl -b -NUM -n

Zobrazí se komplexní záznam informací o bootu. Pokud se během spouštění vyskytly nějaké neobvyklé chyby, můžete informace z tohoto záznamu použít k tomu, abyste se dostali o krok dále při jejich odstraňování.

Stejný princip platí pro mnoho dalších problémů. Pokud však o problému, se kterým se váš počítač potýká, moc nevíte, může být obtížné zjistit, kde začít. Existuje několik protokolů, které vynikají jako zvláště užitečné pro širokou škálu problémů se systémy Ubuntu.

syslog je nejlepší protokol pro začátek během procesu odstraňování problémů. Vzhledem k tomu, že se v podstatě jedná o globální protokol, je velmi pravděpodobné, že obsahuje nějaké informace o problému, který řešíte. Pokud máte problémy s ověřováním (např chyba nefunguje heslo sudo, například) nebo bootování, pak zkontrolujte auth.log nebo boot.log.

Prohledávejte nejrelevantnější protokoly s klíčovými slovy souvisejícími s vaším problémem. Pokud máte například problémy s ověřováním, můžete načíst záznamy z auth.log pomocí následujícího příkazu:

cat /var/log/auth.log | grep 'Selhání ověření'

Nakonec jistě najdete informace, které nabízejí vynikající přehled. Když spárujete informace z chybových protokolů s výzkumem na webu, velmi pravděpodobně najdete zdroje, které vám pomohou vyřešit problémy s vaším systémem během okamžiku.

Podívejte se na online zdroje pro odstraňování chyb v systému Linux

Procesem odstraňování problémů nemusíte projít sami. Při shromažďování informací o problému s počítačem byste měli používat online zdroje, jako je Požádejte Ubuntu a podrobné průvodce na MakeUseOf, abyste se přiblížili konečné diagnostice a opravě vašeho PC.