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


Pokud narazíte na jakékoli problémy s výkonem serveru, první věc, kterou byste měli udělat, je zkontrolovat protokoly systému Linux . V systémovém protokolu najdete užitečné diagnostické zprávy z různých komponent operačního systému, jako je jádro nebo různé služby, takže s největší pravděpodobností tam najdete příčinu selhání.

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 pro sběr logů v Linuxu rsyslog a systemd-journald . Jsou součástí většiny moderních distribučních balíčků a fungují nezávisle na sobě.

rsyslog

Záznamy této služby se nacházejí ve složce „ /var/log/ “ ve formě běžných textových souborů. Zprávy záznamů se ukládají do různých souborů v závislosti na typu události. 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 jednotlivých distribučních balíčcích lišit, proto se podívejme na konfigurační soubor „/etc/rsyslog.d/50-default.conf“, abychom získali představu o tom, kde se nachází soubor „ /etc/rsyslog.d/50-default.conf “.

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

Tato pravidla zobrazují, který soubor obsahuje který typ zpráv protokolu. Levá část zobrazuje typ zprávy v následujícím tvaru „ [Zdroj].[Priorita] “ a pravá část zobrazuje název souboru protokolu. Při zápisu typu zprávy lze přidat znak „ * “. To znamená prázdnou hodnotu nebo „ žádná “, která ji ze seznamu odstraní. Pojďme se blíže podívat 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 souboru „ /var/log/auth.log “. Všechny pokusy o autorizaci (úspěšné i neúspěšné) budou registrovány v tomto souboru. Druhé pravidlo určuje, že všechny zprávy kromě těch souvisejících s autorizací budou zaznamenány do souboru „ /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 protokolů poštovní služby „ mail.* “.

Soubory protokolu lze otevřít pomocí libovolného textového editoru, například less , cat nebo tail . Otevřeme soubor „ /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

Otevřeme soubor /var/log/syslog

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

Утилита logorotate

Pro vyhledávání informací v dlouhých textových souborech použijte utilitu grep . Všechny zprávy přijaté od služby pptpd najdete v souboru „ /var/log/syslog “.

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

Během diagnostiky můžete použít utilitu tail , která dokáže zobrazit několik posledních řádků souborů. Příkaz „ tail -f /var/log/syslog “ vám umožní sledovat záznamy logů v reálném čase.

Služba rsyslog je velmi flexibilní a výkonná. Lze ji použít pro sběr logů v lokálních systémech i na podnikové úrovni. Kompletní dokumentaci naleznete na oficiálních webových stránkách https://www.rsyslog.com/

Rotace protokolů v Linuxu

Záznam logů probíhá nepřetržitě, takže velikost souborů neustále roste. Mechanismus rotace zajišťuje automatickou archivaci starých logů a vytváření nových souborů. V závislosti na pravidlech se to může dít denně, týdně, měsíčně nebo podle limitu velikosti. Jakmile se vytvoří nové logy, staré lze pouze smazat nebo odeslat e-mailem. Rotaci logů provádí utilita logrotate . Hlavní konfiguraci naleznete v souboru „ /etc/logrotate.conf “. Obsah souborů je také zpracován ve složce „ /etc/logrotate.d/ “.

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

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

Podívejme se na soubor „ /etc/logrotate.d/rsyslog “, který obsahuje pravidla rotace pro protokoly služby rsyslog.

Пример вывода всех ошибок 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 vidíte, že ve složce „ /var/log/ “ se nachází hlavní protokol „ syslog “ a 7 archivů, což odpovídá pravidlům v konfiguračním souboru.

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

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

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

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

  • 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 větší flexibilitu můžete tyto možnosti kombinovat. Pojďme si ukázat všechny chyby služby pptpd.

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

Pokud zadáte cestu ke spustitelnému souboru jako atribut, utilita zobrazí všechny zprávy odeslané tímto souborem. Zobrazme si 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 ve složce „ /var/log/ “, kde jsou uloženy všechny pokusy o přihlášení. Tyto soubory jsou binární a lze je otevřít pouze pomocí speciálních programů.

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

утилита lastlog

/var/log/btmp - obsahuje všechny neúspěšné pokusy o přihlášení. Lze jej otevřít pomocí příkazu 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ího přihlášení pro každý záznam účtu. Lze jej otevřít pomocí lastlog

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

Zeptejte se nás na VPS

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