Ja rodas problēmas ar servera veiktspēju, pirmais, kas jādara, ir pārbaudīt Linux žurnālus . Sistēmas žurnālā var atrast noderīgus diagnostikas ziņojumus no dažādām operētājsistēmas komponentēm, piemēram, kodola vai dažādiem pakalpojumiem, tāpēc, visticamāk, kļūmes cēloni atradīsiet tur.
Katrs ziņojums žurnālā tiek ģenerēts noteiktu operētājsistēmas notikumu rezultātā: no lietotāja, autorizācijas līdz pakalpojuma izslēgšanai vai lietojumprogrammas kļūmei. Šiem pasākumiem ir dažādas prioritātes atkarībā no tā, cik tie ir kritiski. Operētājsistēmā Linux ir šādi notikumu veidi:
emerg- neveiksme, augstākā prioritāte;alert- steidzams brīdinājums;crit- kritisks notikums;err- parasta kļūda;warn- parastais brīdinājums;notice- paziņojums;info- informatīvais ziņojums;debug- atkļūdošanas informācija;
Pašlaik galvenie žurnālu apkopošanas pakalpojumi operētājsistēmā Linux ir rsyslog un systemd-journald . Tie ir iekļauti lielākajā daļā mūsdienu izplatīšanas pakotņu un darbojas neatkarīgi.
rsyslog
Šī pakalpojuma žurnāli atrodas mapē “ /var/log/ ” parastu teksta failu veidā. Žurnāla ziņojumi tiek ievietoti dažādos failos atkarībā no notikuma veida. Piemēram, “ /var/log/auth.log ” satur informāciju par lietotāju autorizāciju sistēmā, bet “ /var/log/kern.log ” satur kodola ziņojumus. Failu nosaukumi dažādās izplatīšanas pakotnēs var atšķirties, tāpēc aplūkosim konfigurācijas failu, lai iegūtu priekšstatu par to, kur atrodas “ /etc/rsyslog.d/50-default.conf ”.
Šie noteikumi parāda, kurā failā ir katrs žurnāla ziņojumu veids. Kreisajā pusē ir redzams ziņojuma veids šādā formātā “ [Avots].[Prioritāte] ”, bet labajā pusē ir redzams žurnāla faila nosaukums. Rakstot ziņojuma veidu, var pievienot rakstzīmi “ * ”. Tas nozīmē tukšu vērtību vai “ nav ”, kas to noņem no saraksta. Aplūkosim pirmos divus noteikumus tuvāk.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Pirmais noteikums nozīmē, ka visi no autorizācijas mehānisma saņemtie ziņojumi tiks ierakstīti failā “ /var/log/auth.log ”. Visi autorizācijas mēģinājumi (gan veiksmīgi, gan neveiksmīgi) tiks reģistrēti šajā failā. Otrais noteikums norāda, ka visi ziņojumi, izņemot tos, kas saistīti ar autorizāciju, tiks ierakstīti failā “ /var/log/syslog ”. Šie divi faili parasti ir vispopulārākie. Šie noteikumi nosaka ceļu, kurā saglabāt kodola žurnālus “ kern.* ” un pasta pakalpojumu žurnālus “ mail.* ”.
Žurnālfailus var atvērt ar jebkura teksta redaktora palīdzību, piemēram , less , cat , tail . Atvērsim failu “ /var/log/auth.log ” .
less /var/log/auth.log
Katra faila rindiņa ir atsevišķs ziņojums, kas saņemts no lietojumprogrammas vai pakalpojuma. Visiem ziņojumiem neatkarīgi no to avota ir viens formāts un tie sastāv no 5 daļām. Kā piemēru ņemsim ekrānuzņēmumā izcelto ziņojumu.
- Ziņojuma laikspiedols — “12. februāris 06:18:33”
- Tā datora nosaukums, kas nosūtīja ziņojumu - “vds”
- Lietojumprogrammas vai pakalpojuma nosaukums, kas nosūtīja ziņojumu - “sshd”
- Procesa ID — [653]
- Ziņojuma teksts - “Pieņemta parole mihail no 188.19.42.165 porta 2849 ssh2”
Šis bija veiksmīga savienojuma ar SSH piemērs.
Un lūk, kā izskatās neveiksmīgs pieteikšanās mēģinājums:
Šajā failā tiek ierakstītas arī komandas ar papildu atļaujām
Atvērsim failu /var/log/syslog
Ekrānuzņēmumā iezīmētais ziņojums ir ziņojums par tīkla interfeisa izslēgšanu.
Informācijas meklēšanai garos teksta failos izmantojiet grep utilītu. Visus no pptpd pakalpojuma saņemtos ziņojumus varat atrast failā “ /var/log/syslog ”.
grep 'pptpd' /var/log/syslog
Diagnostikas laikā varat izmantot tail utilītu, kas var parādīt vairākas failu pēdējās rindas. Komanda “ tail -f /var/log/syslog ” ļaus jums reāllaikā skatīt žurnālu ierakstīšanu.
Pakalpojums rsyslog ir ļoti elastīgs un jaudīgs. To var izmantot žurnālu apkopošanai gan lokālās sistēmās, gan uzņēmuma līmenī. Pilnu dokumentāciju varat atrast oficiālajā tīmekļa vietnē https://www.rsyslog.com/
Žurnālu rotācija operētājsistēmā Linux
Žurnālu ierakstīšana notiek nepārtraukti, tāpēc failu lielums pastāvīgi pieaug. Rotācijas mehānisms nodrošina veco žurnālu automātisku arhivēšanu un jaunu failu izveidi. Atkarībā no noteikumiem tas var notikt katru dienu, katru nedēļu, katru mēnesi vai pēc lieluma ierobežojuma. Izveidojot jaunus žurnālus, vecos var vienkārši izdzēst vai nosūtīt pa e-pastu. Žurnālu rotāciju veic logrotate utilīta. Galveno konfigurāciju var atrast failā “ /etc/logrotate.conf ”. Failu saturs tiek apstrādāts arī mapē “ /etc/logrotate.d/ ” .
Jaunus noteikumus var reģistrēt galvenajā konfigurācijas failā. Tomēr vislabāk ir izveidot atsevišķu failu mapē “ /etc/logrotate.d/ ”. Pēc noklusējuma šajā direktorijā ir daži faili.
Apskatīsim failu “ /etc/logrotate.d/rsyslog ”, kurā ir rsyslog pakalpojuma žurnālu rotācijas noteikumi.
Pirmkārt, noteikumā ir jāietver ceļš uz žurnālfailu un pēc tam visas vadlīnijas jāiekļauj izliektajās iekavās.
- pagriezt 7 - saglabājamo failu skaits - 7
- ik dienas - katru dienu izveidot jaunu failu
- saspiest - saspiest un arhivēt vecos failus
Ekrānuzņēmumā var redzēt, ka mapē “ /var/log/ ” atrodas galvenais žurnāls “ syslog ” un 7 arhīvi, kas atbilst konfigurācijas faila noteikumiem.
Detalizētāku logrotate aprakstu varat atrast rokasgrāmatā, izpildot komandu “ man logrotate ”.
Linux žurnālu vākšana - žurnāls
Žurnālu apkopošanas pakalpojums systemd-journald ir daļa no inicializācijas sistēmas systemd . Linux žurnālfaili tiek glabāti mapē “ /var/log/journal/ ” īpašā formātā un tos var atvērt, izmantojot utilītu journalctl . Ierakstu formāts ir tieši tāds pats kā rsyslog.
Komanda journalctl bez atribūtiem parāda visus ierakstus, taču tā nav piemērota lielākiem žurnāliem. Apskatīsim dažas šīs utilītas opcijas.
journalctl -b- parādīt visus ierakstus kopš pēdējā startajournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- parādīt ierakstu noteiktā laika periodājournalctl -u pptpd- parādīt noteikta pakalpojuma ierakstusjournalctl -k- parādīt kodola ziņojumusjournalctl -p err- šajā gadījumā parādīt noteiktas prioritātes ziņojumus, augstākas prioritātes ziņojumus (kritisks, brīdinājums, parādīšanās)journalctl -f- parādīt ziņojumus reāllaikā
Lai nodrošinātu labāku elastību, varat apvienot šīs opcijas. Parādīsim visas pptpd pakalpojuma kļūdas.
journalctl -u pptpd -p err
Ja kā atribūtu norādāt ceļu uz izpildāmo failu, utilīta parādīs visus šī faila nosūtītos ziņojumus. Parādīsim visus faila “ /usr/bin/sudo ” nosūtītos ziņojumus kopš 2020. gada 18. februāra plkst. 04:15. Faktiski tā parādīs visas komandas, kas izpildītas ar augstākām atļaujām.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Lai uzzinātu, cik daudz vietas diskā aizņem žurnālfaili, lai izpildītu šo komandu
journalctl --disk-usage
Lai ierobežotu žurnāla failu līdz 1 Gb, izpildiet šādu komandu
journalctl --vacuum-size=1G
Bināro failu atvēršana
Tagad aplūkosim dažus īpašus failus mapē “ /var/log/ ”, kur tiek glabāti visi pieteikšanās mēģinājumi. Šie faili ir bināri un tos var atvērt tikai ar īpašām programmām.
/var/log/wtmp satur informāciju par veiksmīgiem pieteikšanās mēģinājumiem. Lai to atvērtu, izmantojiet pēdējo utilītu.
/var/log/btmp — satur visus neveiksmīgos pieteikšanās mēģinājumus. To var atvērt ar lastb ar paplašinātām atļaujām. Atribūts -n nosaka rindu skaitu, kas tiek rādīts no faila beigām.
/var/log/lastlog — satur katra konta ieraksta pēdējās pieteikšanās laiku. To var atvērt ar lastlog