Centrální uložiště logů – Logalyze

Když jsem hledal pro firmu vhodný nástroj pro hromadný sběr a uložení logů, dlouho jsem nemohl najít vyhovující variantu.
Nakonec jsem našel program Logalyze který je vydáván jako OpenSource pod licencí GNU.

Na začátek pár základní informací.

Logalyze je nástroj pro hromadný sběr logů a jejich vyhodnocování. Logy do něho můžete posílat téměř jakékoliv od syslogu až po windows. V podstatě záleží jen na nástroji který zvolíte.
Má trochu archaické GUI ale zrovna v tomto případě to asi nevadí. Rozhraní je jednoduché, strohé a přehledné.
Program je rozdělen na dvě části, a to webovou administraci (…/logalyze/admin/) a logovací engine (…/logalyze).
Logalyze jde nainstalovat na jakýkoliv linux nebo windows podporující JAVA a TomCat (RHEL, SUSE, Solaris, Debian atd).
Dokumentace je strohá a moc sem toho nenašel ani jinde.

Instalace:

Instalace je popsána pro debian stretch.

Nainstalujeme Javu
                  apt-get install default-jre

Pomocí třeba Wget stáhneme instalační archív
                  wget http://www.logalyze.com/downloads/finish/2-installer/224-logalyze-full-package-tar-gz-archive

Instalační archýv rozbalíme (doporučovaná cesta je /opt/)
                  tar xzvf logalyze-tomcat-4.1.7-bin.tar.gz -C /opt/

Přesunem se do instalační složky
                  cd /opt/logalyze/conf

Přejmenujeme sample složku v instalačním adresáři (/opt/logalyze/)
                  rename ‚s/\.sample$//‘ \*.sample

Nastavíme JAVA_HOME na adresář s instalovanou javou.
/opt/logalyze/bin/setenv.sh kde nastavíme proměnou JAVA_HOME.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Postupně spustíme engine a pak administraci.
./opt/logalyze/bin/startup.sh
./opt/logalyze/admin/bin/startup.sh

Pro vypnutí se pak používají skripty /shutdown.sh ve stejné složce.
./opt/logalyze/bin/shutdown.sh
./opt/logalyze/admin/bin/shutdown.sh

Mám zkušenost, že se někdy vypnutí enginu může dost protáhnout (cca minutu až dvě). V případě že si nejste jistí jestli je engine už vypnutý, spusťte shutdown.sh znovu.

Logy se ukládají do /opt/logalyze/var/logstore. Zde je v případě zaplněného disku můžete i mazat.

Administrátorské rozhraní

Najdete ho na adrese http://vasserver:8080/
Defautní jméno a heslo je admin/logalyze.

Jako první si změňte heslo. Popřípadě ještě lepé, vytvořte nového uživatele s administrátorskými právy a starého, původního zakažte nebo smažte. Konfiguraci uživatelů najdete na Admin/Users, Roles/Users/.

První záložkou je Dashboard, na kterém si můžete přilepit informace dle vlastní libosti. Můžete zde přidat grafi nebo tabulky pro informace jako počet logu podle programu, klienta (serveru), typu události atd.

Další neméně důležitou funkcí je záložka Search. V ní můžete hledat logy podle snad veškerých přestavitelných kriterii.
Vyhledávání může využívat zástupné znaky (*), operátory (AND, OR, NOT) a závorky pro řetězení dotazu.
Příklad: potřebuji vyhledat konkretního uživatele co dělal na konkretním serveru
message:“UserA“ AND loghostname:“ServerB“

Pozor na různé speciální znaky jako jsou lomítka, ty vyhledávání ignoruje nebo vypíše chybu.
Zato můžeme využívat hvězdičkovou anotaci pokud vyhledáváme jen část slova nebo řetězce znaků.
*mujSoubor*
message:*mujSoubor* AND message:*User*

Také jde využívat závorky pro oddělení různých částí dotazu.
(message:*mujSoubor* OR message:*User*) AND loghostname:“ServerB“

Vlevo pak najdete možnost nastavení rozsahu času pro daný dotaz. V dotazu se přímo nedá specifikovat čas (pokud není součástí message).

Okno dotazů si také pamatuje pár posledních dotazů a je zde malá nápověda.

Dotazy jde také uložit a později vyvolat v záložce Manage Queries (kde také najdete i hromadu již předpřipravených dotazů kterými je možné se inspirovat).

Další zajímavou funkcí jsou záložky Statistics a reports. Ty vám umožní se podívat na různé trendy v čase včetně výpisu či seřazení dalších položek. Můžete si tedy vygenerovat počet logu v čase pro jednotlivé klienty nebo se podívat na četnost jednotlivých logů mezi klienty.

Reporty i statistiky můžete také sami vytvářet.

Klienti

Klienti do na server posílají svoje logy. Logy je možné posílám různými nástroji jako je syslog nebo NXlog na který se zaměřím.

NXLog Community Edition je openSource nástroj pro sběr a předávání logů. Dokáže jak logy sbírat tak je i odesílat. Je také možnost v něm logy rovnou zpracovávat a formátovat nebo filtrovat. Používám ho právě pro odesíláni logů do Logalyze.
NXLog naleznete zde, odkaz na stažení pak zde, manuál je pak zde.

Popisovat budu instalaci a konfiguraci pro windows server 2012R2 (ale pro ostatní windows servery by instalace a konfigurace měla být obdobná).

Po stažení a instalaci najdeme NXlog v adresáři C:\Program Files (x86)\nxlog\.
NXlog můžeme spouštět jako službu nebo jako příkaz.
Příkaz je šikovný pro otestování konfigurace.
nxlog.exe -c nxlogTCP.conf -f
Kde -c je přikaz pro načtení konkretního konfiguračního souboru (jinak se konfigurační soubor hledá v „C:\Program Files (x86)\nxlog\conf\nxlog.conf“). Příkaz -f pak spustí nxlog přímo bez použití služby (v dokuentaci přesně „-f, –foreground
Run in foreground, do not daemonize.“).

Konfigurační soubor je již předpřipravený v adresáři „C:\Program Files (x86)\nxlog\conf\nxlog.conf“. Musíme ho před prvním použitím upravit.
Nastavíme co budeme logovat, na to slouží „Input eventlog“ (za Input může být vložen jakýkoliv název daného pravidla a může jich být několik, třeba každý z jiného zdroje) . Zde mu řekneme že má pomocí „Module im_msvistalog“ zaznamenat události s eventlogu „Exec $Message =~ s/(\t|\R)/ /g; to_syslog_bsd();“ do formátu syslog.
Poté musíme nastavit výstupní událost. Tu nastavíme pomocí „Output jmeno“. Zase nastavíme modul který použijeme pro výstup. V našem případě „Module om_udp“ u kterého jsou parametry jen host (IP adresa) a port.

Jak jste již jistě pochopili input a output modulů muže být v jednu chvíli několik (ale vždy s jiným jménem). To znamená že můžete přijímat ale i vysílat více dat najednou. Proto je nutné specifikovat kam se bude jaký vstup (input) posílat na jaký výstup (Output). To se řeší pomocí Route.

Syntaxe je jednoduchá a je možno mít více Route.
<Route 1>
Path jmenoInput => jmenoOutput
</Route>

Zde je pak malá ukázka funkční (po změně IP a portu) konfigurace pro odesílání logu z windows 2012R2 do Logalyze.

Panic Soft
#NoFreeOnExit TRUE

define ROOT c:\nxlog
define CERTDIR %ROOT%\cert
define CONFDIR %ROOT%\conf
define LOGDIR %ROOT%\data
define LOGFILE %LOGDIR%\nxlog.log
LogFile %LOGFILE%

Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data

<Extension _syslog>
    Module xm_syslog
</Extension>

<Input eventlog>
    Module im_msvistalog
    Exec $Message =~ s/(\t|\R)/ /g; to_syslog_bsd();
</Input>

<Output out>
   Module om_udp
   Host 192.168.0.1
   Port 1670
</Output>

<Route 1>
   Path eventlog => out
</Route>

<Extension _charconv>
   Module xm_charconv
   AutodetectCharsets iso8859-2, utf-8, utf-16, utf-32
</Extension>

<Extension _exec>
   Module xm_exec
</Extension>

 

Dále je potřeba zapnout vše v logalyze. V záložce admin/systém/collectors je potřeba vytvořit nový collector (pomocí Add New). V něm můžeme specifikovat adresu, na které bude kolektor přijímat data, typ protokolu, port atd (porty musí být na firewallu systému otevřené).

Collector pojmenujeme na nastavíme podmínku spuštění – třeba automaticky po startu (startup mode automatic)

Dále nastavíme data transport protokol. Potřebujeme nastavit „socket“ kde vyplníme interface (na jaké adrese má collector naslouchat, pokud je 0.0.0.0, naslouchá na všech IP adresách serveru)
Port který jsme zadali v NXlog. Protokol pomocí „proto“ (UDP nebo TCP). Při výběru TCP pak můžeme definovat SSL certifikát a jeho heslo.

Nakonec definujeme formát dat v záložce Data format. Jako typ zvolíme syslog (popřípadě jiný vhodný). Pararmetry jsem vymazal.

Nakonec daný collector zapněte přes actions-start collector.
Tlačítkem Save potvrdíme.

V datasBoardu by se po pár sekundách (někdy déle) měl objevit název serveru (logHostName) a počet logů.

Tím máme první konfiguraci hotovou. Dále už přidáváme servery a ladíme.

Upozorňuji že ukládání logů je poměrně náročné na místo. Hlavně pokud budete logovat aktivity uživatelů, jde na serveru o cca 100 uživatelích o 10-20GB denně.

Dokumentace Logalyze

Je jí poskrovnu. Odkážu na hlavní stránky projektu zde, manuál instalace zde, instalace ke stažení zde.

Rád článek doplním o další věci, stačí napsat do komentářů.

You may also like...

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.