Keď narazíte na problémy s výkonom vášho servera, prvá vec, ktorú chcete urobiť, je urobiť skontrolujte denníky systému Linux. V systémovom denníku môžete nájsť 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 zlyhania 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í:
emerg- zlyhanie, najvyššia priorita;alert- naliehavé varovanie;crit- kritická udalosť;err- bežná chyba;warn- bežné varovanie;notice- oznámenie;info- informačná správa;debug- informácie o ladení;
V súčasnosti sú hlavné služby zberu protokolov v systéme Linux rsyslog a systemd-journald. Idú s väčšinou moderných distribučných balíkov a fungujú samostatne.
rsyslog
Protokoly tejto služby sa nachádzajú v „/ var / log /” vo forme bežných textových súborov. Protokolové správy 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ť, takže sa pozrime na konfiguračný súbor, aby sme získali predstavu, čo je kde “/etc/rsyslog.d/50-default.conf".
Tieto pravidlá zobrazujú, ktorý súbor obsahuje jednotlivé typy správ protokolu. V ľavej časti sa zobrazuje typ správy v nasledujúcom tvare „[Zdroj].[Priorita]“ a v pravej časti sa zobrazuje názov log súboru. Pri písaní typu správy “*je možné pridať znak ”. Znamená prázdnu hodnotu alebo “nikto“, čím sa 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 „/var/log/auth.log” súbor. Všetky pokusy o autorizáciu (úspešné aj neúspešné) sa zaznamenajú do tohto súboru. Druhé pravidlo znamená, že všetky správy okrem tých, ktoré súvisia s autorizáciou, sa budú zaznamenávať do „/ Var / log / syslog”. Tieto dva súbory sú zvyčajne najobľúbenejšie. Nasledujúce pravidlá definujú cestu k ukladaniu protokolov jadra “kern.*“ a denníky poštových služieb “mail.*"
Súbory denníkov je možné otvárať pomocou ľubovoľného textového editora, napr menej, ako, chvost. Otvorme „/var/log/auth.log“
less /var/log/auth.log
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.
- Časová pečiatka správy – „12. február 06:18:33“
- Názov počítača, ktorý správu odoslal – „vds“
- Názov aplikácie alebo služby, ktorá správu odoslala - „sshd“
- ID procesu – [653]
- 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:
Tento súbor tiež zaznamenáva príkazy s pokročilými povoleniami
Otvorme / Var / log / syslog rezeň
Zvýraznená správa na snímke obrazovky je správa o vypnutí sieťového rozhrania.
Na vyhľadávanie informácií prostredníctvom dlhých textových súborov použite grep užitočnosť. Môžete nájsť všetky správy prijaté od pptpd služba v „/ Var / log / syslog“.
grep 'pptpd' /var/log/syslog
Počas diagnostiky môžete použiť chvost nástroj, ktorý dokáže zobraziť niekoľko posledných riadkov súborov. príkaz "tail -f / var / log / syslog“ vám umožní sledovať záznam záznamov v reálnom čase.
Služby rsyslog je veľmi flexibilný a výkonný. Dá sa použiť na zber guľatiny v lokálnych systémoch, ako aj na podnikovej úrovni. Kompletnú dokumentáciu nájdete na oficiálnej stránke https://www.rsyslog.com/
Rotácia protokolov v systéme Linux
Záznam denníka prebieha nepretržite, takže veľkosť súborov neustále rastie. Rotačný mechanizmus zabezpečuje automatickú archiváciu starých protokolov a vytváranie nových súborov. V závislosti od pravidiel sa to môže stať denne, týždenne, mesačne alebo podľa limitu veľkosti. Keď sa vytvárajú nové protokoly, staré sa dajú jednoducho odstrániť alebo poslať e-mailom. Rotácia protokolov sa vykonáva pomocou logrotate užitočnosť. Hlavnú konfiguráciu nájdete v „/etc/logrotate.conf“. Obsah súborov sa spracováva aj v “/etc/logrotate.d/Priečinok
Nové pravidlá je možné prihlásiť do hlavného konfiguračného súboru. Najlepšie je však vytvoriť samostatný súbor v „/etc/logrotate.d/Štandardne je v tomto adresári niekoľko súborov
Pozrime sa na súbor “/etc/logrotate.d/rsyslogktorý obsahuje pravidlá rotácie pre denníky rsyslog služby.
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 môžete vidieť, že v „/ var / log /"priečinok je tam hlavný denník"syslog” a 7 archívov, čo zodpovedá pravidlám v konfiguračnom súbore.
Podrobnejší popis logrotate nájdete v príručke spustením príkazu „človek logrotate“príkaz
Zbieranie protokolov Linuxu - journald
Služba zberu guľatiny systemd-journald je súčasťou inicializačného systému systemd. Súbory denníka systému Linux sú uložené v priečinku „/var/log/journal/” v špeciálnom formáte a možno ho otvoriť pomocou journalctl užitočnosť. Formát záznamov je presne rovnaký ako v rsyslog.
povel journalctl bez atribútov zobrazuje všetky záznamy, ale nie je vhodný pre väčšie protokoly. Poďme sa pozrieť na niektoré možnosti tejto pomôcky.
journalctl -b- zobraziť všetky záznamy od posledného spusteniajournalctl -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žbejournalctl -k- zobraziť správy jadrajournalctl -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 lepšiu flexibilitu môžete tieto možnosti kombinovať. Ukážme všetky chyby pptpd služba
journalctl -u pptpd -p err
Ak zadáte cestu k spustiteľnému súboru ako atribút, pomôcka zobrazí všetky správy odoslané týmto súborom. Ukážme všetky správy odoslané súborom “/usr/bin/sudo” od 04:15 dňa 18. februára 2020. V skutočnosti sa zobrazia všetky príkazy vykonané s vyššími oprávneniami.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
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 „/ var / log /” priečinok, do ktorého sa ukladajú všetky pokusy o prihlásenie. Tieto súbory sú binárne a možno ich otvoriť iba pomocou špeciálnych programov.
/var/log/wtmp obsahuje informácie o úspešných pokusoch o prihlásenie. Na otvorenie použite posledný nástroj.
/var/log/btmp - obsahuje všetky neúspešné pokusy o prihlásenie. Dá sa otvoriť pomocou lastb s pokročilými povoleniami. Atribút -n definuje počet riadkov zobrazených od konca súboru.
/var/log/lastlog - obsahuje čas poslednej akcie prihlásenia pre každý záznam účtu. Dá sa otvoriť pomocou lastlog