Znalostnej bázy Jednoduchý návod na prácu so službou Profitserver
Hlavná Znalostnej bázy Ako čítať denníky Linuxu a kde ich nájsť

Ako čítať denníky Linuxu a kde ich nájsť


Keď narazíte na akékoľvek problémy s výkonom vášho servera, prvá vec, ktorú by ste mali urobiť, je skontrolovať protokoly systému Linux . V systémovom protokole nájdete užitočné diagnostické správy z rôznych komponentov operačného systému, ako je jadro alebo rôzne služby, takže príčinu poruchy s najväčšou pravdepodobnosťou nájdete tam.

Každá správa v protokole je generovaná ako výsledok určitých udalostí v operačnom systéme: od používateľa, autorizácie až po vypnutie služby alebo zlyhanie aplikácie. Tieto udalosti majú rôzne priority v závislosti od toho, nakoľko sú kritické. V Linuxe existujú nasledujúce typy udalostí:

  1. emerg - zlyhanie, najvyššia priorita;
  2. alert - naliehavé varovanie;
  3. crit - kritická udalosť;
  4. err - bežná chyba;
  5. warn - bežné varovanie;
  6. notice - oznámenie;
  7. info - informačná správa;
  8. debug - informácie o ladení;

V súčasnosti sú hlavnými službami na zber protokolov v Linuxe rsyslog a systemd-journald . Sú súčasťou väčšiny moderných distribučných balíkov a fungujú nezávisle.

rsyslog

Záznamy z protokolov tejto služby sa nachádzajú v priečinku „ /var/log/ “ vo forme bežných textových súborov. Záznamy z protokolov sa ukladajú do rôznych súborov v závislosti od typu udalosti. Napríklad „ /var/log/auth.log “ obsahuje informácie o autorizácii používateľov v systéme a „ /var/log/kern.log “ obsahuje správy jadra. Názvy súborov sa môžu v jednotlivých distribučných balíkoch líšiť, preto sa pozrime na konfiguračný súbor, aby sme získali predstavu o tom, kde sa nachádza „ /etc/rsyslog.d/50-default.conf “.

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

Tieto pravidlá zobrazujú, ktorý súbor obsahuje ktorý typ správ protokolu. Ľavá časť zobrazuje typ správy v nasledujúcom tvare „ [Zdroj].[Priorita] “ a pravá časť zobrazuje názov súboru protokolu. Pri zápise typu správy je možné pridať znak „ * “. Znamená to prázdnu hodnotu alebo „ žiadna “, ktorá správu odstráni zo zoznamu. Pozrime sa bližšie na prvé dve pravidlá.

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

Prvé pravidlo znamená, že všetky správy prijaté z autorizačného mechanizmu budú zaznamenané do súboru „ /var/log/auth.log “. Všetky pokusy o autorizáciu (úspešné aj neúspešné) budú zaznamenané v tomto súbore. Druhé pravidlo označuje, že všetky správy okrem tých, ktoré súvisia s autorizáciou, budú zaznamenané do súboru „ /var/log/syslog “. Tieto dva súbory sú zvyčajne najobľúbenejšie. Nasledujúce pravidlá definujú cestu k ukladaniu protokolov jadra „ kern.* “ a protokolov poštovej služby „ mail.* “.

Súbory protokolov je možné otvoriť pomocou ľubovoľného textového editora, ako napríklad less , cat , tail . Otvoríme súbor „ /var/log/auth.log “ .

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

Každý riadok súboru je samostatná správa prijatá z aplikácie alebo služby. Všetky správy bez ohľadu na ich zdroj majú jeden formát a skladajú sa z 5 častí. Vezmime si ako príklad zvýraznenú správu na snímke obrazovky.

  1. Časová pečiatka správy – „12. február 06:18:33“
  2. Názov počítača, ktorý správu odoslal – „vds“
  3. Názov aplikácie alebo služby, ktorá správu odoslala - „sshd“
  4. ID procesu – [653]
  5. Text správy - “Akceptované heslo pre mihail z 188.19.42.165 port 2849 ssh2”

Toto bol príklad úspešného pripojenia k SSH.

A takto vyzerá neúspešný pokus o prihlásenie:

Читаем логи Linux

Tento súbor tiež zaznamenáva príkazy s pokročilými povoleniami

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

Otvoríme súbor /var/log/syslog

Zvýraznená správa na snímke obrazovky je správa o vypnutí sieťového rozhrania.

Утилита logorotate

Na vyhľadávanie informácií v dlhých textových súboroch použite utilitu grep . Všetky správy prijaté zo služby pptpd nájdete v súbore „ /var/log/syslog “.

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

Počas diagnostiky môžete použiť utilitu tail , ktorá dokáže zobraziť niekoľko posledných riadkov súborov. Príkaz „ tail -f /var/log/syslog “ vám umožní sledovať záznamy protokolov v reálnom čase.

Služba rsyslog je veľmi flexibilná a výkonná. Dá sa použiť na zber protokolov v lokálnych systémoch, ako aj na podnikovej úrovni. Kompletnú dokumentáciu nájdete na oficiálnej webovej stránke https://www.rsyslog.com/

Rotácia protokolov v systéme Linux

Záznam protokolov prebieha nepretržite, takže veľkosť súborov neustále rastie. Mechanizmus rotácie zabezpečuje automatickú archiváciu starých protokolov a vytváranie nových súborov. V závislosti od pravidiel sa to môže diať denne, týždenne, mesačne alebo podľa limitu veľkosti. Pri vytváraní nových protokolov je možné staré protokoly jednoducho vymazať alebo odoslať e-mailom. Rotáciu protokolov vykonáva utilita logrotate . Hlavnú konfiguráciu nájdete v súbore „ /etc/logrotate.conf “. Obsah súborov sa spracováva aj v priečinku „ /etc/logrotate.d/ “.

Nové pravidlá je možné zaznamenávať do hlavného konfiguračného súboru. Najlepšie je však vytvoriť samostatný súbor v adresári „ /etc/logrotate.d/ “. V tomto adresári sa štandardne nachádza niekoľko súborov.

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

Pozrime sa na súbor „ /etc/logrotate.d/rsyslog “, ktorý obsahuje pravidlá rotácie protokolov služby rsyslog.

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

Najprv by pravidlo malo obsahovať cestu k súboru denníka a potom by všetky pokyny mali byť uvedené v zakrivených zátvorkách.

  • otočiť 7 - počet súborov, ktoré sa majú uchovávať - ​​7
  • denne - každý deň vytvorte nový súbor
  • komprimovať - komprimovať a archivovať staré súbory
Учимся читать логи Линукс

Na snímke obrazovky vidíte, že v priečinku „ /var/log/ “ sa nachádza hlavný protokol „ syslog “ a 7 archívov, čo zodpovedá pravidlám v konfiguračnom súbore.

Podrobnejší popis príkazu logrotate nájdete v manuáli, spustením príkazu „ man logrotate “.

Zbieranie protokolov Linuxu - journald

Služba zberu protokolov systemd-journald je súčasťou inicializačného systému systemd . Súbory protokolov systému Linux sú uložené v „ /var/log/journal/ “ v špeciálnom formáte a je možné ich otvoriť pomocou utility journalctl . Formát záznamov je úplne rovnaký ako v rsyslog.

Príkaz journalctl bez atribútov zobrazuje všetky záznamy, ale nie je vhodný pre väčšie protokoly. Pozrime sa na niektoré možnosti tohto nástroja.

  • journalctl -b - zobraziť všetky záznamy od posledného spustenia
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - zobraziť záznam v určitom časovom období
  • journalctl -u pptpd - zobraziť záznamy o určitej službe
  • journalctl -k - zobraziť správy jadra
  • journalctl -p err - zobraziť správy s určitou prioritou, v tomto prípade správy s vyššou prioritou (crit, alert, emerg)
  • journalctl -f - zobraziť správy v reálnom čase

Pre väčšiu flexibilitu môžete tieto možnosti kombinovať. Ukážme si všetky chyby služby pptpd.

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

Ak zadáte cestu k spustiteľnému súboru ako atribút, utilita zobrazí všetky správy odoslané týmto súborom. Zobrazme si všetky správy odoslané súborom „ /usr/bin/sudo “ od 04:15 18. februára 2020. V skutočnosti zobrazí všetky príkazy vykonané s vyššími oprávneniami.

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

Ak chcete zistiť, koľko miesta na disku zaberajú protokolové súbory na vykonanie nasledujúceho príkazu

journalctl --disk-usage

Ak chcete obmedziť súbor denníka na 1 Gb, vykonajte nasledujúci príkaz

journalctl --vacuum-size=1G

Otváranie binárnych súborov

Teraz sa pozrime na niektoré špeciálne súbory v priečinku „ /var/log/ “, kde sú uložené všetky pokusy o prihlásenie. Tieto súbory sú binárne a je možné ich otvoriť iba pomocou špeciálnych programov.

Súbor /var/log/wtmp obsahuje informácie o úspešných pokusoch o prihlásenie. Na jeho otvorenie použite utilitu last.

утилита lastlog

/var/log/btmp - obsahuje všetky neúspešné pokusy o prihlásenie. Dá sa otvoriť pomocou príkazu lastb s rozšírenými oprávneniami. Atribút -n definuje počet riadkov zobrazených od konca súboru.

/var/log/lastlog - obsahuje čas posledného prihlásenia pre každý záznam účtu. Dá sa otvoriť pomocou lastlog

❮ Predchádzajúci článok Linuxové textové editory
Ďalší článok ❯ Ako nakonfigurovať sieťové rozhrania v CentOS

Opýtajte sa nás na VPS

Sme vždy pripravení odpovedať na vaše otázky kedykoľvek počas dňa alebo v noci.