Bibliotēka Vienkāršas instrukcijas darbam ar Profitserver pakalpojumu
galvenais Bibliotēka Kā lasīt Linux žurnālus un kur tos atrast

Kā lasīt Linux žurnālus un kur tos atrast


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:

  1. emerg - neveiksme, augstākā prioritāte;
  2. alert - steidzams brīdinājums;
  3. crit - kritisks notikums;
  4. err - parasta kļūda;
  5. warn - parastais brīdinājums;
  6. notice - paziņojums;
  7. info - informatīvais ziņojums;
  8. 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 ”.

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

Š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
Запись в лог-файле Линукс о неудачной попытке авторизации SSH

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.

  1. Ziņojuma laikspiedols — “12. februāris 06:18:33”
  2. Tā datora nosaukums, kas nosūtīja ziņojumu - “vds”
  3. Lietojumprogrammas vai pakalpojuma nosaukums, kas nosūtīja ziņojumu - “sshd”
  4. Procesa ID — [653]
  5. 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:

Читаем логи Linux

Šajā failā tiek ierakstītas arī komandas ar papildu atļaujām

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

Atvērsim failu /var/log/syslog

Ekrānuzņēmumā iezīmētais ziņojums ir ziņojums par tīkla interfeisa izslēgšanu.

Утилита logorotate

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
файл “/etc/logrotate.d/rsyslog”

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.

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

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ā starta
  • journalctl -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 ierakstus
  • journalctl -k - parādīt kodola ziņojumus
  • journalctl -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
утилита pēdējā

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
командой lastb

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.

утилита lastlog

/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

❮ Iepriekšējais raksts Linux teksta redaktori
Nākamais raksts ❯ Kā konfigurēt tīkla saskarnes CentOS

Jautājiet mums par VPS

Mēs vienmēr esam gatavi atbildēt uz jūsu jautājumiem jebkurā diennakts laikā.