Funkcia programu

Program Loganylzer slúži na analyzovanie záznamov webového servera Apache verzie 2.0. Vstupom pre program je súbor záznamov servera, ktorého názov používateľ zadá po spustení programu. Následne sa na tomto súbore vykoná automatické rozpoznávanie, či sa jedná o záznamy prístupov alebo záznamy chýb. Po rozpoznávaní sa zvyšné kroky programu periodicky opakujú až do momentu, kedy je prijatý signál o ukončení činnosti alebo používateľ sám ukončí program. Perióda opakovania je nastavená na konštantnú hodnotu 30 sekúnd, avšak používateľ si ju podľa potrieb môže zmeniť pri spustení aplikácie. Po uplynutí periódy opakovania program znovu načítava obsah súboru záznamov a spracuje nové záznamy, ktoré zapísal server. Záznamy obsiahnuté vo vstupnom súbore sa spracujú do informačných tokov. Toky, ktoré program vyhodnotí ako ukončené sú exportované do kolektora JXColl3. Exportované toky sa tiež zapisujú do samostatného súboru pre prípad opätovného spustenia aplikácie v krátkom čase. Používateľ tak má možnosť už exportované toky znovu odoslať alebo neodoslať.

Licencia programu: GNU GPLv3

Požiadavky na programové prostriedky

Spustenie programu si vyžaduje nasledovné programové prostriedky:

  • operačný systém s linuxovým jadrom verzie 2.4 a vyššej
  • súbory záznamov servera Apache verzie 2.0
  • knižnica libpcap verzie 0.8.3 a vyššej
  • knižnica libxml2 verzie 2.6.23 a vyššej

Vlastná inštalácia programu

Na inštaláciu balíka loganalyzer_1.0.deb sú potrebné práva superpoužívateľa. V terminály sa inštalácia vykoná zadaním príkazu:

$sudo dpkg –i ./loganalyzer_1.0.deb

Výsledkom inštalácie je súbor loganalyzer skopírovaný do adresára /bin/ a configuračný súbor config.xml skopírovaný do adresára /etc/ . Správna funkcia programu je podmienená prítomnosťou dvoch knižníc libpcap-dev a libxml2-dev. Ak tieto knižnice nie sú súčasťou operačného systému je potrebné ich nainštalovať príkazom:

$sudo apt-get install libpcap-dev

a

$sudo apt-get install libxml2-dev

Následne je možné program spustiť príkazom:

$./loganalyzer

Program sa ukončí stlačením kombinácie kláves CTRL a C

Použitie programu

Použitie programu si vyžaduje mať k dispozícii nainštalovaný webový server Apache HTTP verzie 2.0 (respektíve jeho záznamy), ktorého súbory záznamov bude program analyzovať. Celý priebeh programu sa vykonáva v textovom móde terminálu. Ako prvý je potrebné spustiť kolektor v adresári JXColl3 príkazom:

$java –jar JXColl3.jar JXColl.conf

Kolektor je potrebné nechať spustený celý čas, kým program analyzuje záznamy servera. Program spustíme príkazom:

$./loganalyzer

Po spustení si program vypýta od používateľa názov súboru záznamov servera respektíve jeho úplnú cestu. Používateľ musí zadať názov súboru, ktorý chce podrobiť analýze. V prípade zadania súbory, ktorý neexistuje sa program automaticky ukončí. Taktiež sa ukončí ak nerozpozná typ záznamu, ktorý mu požívateľ zadal. Po úspešnom rozpoznaní typu záznamu nasleduje konfiguračná časť programu, kde si používateľ môže prispôsobiť správanie programu podľa svojich požiadaviek. Najprv sa program opýta, či si používateľ praje zmeniť hodnotu periódy opakovania znovu načítavania súboru záznamu. Ak je odpoveď kladná je potrebné zadať celočíselnú hodnotu, ktorá predstavuje počet sekúnd periódy. Ak je odpoveď záporná, perióda ostane nastavená na pôvodnú hodnotu 30 sekúnd. Nasleduje otázka súvisiaca s použitím informačných tokov, ktoré už boli programom exportované a uložili sa do výstupných textových súborov. Ak používateľ odpovie kladne, tak sa tieto toky budú brať do úvahy a už sa znovu neexportujú do kolektora. Ak odpovie záporne program bude exportovať všetky vytvorené toky. Táto možnosť výberu je vhodná hlavne pri spustení programu viackrát po sebe v krátkom časovom intervale. Tretia otázka ponúka používateľovi možnosť prekladu mien počítačov (hostname) do formátu klasickej IPv4 adresy. Kladná odpoveď však pri veľkom počte záznamov môže spôsobiť problémy, pretože preklad adresy je časovo náročný a môže brániť serveru zapísať nové záznamy. Pri zápornej odpovedi sa žiaden preklad vykonávať nebude. Poslednou konfiguračnou otázkou je možnosť zobrazenie vytvorených záznamov a informácií v nich obsiahnutých. Ak si používateľ zvolí toky zobrazovať, program spracovaní záznamov súboru toky vypíše na obrazovku. Ďalej nasleduje výpis počtu záznamov v súbore a v zátvorke aj počet nových. Program záznamy spracuje, vytvorí z nich príslušné informačné toky a exportuje ich. Tento cyklus sa vykonáva až do chvíle, kedy program zachytí externý signál ukončenia alebo sa používateľ rozhodne ukončiť jeho činnosť kombináciou kláves CTRL a C.

Opis vstupných a výstupných súborov

Vstupné súbory

  • definovaný_používateľom - Vstupným súborom pre program je súbor záznamov servera Apache verzie 2.0, ktorého názov používateľ zadá po spustení programu.

  • config.xml - Vstupný konfiguračný súbor nástroja BEEM, ktorý vykonáva exportovanie informačných tokov vytvorených programom.

Výstupné súbory

  • sentaccflows.txt - Výstupný textový súbor obsahuje exportované informačné toky vytvorené zo záznamov prístupov servera

  • senterrflows.txt - Výstupný textový súbor obsahuje exportované informačné toky vytvorené zo záznamov chýb servera

Chybové hlásenia

  • Configuration not parsed succesfully – chyba v konfiguračnom súbore config.xml
  • Cannot init ipfix module - chyba pri inicializácii IPFIX exportného modulu
  • Ipfix_open() failed - chyba pri otváraní spojenia s IPFIX kolektorom.
  • Ipfix_add_collector() host,port failed - chyba pri pridávaní kolektora.
  • Ipfix_new_template() failed - chyba pri pridávaní šablóny.
  • Ipfix_add_field() failed - chyba pri pridávaní poľa šablóny.
  • Ipfix_export() failed - zlyhanie IPFIX exportu.
  • Ipfix_export_flush() failed - zlyhanie pri ukončovaní IPFIX exportu
  • Error – fopen: No such a file or directory – chyba pri otváraní súboru
  • Error – realloc: Success – chyba pri alokácii pamäťového miesta, pravdepodobne z nedostatku miesta v pamäti
  • UNKNOWN LOG TYPE! – program nerozpoznal formát súboru záznamov

Príklad použitia

Postup je zobrazený na obrázku Obr. 1. Program spustíme príkazom

$./loganalyzer

Zadáme názov súboru záznamov servera, podľa príkladu je to súbor 4.log. Program automaticky rozpoznal, že ide o záznam prístupov (access log). Následne zodpovieme na všetky otázky. Program spracuje záznamy do tokov a podľa našej voľby ich aj vypíše.

Na obrázku Obr.2 je viditeľné hlásenie o exportovaní tokov. Program odoslal 534 tokov do kolektora a ostáva nečinný počas trvania periódy opakovania. Následne sa celý cyklus zopakuje. Načíta sa obsah súboru záznamov. V uvedenom príklade nepribudli žiadne nové záznamy teda ich počet je rovnaký ako v predošlom cykle. Program teda nevytvoril žiadne nové toky, ktoré by mohol exportovať. Znovu čaká po dobu 30 sekúnd.

  • Obr.2 Exportovanie tokov:
    exportovanie.JPG

-- SlavomirStrharsky - 20 May 2009

Topic revision: r2 - 21 May 2009 - 00:14:23 - SlavomirStrharsky
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback