Znalostní báze Jednoduchý návod pro práci se službou Profitserver
Hlavní Znalostní báze Jak číst protokoly Linuxu a kde je najít

Jak číst protokoly Linuxu a kde je najít


Když narazíte na nějaké problémy s výkonem vašeho serveru, první věc, kterou chcete udělat, je udělat zkontrolujte své protokoly Linuxu. V systémovém protokolu můžete najít užitečné diagnostické zprávy od různých součástí operačního systému, jako je jádro nebo různé služby, takže příčinu selhání s největší pravděpodobností najdete tam.

Každá zpráva v protokolu je generována jako výsledek určitých událostí v operačním systému: od uživatele, autorizace až po vypnutí služby nebo selhání aplikace. Tyto události mají různé priority v závislosti na tom, jak jsou kritické. V Linuxu existují následující typy událostí:

  1. emerg - selhání, nejvyšší priorita;
  2. alert - naléhavé varování;
  3. crit - kritická událost;
  4. err - běžná chyba;
  5. warn - běžné varování;
  6. notice - oznámení;
  7. info - informační zpráva;
  8. debug - informace o ladění;

V současné době jsou hlavními službami sklizně protokolů v Linuxu rsyslog a systemd-journald. Hodí se k většině moderních distribučních balíčků a fungují samostatně.

rsyslog

Protokoly této služby jsou umístěny v „/ var / log /” ve formě běžných textových souborů. Zprávy protokolu se v závislosti na typu události ukládají do různých souborů. Například „/var/log/auth.log“ obsahuje informace o autorizaci uživatelů v systému a „/var/log/kern.log” obsahuje zprávy jádra. Názvy souborů se mohou v různých distribučních balíčcích lišit, takže se podívejme na konfigurační soubor, abychom získali představu, co je kde “/etc/rsyslog.d/50-default.conf".

Сбор логов Linux утилитой rsyslog

Tato pravidla zobrazují, který soubor obsahuje jednotlivé typy zpráv protokolu. V levé části je zobrazen typ zprávy v následujícím tvaru „[Zdroj].[Priorita]“ a v pravé části se zobrazí název souboru protokolu. Při psaní typu zprávy „*lze přidat znak “. Znamená prázdnou hodnotu nebo “žádný“, která jej odstraní ze seznamu. Podívejme se blíže na první dvě pravidla.

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

První pravidlo znamená, že všechny zprávy přijaté z autorizačního mechanismu budou zaznamenány do „/var/log/auth.logDo tohoto souboru budou registrovány všechny pokusy o autorizaci (úspěšné i neúspěšné). Druhé pravidlo znamená, že všechny zprávy kromě těch, které jsou spojeny s autorizací, budou zaznamenány do „/ var / log / syslog”. Tyto dva soubory jsou obvykle nejoblíbenější. Následující pravidla definují cestu k ukládání protokolů jádra “kern.*“ a protokoly poštovních služeb “mail.*"

Soubory protokolu lze otevřít pomocí libovolného textového editoru, např méně, kočka, ocas. Pojďme otevřít „/var/log/auth.log

less /var/log/auth.log
Запись в лог-файле Линукс о неудачной попытке авторизации SSH

Každý řádek souboru je samostatná zpráva přijatá z aplikace nebo služby. Všechny zprávy bez ohledu na jejich zdroj mají jeden formát a skládají se z 5 částí. Vezměme si jako příklad zvýrazněnou zprávu na snímku obrazovky.

  1. Časové razítko zprávy – „12. února 06:18:33“
  2. Název počítače, který zprávu odeslal – „vds“
  3. Název aplikace nebo služby, která zprávu odeslala – „sshd“
  4. ID procesu – [653]
  5. Text zprávy – “Přijaté heslo pro mihail z 188.19.42.165 port 2849 ssh2”

Toto byl příklad úspěšného připojení k SSH.

A takto vypadá neúspěšný pokus o přihlášení:

Читаем логи Linux

Tento soubor také zaznamenává příkazy s pokročilými oprávněními

Как правильно прочитать лог Linux

Pojďme otevřít / var / log / syslog soubor

Zvýrazněná zpráva na snímku obrazovky je zpráva o vypnutí síťového rozhraní.

Утилита logorotate

Pro vyhledávání informací pomocí dlouhých textových souborů použijte grep utility. Můžete najít všechny zprávy přijaté od pptpd služba v „/ var / log / syslog“.

grep 'pptpd' /var/log/syslog
файл “/etc/logrotate.d/rsyslog”

Během diagnostiky můžete použít ocas nástroj, který dokáže zobrazit několik posledních řádků souborů. příkaz "tail -f / var / log / syslog“ vám umožní sledovat záznam protokolů v reálném čase.

Služby rsyslog je velmi flexibilní a výkonný. Lze jej použít pro těžbu protokolů v místních systémech i na podnikové úrovni. Kompletní dokumentaci najdete na oficiálních stránkách https://www.rsyslog.com/

Rotace protokolů v Linuxu

Záznam protokolu probíhá nepřetržitě, takže velikost souborů neustále roste. Rotační mechanismus zajišťuje automatickou archivaci starých protokolů a vytváření nových souborů. V závislosti na pravidlech se to může stát denně, týdně, měsíčně nebo podle limitu velikosti. Při vytváření nových protokolů lze staré protokoly pouze smazat nebo odeslat e-mailem. Rotace protokolů se provádí pomocí logrotate utility. Hlavní konfiguraci najdete v „/etc/logrotate.conf“. Obsah souborů je také zpracováván v “/etc/logrotate.d/”Složka

Nová pravidla lze přihlásit do hlavního konfiguračního souboru. Nejlepší je však vytvořit samostatný soubor v „/etc/logrotate.d/Ve výchozím nastavení je v tomto adresáři několik souborů

Настраиваем ротацию логов в Линукс

Pojďme se podívat na soubor “/etc/logrotate.d/rsyslog", který obsahuje pravidla rotace pro protokoly rsyslog služby.

Пример вывода всех ошибок pptpd v лог-файлах

Nejprve by pravidlo mělo obsahovat cestu k souboru protokolu a poté všechny pokyny v zakřivených závorkách.

  • otočit 7 - počet souborů k uchování - 7
  • denní - každý den vytvořit nový soubor
  • komprimovat - komprimovat a archivovat staré soubory
Учимся читать логи Линукс

Na snímku obrazovky můžete vidět, že v „/ var / log /"složka tam je hlavní protokol"syslog” a 7 archivů, což odpovídá pravidlům v konfiguračním souboru.

Podrobnější popis logrotate naleznete v manuálu spuštěním příkazu „man logrotate“příkaz

Shromažďování protokolů Linuxu - journald

Služba těžby protokolů systemd-journald je součástí inicializačního systému systemd. Soubory protokolu Linux jsou uloženy v „/var/log/journal/” ve speciálním formátu a lze jej otevřít pomocí journalctl utility. Formát záznamů je přesně stejný jako v rsyslog.

Příkaz journalctl bez atributů zobrazí všechny záznamy, ale není vhodný pro větší protokoly. Pojďme se podívat na některé možnosti této utility.

  • journalctl -b - zobrazit všechny záznamy od posledního spuštění
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - zobrazit záznam v určitém časovém období
  • journalctl -u pptpd - zobrazit záznamy určité služby
  • journalctl -k - zobrazit zprávy jádra
  • journalctl -p err - zobrazit zprávy s určitou prioritou, v tomto případě zprávy s vyšší prioritou (crit, alert, emerg)
  • journalctl -f - zobrazit zprávy v reálném čase

Pro lepší flexibilitu můžete tyto možnosti kombinovat. Pojďme si ukázat všechny chyby pptpd servis

journalctl -u pptpd -p err
утилита poslední

Pokud zadáte cestu ke spustitelnému souboru jako atribut, nástroj zobrazí všechny zprávy odeslané tímto souborem. Ukážeme všechny zprávy odeslané souborem “/usr/bin/sudo” od 04:15 dne 18. února 2020. Ve skutečnosti zobrazí všechny příkazy provedené s vyššími oprávněními.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
командой lastb

Chcete-li zjistit, kolik místa na disku zabírají soubory protokolu k provedení následujícího příkazu

journalctl --disk-usage

Chcete-li omezit soubor protokolu na 1 Gb, proveďte následující příkaz

journalctl --vacuum-size=1G

Otevírání binárních souborů

Nyní se podívejme na některé speciální soubory v „/ var / log /Tyto soubory jsou binární a lze je otevřít pouze pomocí speciálních programů.

/ var / log / wtmp obsahuje informace o úspěšných pokusech o přihlášení. K otevření použijte poslední nástroj.

утилита lastlog

/var/log/btmp - obsahuje všechny neúspěšné pokusy o přihlášení. Lze jej otevřít pomocí lastb s pokročilými oprávněními. Atribut -n definuje počet řádků zobrazených od konce souboru.

/var/log/lastlog - obsahuje čas poslední akce přihlášení pro každý záznam účtu. Lze jej otevřít pomocí poslední protokol

❮ Předchozí článek Jak nakonfigurovat síťová rozhraní v CentOS
Další článek ❯ Linuxové textové editory

Zeptejte se nás na VPS

Jsme vždy připraveni zodpovědět vaše dotazy v kteroukoli denní i noční dobu.