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í:
emerg- selhání, nejvyšší priorita;alert- naléhavé varování;crit- kritická událost;err- běžná chyba;warn- běžné varování;notice- oznámení;info- informační zpráva;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".
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
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.
- Časové razítko zprávy – „12. února 06:18:33“
- Název počítače, který zprávu odeslal – „vds“
- Název aplikace nebo služby, která zprávu odeslala – „sshd“
- ID procesu – [653]
- 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í:
Tento soubor také zaznamenává příkazy s pokročilými oprávněními
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í.
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
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.
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žbyjournalctl -k- zobrazit zprávy jádrajournalctl -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
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
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.
/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