lnav - Tazama na Uchambue Kumbukumbu za Apache kutoka kwa Kituo cha Linux


Chini ya wiki mbili zilizopita, shambulio la Wannacry ransomware lilihatarisha maelfu ya kompyuta, na kusababisha hasara kubwa kwa makampuni makubwa na watu binafsi sawa. Kwamba, pamoja na udhaifu mwingine ulioenea uliopatikana katika miaka ya hivi karibuni (kama vile mdudu wa Shellshock), inaangazia umuhimu wa kukaa juu ya mifumo yako muhimu ya dhamira.

Ingawa udhaifu mara nyingi hulenga mfumo mmoja wa uendeshaji au sehemu ya programu, kuchunguza trafiki inayoingia na kutoka kwenye mtandao wako kunaweza kuwa msaada mkubwa wa kulinda mali unazowajibika.

Kama nina hakika kuwa tayari unajua, kumbukumbu za mfumo ndio mahali pa kwanza ambapo tunapaswa kutafuta habari hii. Ili kufanya kazi hii iwe rahisi, katika makala hii tutaelezea jinsi ya kufunga na kutumia lnav, mtazamaji wa faili ya logi ya juu. Ukiwa na lnav, utaweza kutazama aina kadhaa za kumbukumbu kwa wakati mmoja, kuvinjari faili kwa kutumia hotkeys, na kutoa muhtasari wa histogram ya ufikiaji na makosa. Kwa hivyo endelea kusoma!

Kusakinisha na Kuzindua lnav katika Linux

Ili kusakinisha lnav, tumia mfumo wa usimamizi wa kifurushi cha usambazaji wako.

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

Mara tu usakinishaji ukamilika, zindua lnav ikifuatiwa na njia kamili ya saraka ambapo kumbukumbu za kuchunguzwa ziko. Kwa kuwa hii kawaida itakuwa /var/log, wacha tufanye:

# lnav /var/log/httpd

kukagua magogo ya seva ya wavuti ya Apache kwenye CentOS 7:

Wacha tuchunguze kwa ufupi matokeo yaliyoonyeshwa kwenye picha iliyotangulia:

  • Kona ya juu kulia inaonyesha faili zinazokaguliwa kwa sasa (access_log-20170519 na access_log). Unaposogeza chini au juu, utaona kwamba majina ya faili yanaweza kubadilika unapotoka moja hadi nyingine.
  • Majibu 40x ya HTTP (kwa mfano, Hayajapatikana au Yamekatazwa) yanaonyeshwa kwa herufi nzito, ilhali majibu 20x yanaonyeshwa katika maandishi ya kawaida.
  • Anwani za IP zinaonekana kwa kijani kibichi.

Hiyo hakika inaonekana nzuri, sivyo? Lakini hebu tuchimbue zaidi sasa, na tutaona kwamba lnav hutoa zaidi ya pato la rangi nzuri.

Ikiwa una nia ya kwa nini kumbukumbu za makosa hazionyeshwa, utapata jibu baadaye katika makala hii. Kwa hivyo endelea kusoma!

Kurekebisha Pato kwa Chaguzi na Vifunguo vya Moto

Kabla hatujaendelea zaidi, hebu tuorodheshe vitufe vichache vya hotkey ambavyo vitaturuhusu kupitia matokeo ya lnav na mionekano inayopatikana kwa urahisi zaidi:

  • e au E ili kurukia ujumbe unaofuata/uliotangulia wa hitilafu.
  • w au W ili kuruka hadi ujumbe wa onyo unaofuata/uliopita.
  • b au Nafasi ya nyuma ili kuhamia ukurasa uliopita.
  • Nafasi ya kuhamia kwenye ukurasa unaofuata.
  • g au G ili kusonga juu/chini ya mwonekano wa sasa.

Kumbukumbu zinapozungushwa, faili za zamani zinaweza kubanwa (au la) kulingana na mipangilio iliyobainishwa kwenye faili za usanidi za logrotate. Ili kujumuisha faili zilizobanwa kwenye pato, zindua lnav kama ifuatavyo:

# lnav -r /var/log/httpd

Ikiwa ungependa kuangalia kwa karibu jinsi lnav inavyofanya kazi, unaweza kuzindua programu kwa chaguo la -d likifuatiwa na jina la faili ambapo taarifa ya utatuzi itaandikiwa, kama hivyo:

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

Katika mfano huu, maelezo ya utatuzi ambayo yanatolewa wakati lnav inapoanza yataandikwa kwa faili iitwayo lnav.txt ndani ya saraka ya kazi ya sasa.

Mistari michache ya kwanza ya faili hiyo imeonyeshwa kwenye picha ifuatayo:

Maandishi yaliyoangaziwa yanaonyesha kuwa lnav ilipakia faili ya umbizo chaguo-msingi na, haswa, umbizo la ufikiaji_logi ili kuchanganua logi ya ufikiaji ya Apache. Zaidi ya hayo, lnav inaruhusu kuchanganua kila mstari wa pato ili matokeo yawe rahisi kuibua na kuelewa.

Ili kutumia kipengele hiki, zindua programu na uchague mstari unaotaka kuchanganua. Mstari uliochaguliwa daima ni ule ulio juu ya dirisha. Kisha bonyeza p na unapaswa kuona matokeo yafuatayo:

Ili kurudi kwenye hali ya kawaida, bonyeza p tena.

Sasa, ikiwa ungependa kuona muhtasari wa kumbukumbu kwa tarehe na saa, bonyeza i. Kwa mfano, maandishi yaliyoangaziwa yanaonyesha kuwa Jumatatu, Aprili 10, kati ya saa 10 na 11 jioni, kulikuwa na maombi 37 ya HTTP huku 14 yakisababisha makosa.

Mara tu unapotambua tatizo linaloweza kutokea kulingana na historia kama inavyoonyeshwa hapo juu, unaweza kubofya i ili kuondoka kwenye mwonekano ili kukichunguza kwa undani zaidi ukitumia kichanganuzi kama ilivyoelezwa awali. Au unaweza pia kutumia uwezo wa SQL uliojengewa ndani kwa kuandika semicolon na kuandika swali la kawaida. Kwa mfano, fanya:

;.schema

kutazama majedwali yanayopatikana kwenye schema ya hifadhidata. Baada ya kutambua jedwali linalofaa (access_log katika kesi yetu), hebu tubofye q kisha tutumie hoja ifuatayo kurudisha maelezo yote yanayopatikana kuhusu maombi yanayotoka 195.154.230.31:

;SELECT * FROM access_log WHERE c_ip='195.154.230.31'

Kumbuka kuwa tungeweza pia kuchuja matokeo kwa log_time. Jambo ni kwamba, tupa SQL kidogo na anga ni kikomo cha kile unachoweza kufanya na lnav.

Miundo ya Kumbukumbu ya Apache Chaguomsingi

Fomati nyingi za kumbukumbu hupakiwa kwa chaguo-msingi na lnav na kwa hivyo huchanganuliwa bila uingiliaji wetu. Unaweza kutazama orodha katika sehemu ya Umbizo la Kumbukumbu katika hati rasmi.

Miundo chaguomsingi imebainishwa katika ~/.lnav/formats/default/default-formats.json.sample, na nyinginezo zinaweza kuongezwa ~/.lnav/formats kwa kutumia .json kiendelezi.

Hata hivyo, kuhariri faili hizi kunahitaji ujuzi fulani na JSON (Javascript Object Notation) na maktaba ya PCRE (Perl-Compatible Regular Expressions).

Kwa hivyo kwa nini lnav haikuonyesha faili za kumbukumbu za makosa ya Apache? Sababu ni kwamba kumbukumbu hizo hazilingani na misemo yoyote ya kawaida katika faili za umbizo zilizopo, na kwa hivyo huchukuliwa kama faili za maandishi za kawaida (faili zenye maana bila umbizo la logi).

Kama ilivyoelezwa hapo awali, unaweza kuunda fomati zako mwenyewe mara tu unapofahamu JSON na PCRE. Hii inaweza kuja kwa manufaa, kwa mfano, ikiwa umefafanua kumbukumbu za Apache maalum.

Ingawa tulitumia kumbukumbu ya ufikiaji ya Apache ili kuonyesha jinsi ya kutumia lnav, kumbuka kuwa kuna aina zingine kadhaa za kumbukumbu ambazo zinaweza kutazamwa na kugawanywa kwa kutumia zana hii. Ikiwa zana haitambui logi maalum, unaweza kuunda fomati za ziada na kuzisakinisha kwa kufuata dalili zilizotolewa hapa.

Je, una maswali au maoni yoyote kuhusu makala hii? Kama kawaida, jisikie huru kutufahamisha kwa kutumia fomu iliyo hapa chini. Tunatarajia kusikia kutoka kwako!