Kui teil tekib probleeme serveri jõudlusega, on esimene asi, mida teha tahate, kontrollida oma Linuxi logisid . Süsteemilogist leiate kasulikke diagnostikasõnumeid operatsioonisüsteemi erinevate komponentide, näiteks kerneli või erinevate teenuste kohta, seega leiate suure tõenäosusega rikke põhjuse just sealt.
Iga teade logis genereeritakse teatud operatsioonisüsteemi sündmuste tulemusena: alates kasutajast, autoriseerimisest kuni teenuse sulgemiseni või rakenduse rikkeni. Nendel sündmustel on erinevad prioriteedid sõltuvalt sellest, kui kriitilised need on. Linuxis on järgmist tüüpi sündmusi:
emerg- ebaõnnestumine, kõrgeim prioriteet;alert- kiireloomuline hoiatus;crit- kriitiline sündmus;err- tavaline viga;warn- tavaline hoiatus;notice- teavitamine;info- infosõnum;debug- silumisinfo;
Hetkel on Linuxi peamised logide kogumise teenused rsyslog ja systemd-journald . Need sobivad enamiku tänapäevaste levitamispakettidega ja töötavad iseseisvalt.
rsyslog
Selle teenuse logid asuvad kaustas „ /var/log/ ” tavaliste tekstifailidena. Logiteated paigutatakse erinevatesse failidesse olenevalt sündmuse tüübist. Näiteks „ /var/log/auth.log ” sisaldab teavet kasutajate autoriseerimise kohta süsteemis ja „ /var/log/kern.log ” sisaldab kerneli teateid. Failinimed võivad eri levituspakettides erineda, seega vaatame konfiguratsioonifaili, et saada aimu, kus asub „ /etc/rsyslog.d/50-default.conf ”.
Need reeglid näitavad, milline fail sisaldab iga tüüpi logiteateid. Vasakpoolne osa kuvab teate tüüpi kujul „ [Allikas].[Prioriteet] ” ja parempoolne osa kuvab logifaili nime. Teatetüübi kirjutamisel saab lisada märgi „ * ”. See tähendab tühja väärtust või „ puudub ”, mis eemaldab selle loendist. Vaatleme lähemalt kahte esimest reeglit.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Esimene reegel tähendab, et kõik autoriseerimismehhanismilt saadud sõnumid salvestatakse faili „ /var/log/auth.log ”. Kõik autoriseerimiskatsed (nii edukad kui ka ebaõnnestunud) registreeritakse selles failis. Teine reegel näitab, et kõik sõnumid peale autoriseerimisega seotud sõnumite salvestatakse faili „ /var/log/syslog ”. Need kaks faili on tavaliselt kõige populaarsemad. Järgmised reeglid määratlevad kerneli logide „ kern.* ” ja meiliteenuse logide „ mail.* ” salvestamise tee.
Logifaile saab avada mis tahes tekstiredaktoriga, näiteks „less” , „cat” või „tail” . Avame faili „ /var/log/auth.log ” .
less /var/log/auth.log
Faili iga rida on rakenduselt või teenuselt saadud eraldi sõnum. Kõik sõnumid, olenemata nende allikast, on ühes vormingus ja koosnevad 5 osast. Võtame näiteks ekraanipildil esiletõstetud sõnumi.
- Sõnumi ajatempel – “12. veebruar 06:18:33”
- Sõnumi saatnud arvuti nimi - "vds"
- Sõnumi saatnud rakenduse või teenuse nimi - "sshd"
- Protsessi ID – [653]
- Sõnumi tekst – “Mihaili aktsepteeritud parool alates 188.19.42.165 pordist 2849 ssh2”
See oli näide edukast ühendusest SSH-ga.
Ja nii näeb välja ebaõnnestunud sisselogimiskatse:
See fail salvestab ka täpsemate õigustega käsud
Avame faili /var/log/syslog
Ekraanipildil esiletõstetud teade on teade võrguliidese sulgemise kohta.
Pikkade tekstifailide hulgast teabe otsimiseks kasutage grep utiliiti. Kõik pptpd teenuselt saadud sõnumid leiate failist „ /var/log/syslog ”.
grep 'pptpd' /var/log/syslog
Diagnostika ajal saate kasutada tail utiliiti, mis kuvab failide viimaseid ridu. Käsklusega „ tail -f /var/log/syslog ” saate logide salvestamist reaalajas vaadata.
Teenus rsyslog on väga paindlik ja võimas. Seda saab kasutada logide kogumiseks nii kohalikes süsteemides kui ka ettevõtte tasandil. Täieliku dokumentatsiooni leiate ametlikult veebisaidilt https://www.rsyslog.com/
Logide pööramine Linuxis
Logide salvestamine toimub pidevalt, seega failide suurus pidevalt kasvab. Rotatsioonimehhanism tagab vanade logide automaatse arhiveerimise ja uute failide loomise. Sõltuvalt reeglitest võib see toimuda iga päev, iga nädal, iga kuu või suurusepiirangu alusel. Uute logide loomisel saab vanu lihtsalt kustutada või e-postiga saata. Logide rotatsiooni teostab logrotate utiliit. Põhikonfiguratsiooni leiate failist „ /etc/logrotate.conf “. Failide sisu töödeldakse ka kaustas „ /etc/logrotate.d/ “.
Uued reeglid saab logida peamisse konfiguratsioonifaili. Siiski on kõige parem luua eraldi fail kausta „ /etc/logrotate.d/ ”. Vaikimisi on selles kaustas paar faili.
Vaatame faili “ /etc/logrotate.d/rsyslog ”, mis sisaldab rsyslog- teenuse logide rotatsioonireegleid.
Esiteks peaks reegel sisaldama logifaili teed ja seejärel kõik juhised kõverates sulgudes.
- pöörata 7 - säilitatavate failide arv - 7
- iga päev - looge iga päev uus fail
- kompress - tihendage ja arhiivige vanu faile
Ekraanipildil on näha, et kaustas „ /var/log/ ” asub peamine logifail „ syslog ” ja 7 arhiivi, mis vastavad konfiguratsioonifaili reeglitele.
Täpsema kirjelduse logrotate'i kohta leiate käsiraamatust, kus käivitate käsu „ man logrotate ”.
Linuxi logide kogumine – päevik
Logide kogumise teenus systemd-journald on osa initsialiseerimissüsteemist systemd . Linuxi logifailid salvestatakse spetsiaalses vormingus kausta „ /var/log/journal/ ” ja neid saab avada utiliidi journalctl abil . Kirjete vorming on täpselt sama mis rsyslogis.
Käsk journalctl ilma atribuutideta kuvab kõik kirjed, kuid see ei sobi suuremate logide jaoks. Vaatame selle utiliidi mõningaid valikuid.
journalctl -b- näita kõiki rekordeid alates viimasest stardistjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- näidata rekordit teatud aja jooksuljournalctl -u pptpd- näidata teatud teenuse kirjeidjournalctl -k- näidata kerneli sõnumeidjournalctl -p err- näidata teatud prioriteediga sõnumeid, sel juhul kõrgema prioriteediga sõnumeid (kriit, hoiatus, esilekerkimine)journalctl -f- näidata sõnumeid reaalajas
Parema paindlikkuse tagamiseks saate neid valikuid kombineerida. Näitame kõiki pptpd teenuse vigu .
journalctl -u pptpd -p err
Kui määrate atribuudina käivitatava faili tee, kuvab utiliit kõik selle faili saadetud sõnumid. Kuvame kõik faili " /usr/bin/sudo " saadetud sõnumid alates 18. veebruarist 2020 kella 04:15. Tegelikult kuvab see kõik kõrgemate õigustega täidetud käsud.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Et teada saada, kui palju kettaruumi logifailid järgmise käsu täitmiseks võtavad
journalctl --disk-usage
Logifaili piiramiseks 1 GB-ga käivitage järgmine käsk
journalctl --vacuum-size=1G
Binaarfailide avamine
Nüüd vaatame mõningaid erifaile kaustas „ /var/log/ ”, kuhu salvestatakse kõik sisselogimiskatsed. Need failid on binaarfailid ja neid saab avada ainult spetsiaalsete programmidega.
/var/log/wtmp sisaldab teavet edukate sisselogimiskatsete kohta. Selle avamiseks kasutage viimast utiliiti.
/var/log/btmp - sisaldab kõiki ebaõnnestunud sisselogimiskatseid. Seda saab avada käsuga lastb täpsemate õigustega. Atribuut -n määrab faili lõpust alates kuvatavate ridade arvu.
/var/log/lastlog – sisaldab iga kontokirje viimase sisselogimise aega. Selle saab avada käsuga lastlog