Când vă confruntați cu orice problemă cu performanța serverului dvs., primul lucru pe care doriți să-l faceți este verificați-vă 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 nucleul sau diverse servicii, așa că cel mai probabil veți găsi acolo cauza eșecului.
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:
emerg- eșec, prioritate maximă;alert- avertizare urgenta;crit- eveniment critic;err- eroare obișnuită;warn- avertizare obișnuită;notice- notificare;info- mesaj de informare;debug- informatii de depanare;
În acest moment, principalele servicii de recoltare de bușteni în Linux sunt rsyslog și systemd-journald. Acestea merg cu majoritatea pachetelor de distribuție moderne și funcționează independent.
rsyslog
Jurnalele acestui serviciu sunt localizate în „/ var / log /„ folder sub formă de fișiere text obișnuite. Mesajele de 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 și ”/var/log/kern.log” conține mesaje de kernel. Numele fișierelor pot diferi în funcție de pachetele de distribuție, așa că haideți să aruncăm o privire la fișierul de configurare pentru a ne face o idee despre unde se află ”/etc/rsyslog.d/50-default.conf".
Aceste reguli afișează ce fișier conține fiecare tip de mesaje de jurnal. Partea din stânga afișează tipul de mesaj în următoarea formă „[Sursa].[Prioritate]” iar partea din dreapta afișează numele fișierului jurnal. În timp ce scrieți tipul de mesaj „*la care se poate adăuga caracterul „. Înseamnă valoare goală sau „nici unul” care î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 „/var/log/auth.log". Toate încercările de autorizare (atât cu succes, cât și nu) 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 "/ Var / log / syslog". Aceste două fișiere sunt de obicei cele mai populare. Următoarele reguli definesc calea pentru stocarea jurnalelor de kernel "kern.*” și jurnalele serviciului de e-mail ”mail.*Matei 22:21
Fișierele jurnal pot fi deschise cu ajutorul oricărui editor de text, cum ar fi mai puțin, pisică, coadă. Să deschidem „/var/log/auth.log” dosar
less /var/log/auth.log
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.
- Marcaj temporal al mesajului - „12 februarie 06:18:33”
- Numele computerului care a trimis mesajul - „vds”
- Numele aplicației sau serviciului care a trimis mesajul - „sshd”
- ID proces - [653]
- 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ă:
Acest fișier înregistrează, de asemenea, comenzi cu permisiuni avansate
Să deschidem / Var / log / syslog fişier
Un mesaj evidențiat pe captură de ecran este mesajul despre închiderea interfeței de rețea.
Pentru a căuta informații prin fișiere text lungi, utilizați grep utilitate. Puteți găsi toate mesajele primite de la pptpd serviciu în „/ Var / log / syslog” dosar.
grep 'pptpd' /var/log/syslog
În timpul diagnosticării, puteți utiliza coadă utilitar care poate afișa câteva ultimele rânduri 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 recoltarea buștenilor în sistemele locale, precum ș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 jurnalului are loc continuu, astfel încât dimensiunea fișierelor crește constant. Mecanismul de rotație asigură arhivarea automată a jurnalelor vechi și crearea de noi fișiere. În funcție de reguli, se poate întâmpla zilnic, săptămânal, lunar sau după limită de dimensiune. Pe măsură ce se creează jurnale noi, cele vechi pot fi doar șterse sau trimise prin e-mail. Rotirea buștenilor este efectuată de realizat utilitate. Puteți găsi configurația principală în „/etc/logrotate.confFișierul „. Conținutul fișierelor este, de asemenea, procesat în „/etc/logrotate.d/”Dosar
Regulile noi pot fi conectate în fișierul de configurare principal. Cu toate acestea, cel mai bine este 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 la fișierul „/etc/logrotate.d/rsyslog" care conține reguli de rotație pentru jurnalele rsyslog serviciu.
Î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 pe captură de ecran că în „/ var / log /” folder există jurnalul principal ”syslog” și 7 arhive, care corespunde regulilor din fișierul de configurare.
Puteți găsi o descriere mai detaliată a logrotate în manual, executând „om logrotate” comanda
Colectarea jurnalelor Linux - journald
Serviciu de recoltare bușteni 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 poate fi deschis cu ajutorul jurnalctl utilitate. Formatul înregistrărilor este exact același ca în rsyslog.
Comandă jurnalctl fără atribute arată toate înregistrările, dar nu este potrivit pentru jurnalele 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 pornirejournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- arată înregistrarea într-o anumită perioadă de timpjournalctl -u pptpd- arată înregistrările unui anumit serviciujournalctl -k- afișați mesajele kerneluluijournalctl -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ă arătăm toate erorile pptpd serviciu
journalctl -u pptpd -p err
Dacă specificați calea către fișierul executabil ca atribut, utilitarul va afișa toate mesajele trimise de acest fișier. Să arătăm toate mesajele trimise de fișierul „/usr/bin/sudo” din 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
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 la câteva fișiere speciale din „/ var / log /” folder în care sunt stocate toate încercările de conectare. Aceste fișiere sunt binare și pot fi deschise numai cu programe speciale.
/var/log/wtmp conține informații despre încercările reușite de conectare. Utilizați ultimul utilitar pentru a-l deschide.
/var/log/btmp - conține toate încercările eșuate de conectare. Poate fi deschis cu lastb cu permisiuni avansate. Atribut -n definește numărul de linii afișate de la sfârșitul fișierului.
/var/log/loadlog - conține ora ultimei acțiuni de conectare pentru fiecare înregistrare de cont. Se poate deschide cu ultimul log