Intrebari Frecvente Instrucțiuni simple pentru a lucra cu serviciul Profitserver
Principal Intrebari Frecvente Cum să citiți jurnalele Linux și unde să le găsiți

Cum să citiți jurnalele Linux și unde să le găsiți


Când întâmpinați probleme cu performanța serverului dvs., primul lucru pe care doriți să îl faceți este să verificați jurnalele Linux . În jurnalul de sistem, puteți găsi câteva mesaje de diagnosticare utile de la diferite componente ale sistemului de operare, cum ar fi kernelul sau diverse servicii, așa că, cel mai probabil, veți găsi acolo cauza defecțiunii.

Fiecare mesaj din jurnal este generat ca urmare a anumitor evenimente din sistemul de operare: de la utilizator, autorizare la oprirea serviciului sau eșecul aplicației. Aceste evenimente au priorități diferite în funcție de cât de critice sunt. Există următoarele tipuri de evenimente în Linux:

  1. emerg - eșec, prioritate maximă;
  2. alert - avertizare urgenta;
  3. crit - eveniment critic;
  4. err - eroare obișnuită;
  5. warn - avertizare obișnuită;
  6. notice - notificare;
  7. info - mesaj de informare;
  8. debug - informatii de depanare;

În prezent, principalele servicii de colectare a jurnalelor (logs) în Linux sunt rsyslog și systemd-journald . Acestea sunt compatibile cu majoritatea pachetelor de distribuție moderne și funcționează independent.

rsyslog

Jurnalele acestui serviciu se află în folderul „ /var/log/ ” sub forma unor fișiere text obișnuite. Mesajele din jurnal sunt plasate în fișiere diferite, în funcție de tipul de eveniment. De exemplu, „ /var/log/auth.log ” conține informații despre autorizarea utilizatorilor în sistem, iar „ /var/log/kern.log ” conține mesaje despre kernel. Numele fișierelor pot diferi în funcție de pachetele de distribuție, așa că haideți să aruncăm o privire asupra fișierului de configurare pentru a ne face o idee despre unde se află „ /etc/rsyslog.d/50-default.conf ”.

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

Aceste reguli afișează ce fișier conține fiecare tip de mesaje jurnal. Partea din stânga afișează tipul de mesaj sub forma „ [Sursă].[Prioritate] ”, iar partea din dreapta afișează numele fișierului jurnal. La scriere, la tipul de mesaj se poate adăuga caracterul „ * ”. Acesta înseamnă o valoare goală sau „ niciuna ”, ceea ce îl elimină din listă. Să aruncăm o privire mai atentă la primele două reguli.

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

Prima regulă înseamnă că toate mesajele primite de la mecanismul de autorizare vor fi înregistrate în fișierul „ /var/log/auth.log ”. Toate încercările de autorizare (atât reușite, cât și eșuate) vor fi înregistrate în acest fișier. A doua regulă indică faptul că toate mesajele, cu excepția celor legate de autorizare, vor fi înregistrate în fișierul „ /var/log/syslog ”. Aceste două fișiere sunt de obicei cele mai populare. Următoarele reguli definesc calea pentru stocarea jurnalelor kernelului „ kern.* ” și a jurnalelor serviciului de e-mail „ mail.* ”.

Fișierele jurnal pot fi deschise cu ajutorul oricărui editor de text, cum ar fi less , cat , tail . Să deschidem fișierul „ /var/log/auth.log ” .

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

Fiecare linie a fișierului este un mesaj separat primit de la aplicație sau serviciu. Toate mesajele, indiferent de sursa lor, au un singur format și constau din 5 părți. Să luăm ca exemplu mesajul evidențiat din captura de ecran.

  1. Marcaj temporal al mesajului - „12 februarie 06:18:33”
  2. Numele computerului care a trimis mesajul - „vds”
  3. Numele aplicației sau serviciului care a trimis mesajul - „sshd”
  4. ID proces - [653]
  5. Textul mesajului - „Parola acceptată pentru mihail de la portul 188.19.42.165 2849 ssh2”

Acesta a fost un exemplu de conexiune de succes la SSH.

Și iată cum arată o încercare de conectare nereușită:

Читаем логи Linux

Acest fișier înregistrează, de asemenea, comenzi cu permisiuni avansate

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

Să deschidem fișierul /var/log/syslog

Un mesaj evidențiat pe captură de ecran este mesajul despre închiderea interfeței de rețea.

Утилита logorotate

Pentru căutarea de informații prin fișiere text lungi, utilizați utilitarul grep . Puteți găsi toate mesajele primite de la serviciul pptpd în fișierul „ /var/log/syslog ”.

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

În timpul diagnosticării puteți utiliza utilitarul tail care poate afișa ultimele câteva linii de fișiere. Comanda „ tail -f /var/log/syslog ” vă va permite să urmăriți înregistrarea jurnalelor în timp real.

Serviciul rsyslog este foarte flexibil și puternic. Poate fi folosit pentru colectarea de jurnale atât în ​​sistemele locale, cât și la nivel de întreprindere. Puteți găsi documentația completă pe site-ul oficial https://www.rsyslog.com/

Rotația jurnalelor în Linux

Înregistrarea jurnalelor se face continuu, astfel încât dimensiunea fișierelor crește constant. Mecanismul de rotație asigură arhivarea automată a jurnalelor vechi și crearea de fișiere noi. În funcție de reguli, aceasta se poate întâmpla zilnic, săptămânal, lunar sau în funcție de limita de dimensiune. Pe măsură ce sunt create jurnale noi, cele vechi pot fi pur și simplu șterse sau trimise prin e-mail. Rotația jurnalelor este efectuată de utilitarul logrotate . Puteți găsi configurația principală în fișierul „ /etc/logrotate.conf ”. Conținutul fișierelor este, de asemenea, procesat în folderul „ /etc/logrotate.d/ ”.

Noile reguli pot fi înregistrate în fișierul principal de configurare. Cu toate acestea, este recomandat să creați un fișier separat în „ /etc/logrotate.d/ ”. În mod implicit, există câteva fișiere în acest director.

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

Să aruncăm o privire asupra fișierului „ /etc/logrotate.d/rsyslog ” care conține reguli de rotație pentru jurnalele serviciului rsyslog.

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

În primul rând, regula ar trebui să conțină calea către fișierul jurnal și apoi să treacă toate liniile directoare între paranteze.

  • rotiți 7 - numărul de fișiere de păstrat - 7
  • zilnic - creați un fișier nou în fiecare zi
  • comprima - comprimați și arhivați fișierele vechi
Учимся читать логи Линукс

Puteți vedea în captură de ecran că în folderul „ /var/log/ ” se află jurnalul principal „ syslog ” și 7 arhive, care corespund regulilor din fișierul de configurare.

Puteți găsi o descriere mai detaliată a comenzii „logrotate” în manual, executând comanda „ man logrotate ”.

Colectarea jurnalelor Linux - journald

Serviciul de colectare a jurnalelor systemd-journald face parte din sistemul de inițializare systemd . Fișierele jurnal Linux sunt stocate în „ /var/log/journal/ ” într-un format special și pot fi deschise cu ajutorul utilitarului journalctl . Formatul înregistrărilor este exact același ca în rsyslog.

Comanda journalctl fără atribute afișează toate înregistrările, dar nu este potrivită pentru jurnale mai mari. Să aruncăm o privire la câteva opțiuni ale acestui utilitar.

  • journalctl -b - afișați toate înregistrările de la ultima pornire
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - arată înregistrarea într-o anumită perioadă de timp
  • journalctl -u pptpd - arată înregistrările unui anumit serviciu
  • journalctl -k - afișați mesajele kernelului
  • journalctl -p err - afișați mesaje cu o anumită prioritate, mesaje cu prioritate mai mare în acest caz (crit, alertă, emerg)
  • journalctl -f - afișați mesajele în timp real

Pentru o mai bună flexibilitate, puteți combina aceste opțiuni. Să afișăm toate erorile serviciului pptpd.

journalctl -u pptpd -p err
утилита ultimul

Dacă specificați calea către fișierul executabil ca atribut, utilitarul va afișa toate mesajele trimise de acest fișier. Să afișăm toate mesajele trimise de fișierul „ /usr/bin/sudo ” începând cu ora 04:15 pe 18 februarie 2020. De fapt, va afișa toate comenzile executate cu permisiuni mai mari.

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

Pentru a afla cât spațiu pe disc ocupă fișierele jurnal pentru a executa următoarea comandă

journalctl --disk-usage

Pentru a limita fișierul jurnal la 1Gb, executați următoarea comandă

journalctl --vacuum-size=1G

Deschiderea fișierelor binare

Acum să aruncăm o privire asupra unor fișiere speciale din folderul „ /var/log/ ”, unde sunt stocate toate încercările de conectare. Aceste fișiere sunt binare și pot fi deschise doar cu programe speciale.

Fișierul /var/log/wtmp conține informații despre încercările de autentificare reușite. Folosește utilitarul last pentru a-l deschide.

утилита lastlog

/var/log/btmp - conține toate încercările de autentificare eșuate. Poate fi deschis cu lastb cu permisiuni avansate. Atributul -n definește numărul de linii afișate de la sfârșitul fișierului.

/var/log/lastlog - conține ora ultimei acțiuni de conectare pentru fiecare înregistrare de cont. Poate fi deschis cu lastlog

❮ Articolul precedent Editore de text Linux
Articolul următor ❯ Cum se configurează interfețele de rețea în CentOS

Întrebați-ne despre VPS

Suntem întotdeauna gata să vă răspundem la întrebări la orice oră din zi sau din noapte.