GNU/Linux >> Znalost Linux >  >> Linux

3 způsoby, jak sledovat protokoly v reálném čase v Linuxu

Víte, jak prohlížet soubory v Linuxu. Pro tento účel používáte příkaz cat nebo pravděpodobně méně příkaz.

To je dobré pro soubory se statickým obsahem. Soubory protokolu jsou však dynamické a jejich obsah se s časem mění. Chcete-li sledovat protokoly, musíte sledovat soubor protokolu, jak se mění jeho obsah.

Jak vidíte obsah souborů protokolu v reálném čase? Tail je nejoblíbenější příkaz pro tento účel, ale existují i ​​​​některé další nástroje. Ukážu vám je v tomto tutoriálu.

Metoda 1:Sledujte soubory protokolu pomocí příkazu tail

Příkaz tail je tak populární pro prohlížení souborů protokolu v reálném životě, že správci systému používají termín 'tail the log file'.

Příkaz tail se v podstatě používá k zobrazení řádků souboru od konce, a proto se používá výraz 'tail'.

Můžete použít -f možnost sledovat konec souboru, což znamená, že bude průběžně zobrazovat nové řádky přidané do souboru.

tail -f location_of_log_file

Chcete-li zastavit omezování souboru protokolu, použijte Ctrl+C zkratka terminálu.

Ocas a grep

V pořádku! Takže příkaz tail řeší problém zobrazením změn souboru v reálném životě. Ale neustálé sledování souboru protokolu, když se v reálném čase děje tolik rychlých změn, není příliš užitečné.

Při sledování souboru protokolu budete často hledat konkrétní termín. Zjistit to v záplavě příchozích nových linek je téměř nemožné.

Pro usnadnění práce zkombinujte příkaz tail a grep takto:

tail -f log_file | grep search_term

To je dobré, že? Pojďme to trochu vylepšit.

Často jsem zjistil, že jen řádky s hledanými výrazy neodhalí potřebné detaily. To je důvod, proč používám příkaz grep k zobrazení několika řádků před a za hledaným výrazem s volbou -C .

tail -f log_file | grep -C 3 search_term

Nyní uvidíte řádky odpovídající hledanému výrazu spolu se 3 řádky před a za ním. To poskytne lepší pohled na to, co se děje.

Chcete to ještě vylepšit? Můžete grep na více hledaných výrazů a dokonce z toho udělat vyhledávání bez rozlišení velkých a malých písmen:

tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

Upravení souboru pomocí rotace protokolu

Pokud pracujete na podnikovém serveru, je pravděpodobné, že se protokoly střídají. To znamená, že jakmile aktuální soubor protokolu dosáhne určité velikosti, bude přejmenován a zazipován.

To vytváří problém, pokud sledujete soubor protokolu v reálném čase. Ve výchozím nastavení pracuje příkaz tail na deskriptoru souboru. Pokud se aktuální soubor protokolu otočí, příkaz tail bude nyní ukazovat na archivovaný soubor protokolu, který nyní nebude zaznamenávat žádné změny.

Řešením je sledovat log soubor podle jeho názvu. Tímto způsobem, i když dojde k rotaci protokolu, bude konec ukazovat na aktuální soubor protokolu (protože jeho název se nikdy nemění).

tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

Tohle je teď mnohem lepší. Až budete příště sledovat soubor protokolu, použijte jej tímto způsobem, abyste jej mohli efektivněji monitorovat.

Tail je fajn pro monitorování souboru protokolu v reálném čase, ale co když musíte analyzovat více souborů protokolu současně? Odpověď se nachází v další části.

Sledování více souborů protokolu s ocasem

To by mělo fungovat v systémech Linux. Pomocí příkazu tail můžete sledovat více souborů protokolu současně. Stačí zadat cestu k souboru tímto způsobem:

tail -f log_file_1 -f log_file_2

Uvidíte, že se začnou zobrazovat změny v reálném čase spolu s názvem souboru před ním, takže můžete rozlišovat mezi různými zdroji protokolů.

Existuje o něco lepší způsob, jak zobrazit více souborů protokolu najednou pomocí nástroje multitail.

Metoda 2:Monitorování více souborů protokolu najednou pomocí multitail

Multitail, jak název napovídá, se používá k zobrazení více souborů najednou.

Co je velký problém? Příkaz ocas může také udělat totéž, že?

Ale Multitail má oproti konvenčnímu ocasnímu příkazu určitou výhodu. Zobrazuje soubory v rozdělených pohledech a dokonce můžete zobrazit různé soubory v různých řádcích a sloupcích.

Pamatujte, že ocas ukazuje vše ve stejném pohledu a to je obtížné sledovat. Multitail překonává tento problém tím, že poskytuje rozdělené zobrazení jako příkaz screen.

Multitail není nezbytný příkaz jako tail a možná jej budete muset nainstalovat, než jej použijete.

Můžete mu poskytnout několik souborů, ale myslím, že více než 3 soubory by bylo obtížné sledovat najednou.

multitail log_file_1 log_file_2

Ve výchozím nastavení multitail funguje stejně jako tail -f . Zobrazí posledních 100 řádků a poté přejde do zobrazení v reálném čase. Ve výchozím nastavení rozdělí pohled na řádky.

Stisknutím tlačítka b otevřete okno výběru a vyberte soubor protokolu podle svého výběru, abyste jej zobrazili a procházeli jej pro další a hlubší analýzu.

Stiskněte q pro ukončení ze všech druhů pohledů v multitailu.

Pohledy můžete rozdělit do sloupců takto:

multitail -s 2 log_file_1 log_file_2

Mezi -s je povinná mezera a počet sloupců.

Multitail je schopen dělat některé další věci, ale v tomto tutoriálu nebudu zabíhat do těchto detailů.

Doposud jste viděli dva způsoby monitorování souborů protokolu. Existuje další, ale méně konvenční způsob, jak vidět změny souborů v reálném životě, a to je použití příkazu less

Metoda 3:Zobrazení změn souboru protokolu v reálném čase s méně příkazy

Příkaz less je více pro čtení textových souborů bez zahlcení obrazovky. Může být také použit pro čtení souborů se změnami v reálném čase.

Možnost +F umožňuje méně sledovat změny provedené v textovém souboru.

less +F log_file

Otevírá soubory protokolu se změnami, které se do něj zapisují, a zobrazují se v reálném čase.

Stiskněte Ctrl+c pro přerušení a q pro ukončení zobrazení.

Tato metoda vám na rozdíl od příkazu tail umožňuje rychlý pohled na změny protokolu, aniž byste zaplňovali obrazovku.

Závěr

Tato metoda monitorování souborů protokolu v Linuxu funguje pro tradiční textové soubory protokolu. U systémových protokolů stále existují syslogy, ale mnoho linuxových distribucí přešlo na protokoly žurnálu a k zobrazení analýzy protokolů žurnálu musíte použít příkazy journalctl.

Kromě toho existují další sofistikované nástroje jako Graylog pro analýzu protokolů na hlubší úrovni s řídicími panely a grafy. Více o tom v některém jiném článku.

Doufám, že jste se z tohoto zdánlivě snadného tématu o monitorování protokolů v reálném čase v Linuxu naučili pár nových věcí. Vaše zpětná vazba je vítána.


Linux
  1. Otočte a archivujte protokoly pomocí příkazu logrotate systému Linux

  2. Analýza zvuku v reálném čase v Linuxu

  3. Jak Linux používá hodiny reálného času?

  1. Jak používat příkaz tail k zobrazení protokolů v reálném čase

  2. Příkazy pro přístup k souborům v Linuxu – najdi, seřaď, zamiř, ocas

  3. Jak aplikovat filtr na výstup `tail -f` v reálném čase?

  1. Jak prohlížet a číst soubory protokolu Linux

  2. Sledujte souborový systém v reálném čase na OS X a Ubuntu

  3. Zobrazení protokolů na vzdáleném linuxovém serveru