Kada se suočite s bilo kakvim problemima s performansama vašeg poslužitelja, prvo što trebate učiniti je provjeriti svoje Linux zapisnike . U zapisniku sustava možete pronaći neke korisne dijagnostičke poruke iz različitih komponenti operativnog sustava poput jezgre ili raznih servisa, tako da ćete najvjerojatnije tamo pronaći uzrok kvara.
Svaka poruka u zapisniku generirana je kao rezultat određenih događaja u operativnom sustavu: od korisnika, autorizacije do gašenja usluge ili kvara aplikacije. Ti događaji imaju različite prioritete ovisno o tome koliko su kritični. U Linuxu postoje sljedeće vrste događaja:
emerg- neuspjeh, najviši prioritet;alert- hitno upozorenje;crit- kritični događaj;err- obična greška;warn- obična opomena;notice- obavijest;info- informativna poruka;debug- informacije o otklanjanju pogrešaka;
Trenutno su glavne usluge za prikupljanje logova u Linuxu rsyslog i systemd-journald . Idu s većinom modernih distribucijskih paketa i rade neovisno.
rsyslog
Zapisnici ove usluge nalaze se u mapi „ /var/log/ “ u obliku običnih tekstualnih datoteka. Poruke zapisnika spremaju se u različite datoteke ovisno o vrsti događaja. Na primjer, „ /var/log/auth.log “ sadrži informacije o autorizaciji korisnika u sustavu, a „ /var/log/kern.log “ sadrži poruke kernela. Nazivi datoteka mogu se razlikovati ovisno o distribucijskim paketima, pa pogledajmo konfiguracijsku datoteku kako bismo dobili ideju gdje se nalazi „ /etc/rsyslog.d/50-default.conf “.
Ova pravila prikazuju koja datoteka sadrži koju vrstu poruka zapisnika. Lijevi dio prikazuje vrstu poruke u sljedećem obliku „ [Izvor].[Prioritet] “, a desni dio prikazuje naziv datoteke zapisnika. Prilikom pisanja vrste poruke može se dodati znak „ * “. To znači praznu vrijednost ili „ ništa “ što je uklanja s popisa. Pogledajmo pobliže prva dva pravila.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Prvo pravilo znači da će sve poruke primljene od mehanizma autorizacije biti zabilježene u datoteku " /var/log/auth.log ". Svi pokušaji autorizacije (i uspješni i neuspješni) bit će zabilježeni u ovoj datoteci. Drugo pravilo označava da će sve poruke osim onih povezanih s autorizacijom biti zabilježene u datoteku " /var/log/syslog ". Ove dvije datoteke su obično najpopularnije. Sljedeća pravila definiraju putanju za pohranu logova kernela " kern.* " i logova poštanske usluge " mail.* "
Datoteke zapisnika mogu se otvoriti pomoću bilo kojeg tekstualnog editora, kao što su less , cat , tail . Otvorimo datoteku " /var/log/auth.log " .
less /var/log/auth.log
Svaki redak datoteke zasebna je poruka primljena od aplikacije ili usluge. Sve poruke bez obzira na njihov izvor imaju jedan format i sastoje se od 5 dijelova. Uzmimo istaknutu poruku na snimci zaslona kao primjer.
- Vremenska oznaka poruke - “12. veljače 06:18:33”
- Ime računala koje je poslalo poruku - “vds”
- Naziv aplikacije ili usluge koja je poslala poruku - “sshd”
- ID procesa - [653]
- Tekst poruke - “Prihvaćena lozinka za mihail od 188.19.42.165 port 2849 ssh2”
Ovo je bio primjer uspješne veze na SSH.
A evo kako izgleda neuspješni pokušaj prijave:
Ova datoteka također bilježi naredbe s naprednim dopuštenjima
Otvorimo datoteku /var/log/ syslog
Istaknuta poruka na snimci zaslona je poruka o isključivanju mrežnog sučelja.
Za pretraživanje informacija kroz duge tekstualne datoteke koristite uslužni program grep . Sve poruke primljene od pptpd servisa možete pronaći u datoteci " /var/log/syslog ".
grep 'pptpd' /var/log/syslog
Tijekom dijagnostike možete koristiti uslužni program tail koji može prikazati nekoliko posljednjih redaka datoteka. Naredba " tail -f /var/log/syslog " omogućit će vam gledanje zapisa logova u stvarnom vremenu.
Usluga rsyslog je vrlo fleksibilna i moćna. Može se koristiti za prikupljanje logova u lokalnim sustavima kao i na razini poduzeća. Potpunu dokumentaciju možete pronaći na službenoj web stranici https://www.rsyslog.com/
Rotacija dnevnika u Linuxu
Snimanje dnevnika se odvija kontinuirano, tako da veličina datoteka stalno raste. Mehanizam rotacije osigurava automatsko arhiviranje starih dnevnika i stvaranje novih datoteka. Ovisno o pravilima, to se može događati dnevno, tjedno, mjesečno ili prema ograničenju veličine. Kako se stvaraju novi dnevniki, stari se mogu jednostavno izbrisati ili poslati e-poštom. Rotaciju dnevnika vrši uslužni program logrotate . Glavnu konfiguraciju možete pronaći u datoteci " /etc/logrotate.conf ". Sadržaj datoteka se također obrađuje u mapi " /etc/logrotate.d/ ".
Nova pravila mogu se zapisati u glavnu konfiguracijsku datoteku. Međutim, najbolje je stvoriti zasebnu datoteku u " /etc/logrotate.d/ ". Prema zadanim postavkama, u ovom direktoriju postoji nekoliko datoteka.
Pogledajmo datoteku " /etc/logrotate.d/rsyslog " koja sadrži pravila rotacije za logove rsyslog servisa.
Prvo, pravilo treba sadržavati put do datoteke dnevnika, a zatim sve smjernice staviti u zakrivljene zagrade.
- rotirati 7 - broj datoteka za čuvanje - 7
- svakodnevno - kreirajte novu datoteku svaki dan
- oblog - komprimirati i arhivirati stare datoteke
Na snimci zaslona možete vidjeti da se u mapi " /var/log/ " nalazi glavni dnevnik " syslog " i 7 arhiva, što odgovara pravilima u konfiguracijskoj datoteci.
Detaljniji opis logrotate naredbe možete pronaći u priručniku, izvršavanjem naredbe „ man logrotate “.
Prikupljanje Linux dnevnika - dnevnik
Usluga prikupljanja logova systemd-journald dio je inicijalizacijskog sustava systemd . Linux log datoteke pohranjene su u " /var/log/journal/ " u posebnom formatu i mogu se otvoriti pomoću uslužnog programa journalctl . Format zapisa je potpuno isti kao u rsyslog.
Naredba journalctl bez atributa prikazuje sve zapise, ali nije prikladna za veće logove. Pogledajmo neke opcije ovog uslužnog programa.
journalctl -b- prikaži sve zapise od zadnjeg startajournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- prikazati zapis unutar određenog vremenskog razdobljajournalctl -u pptpd- prikazati evidenciju određene uslugejournalctl -k- prikaži poruke jezgrejournalctl -p err- prikaži poruke određenog prioriteta, u ovom slučaju poruke višeg prioriteta (crit, alert, emerg)journalctl -f- prikazati poruke u stvarnom vremenu
Za veću fleksibilnost možete kombinirati ove opcije. Prikažimo sve pogreške pptpd usluge
journalctl -u pptpd -p err
Ako navedete putanju do izvršne datoteke kao atribut, uslužni program će prikazati sve poruke poslane ovom datotekom. Prikažimo sve poruke poslane datotekom „ /usr/bin/sudo “ od 04:15 18. veljače 2020. Zapravo, prikazat će sve naredbe izvršene s višim dozvolama.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Da biste saznali koliko prostora na disku datoteke dnevnika zauzimaju za izvršavanje sljedeće naredbe
journalctl --disk-usage
Kako biste ograničili datoteku dnevnika na 1 Gb, izvršite sljedeću naredbu
journalctl --vacuum-size=1G
Otvaranje binarnih datoteka
Sada pogledajmo neke posebne datoteke u mapi " /var/log/ " gdje se pohranjuju svi pokušaji prijave. Ove datoteke su binarne i mogu se otvoriti samo posebnim programima.
/var/log/wtmp sadrži informacije o uspješnim pokušajima prijave. Za otvaranje upotrijebite uslužni program last.
/var/log/btmp - sadrži sve neuspješne pokušaje prijave. Može se otvoriti s naredbom lastb s naprednim dozvolama. Atribut -n definira broj redaka prikazanih od kraja datoteke.
/var/log/lastlog - sadrži vrijeme posljednje prijave za svaki zapis računa. Može se otvoriti pomoću naredbe lastlog