lnav - Wo ki o ṣe itupalẹ Awọn àkọọlẹ Afun lati ebute Linux kan


Kere ju ọsẹ meji sẹyin, ikọlu iraja irapada Wannacry ṣe adehun ẹgbẹẹgbẹrun awọn kọnputa, ti o fa awọn adanu nla si awọn ile-iṣẹ nla ati awọn ẹni-kọọkan bakanna. Iyẹn, pẹlu awọn ailagbara ti ibigbogbo miiran ti a rii ni awọn ọdun aipẹ (gẹgẹ bi kokoro Shellshock), ṣe afihan pataki ti gbigbe lori oke awọn eto pataki-iṣẹ pataki rẹ.

Botilẹjẹpe awọn ailagbara nigbagbogbo fojusi ẹrọ ṣiṣe kan pato tabi paati sọfitiwia, ṣe ayẹwo ijabọ ti o lọ ati jade ninu nẹtiwọọki rẹ le jẹ iranlọwọ pataki lati daabobo awọn ohun-ini ti o jẹ iduro fun.

Bi Mo ni idaniloju pe o ti mọ tẹlẹ, awọn akọọlẹ eto ni aaye akọkọ nibiti o yẹ ki a wa alaye yii. Lati jẹ ki iṣẹ yii rọrun, ninu nkan yii a yoo ṣe alaye bii o ṣe le fi sori ẹrọ ati lilo lnav, oluwo faili faili to ti ni ilọsiwaju. Pẹlu lnav, iwọ yoo ni anfani lati wo ọpọlọpọ awọn oriṣiriṣi awọn akọọlẹ nigbakanna, lilö kiri nipasẹ faili naa nipa lilo awọn kẹtẹkẹtẹ gbona, ki o ṣe ina histogram ti a ṣe akopọ ti awọn iraye si ati awọn aṣiṣe. Nitorina pa kika!

Fifi sori ẹrọ ati Ifilole lnav ni Lainos

Lati fi sori ẹrọ lnav, lo eto iṣakoso package ti pinpin rẹ.

# aptitude install lnav          [Debian and derivatives]
# yum install epel-release lnav  [CentOS 7 and similar]

Lọgan ti fifi sori ẹrọ ba ti pari, ṣe ifilọlẹ lnav atẹle pẹlu ọna pipe si itọsọna nibiti awọn akọọlẹ lati ṣe ayẹwo wa. Niwon eyi yoo jẹ deede /var/log , jẹ ki a ṣe:

# lnav /var/log/httpd

lati ṣayẹwo awọn akọọlẹ ti olupin ayelujara Apache ni CentOS 7 kan:

Jẹ ki a ṣayẹwo ni ṣoki iṣẹjade ti o han ni aworan ti tẹlẹ:

  • Igun apa ọtun apa oke fihan awọn faili ti wa ni ayewo lọwọlọwọ (access_log-20170519 ati access_log). Bi o ṣe nlọ kiri si isalẹ tabi oke, iwọ yoo ṣe akiyesi pe awọn orukọ faili le yipada bi o ṣe nlọ lati ọkan si ekeji.
  • 40x HTTP awọn idahun (fun apẹẹrẹ, Ko Ri tabi Ewọ) ti han ni igboya, lakoko ti a fi awọn idahun 20x han ni ọrọ deede.
  • Awọn adirẹsi IP yoo han ni alawọ ewe alawọ.

Iyẹn dajudaju dara dara, ṣe kii ṣe bẹẹ? Ṣugbọn jẹ ki a wa jin diẹ diẹ sii ni bayi, ati pe a yoo rii pe lnav pese pupọ diẹ sii ju iṣelọpọ awọ-lẹwa lọ.

Ti o ba ni iyanilenu nipa idi ti a ko fi awọn iwe aṣiṣe han, iwọ yoo wa idahun nigbamii ni nkan yii. Nitorina pa kika!

Ṣiṣatunṣe Ijade pẹlu Awọn aṣayan ati Awọn Hoki

Ṣaaju ki a to tẹsiwaju siwaju sii, jẹ ki a ṣe atokọ awọn hotkey diẹ ti yoo gba wa laaye lati gbe nipasẹ iṣẹjade lnav ati awọn wiwo ti o wa diẹ sii ni rọọrun:

  • e tabi E lati fo si ifiranṣẹ aṣiṣe ti o tẹle/ti tẹlẹ.
  • w tabi W lati fo si ifiranṣẹ ikilọ/ti tẹlẹ.
  • b tabi Backspace lati gbe si oju-iwe ti tẹlẹ.
  • Aaye lati gbe si oju-iwe ti o tẹle.
  • g tabi G lati gbe si oke/isalẹ ti iwo lọwọlọwọ.

Nigbati awọn akọọlẹ ba n yipo, awọn faili atijọ le jẹ fisinuirindigbindigbin (tabi rara) da lori awọn eto ti a ṣalaye ninu awọn faili iṣeto logrotate. Lati ṣafikun awọn faili fisinuirindigbindigbin ninu iṣẹjade, ṣe ifilọlẹ lnav bi atẹle:

# lnav -r /var/log/httpd

Ti o ba fẹ lati wo ni isunmọtosi ni ọna lnav n ṣiṣẹ, o le ṣe ifilọlẹ eto naa pẹlu aṣayan -d atẹle nipa orukọ faili kan nibiti a yoo kọ alaye ti n ṣatunṣe aṣiṣe si, bii bẹẹ:

# lnav /var/log/httpd -d lnav.txt

Ni apẹẹrẹ yii, alaye yokokoro ti o ṣẹda nigbati lnav bẹrẹ yoo kọ si faili kan ti a npè ni lnav.txt inu ilana itọsọna lọwọlọwọ.

Awọn ila akọkọ akọkọ ti faili naa ni a fihan ni aworan atẹle:

Ọrọ ti a ṣe afihan tọkasi pe lnav kojọpọ faili awọn ọna kika aiyipada ati, ni pataki diẹ sii, ọna wiwọle_log lati ṣe itupalẹ iwe wiwọle Wiwọle Apache. Ni afikun, lnav ngbanilaaye lati ṣe itupalẹ laini iṣẹjade kọọkan ki iṣelọpọ le di irọrun lati woran ati oye.

Lati lo ẹya yii, ṣe ifilọlẹ eto naa ki o yan laini ti o fẹ ṣe atunyẹwo. Laini ti a yan jẹ igbagbogbo ọkan ni oke window. Lẹhinna tẹ p ati pe o yẹ ki o wo abajade atẹle:

Lati pada si ipo deede, tẹ p lẹẹkansii.

Bayi, ti o ba fẹ wo atokọ ti awọn àkọọlẹ nipasẹ ọjọ ati akoko, tẹ i . Fun apẹẹrẹ, ọrọ ti a ṣe afihan tọkasi pe ni Ọjọ Mọndee, Oṣu Kẹrin Ọjọ 10, laarin 10 si 11 irọlẹ, awọn ibeere HTTP 37 wa pẹlu 14 ti o mu abajade awọn aṣiṣe.

Lọgan ti o ba ti ṣe idanimọ iṣoro ti o ni agbara ti o da lori itan-akọọlẹ itan bi a ti han loke, o le tẹ i lati jade kuro ni wiwo lati ṣayẹwo rẹ ni alaye diẹ sii nipa lilo parser bi a ti salaye tẹlẹ. Tabi o tun le lo awọn agbara SQL ti a ṣe sinu rẹ nipa titẹ semicolon kan ati kikọ ibeere deede. Fun apẹẹrẹ, ṣe:

;.schema

lati wo awọn tabili ti o wa ni ibi ipamọ data. Lẹhin ti o ṣe idanimọ tabili ti o tọ (access_log ninu ọran wa), jẹ ki a tẹ q ati lẹhinna lo ibeere atẹle lati pada si gbogbo alaye ti o wa nipa awọn ibeere ti n bọ lati 195.154.230.31:

;SELECT * FROM access_log WHERE c_ip='195.154.230.31'

Akiyesi pe a tun le ṣe iyọda awọn abajade nipasẹ log_time. Koko ọrọ ni, jabọ SQL kekere ati opin ọrun bi si ohun ti o le ṣe pẹlu lnav.

Awọn ọna kika Aifọwọyi Apache

Ọpọlọpọ awọn ọna kika log ti wa ni ẹrù nipasẹ aiyipada pẹlu lnav ati pe a ṣe itupalẹ bayi laisi ilowosi wa. O le wo atokọ ni apakan Awọn ọna kika Wọle ninu iwe aṣẹ osise.

Awọn ọna kika aiyipada ti wa ni pato ni ~/.lnav/awọn ọna kika/aiyipada/aiyipada-formats.json.sample, ati pe awọn miiran le ṣafikun ~/.lnav/awọn ọna kika nipa lilo itẹsiwaju .json .

Sibẹsibẹ, ṣiṣatunkọ awọn faili wọnyi nilo oye kan ti imọmọ pẹlu JSON (Akọsilẹ Nkan Javascript) ati pẹlu ile-ikawe PCRE (Awọn ifọrọhan Deede Perl-ibaramu).

Nitorinaa kilode ti lnav ko ṣe afihan awọn faili log aṣiṣe aṣiṣe Apache? Idi ni pe awọn akọọlẹ wọnyẹn ko baamu eyikeyi awọn ọrọ deede ni awọn faili kika ti o wa, ati nitorinaa wọn ṣe itọju bi awọn faili ọrọ igbagbogbo (awọn faili ti o tumọ laisi ọna kika ti a fun).

Gẹgẹbi a ti sọ tẹlẹ, o le ṣẹda awọn ọna kika tirẹ ni kete ti o kere ju ni itumo ti o mọ pẹlu JSON ati PCRE. Eyi le wa ni ọwọ, fun apẹẹrẹ, ti o ba ti ṣalaye awọn àkọọlẹ Apache aṣa.

Botilẹjẹpe a lo log wọle si Apache lati ṣafihan bi a ṣe le lo lnav, ni iranti pe ọpọlọpọ awọn oriṣi awọn akọọlẹ miiran wa ti o le wo ati ṣafẹri nipa lilo ọpa yii. Ti ọpa ko ba ṣe akiyesi akọọlẹ kan pato, o le ṣẹda awọn ọna kika afikun ki o fi sii wọn tẹle awọn itọkasi ti a pese nibi.

Ṣe o ni awọn ibeere tabi awọn asọye nipa nkan yii? Gẹgẹbi igbagbogbo, ni ọfẹ lati jẹ ki a mọ nipa lilo fọọmu ni isalẹ. A n reti lati gbọ lati ọdọ rẹ!