Log Analytics (OMS) dokáže sbírat Windows eventy a také Syslog. Linuxové aplikace ovšem často místo do syslogu využíva logování do vlastního souboru (a některé aplikace ve Windows také). Jak takové logy dostat do systému? A jak je parsovat a indexovat jednotlivá políčka? A jak z toho všeho udělat krásný dashboard? Podívejme se dnes jak na to.
OMS agent v Linuxu je schopen sbírat Linux logy a také současně nativně umí získávat logy z MySQL, Apache a monitorovat Docker. Ukažme si, jak přes agenta posílat do OMS libovolné další logy ze souboru. Funguje to jak pro Linux tak Windows, ale pro tento příklad použiji Ubuntu.
Tato funkce je aktuálně v Preview, takže ji musíme nejprve explicitně povolit.
Pokud chcete zůstat v GUI (a pro dnešek chci) je nastavení custom logů společné pro všechny monitorované stroje (samozřejmě pokud na konkrétním OS takový log neexistuje, nebude se nic posílat, ale k žádné chybě nedojde). Pokud potřebujete skutečně nastavení pro individuální VM zvlášť, je to možné, ale musíte to vyřešit přímo v konfiguračním souboru daného OMS agenta. Pojďme si tedy přidat pravidlo pro získávání konkrétního log souboru.
Jděte do nastavení OMS a přidejte nový log.
OMS chce ukázat příklad obsahu logu. Jednotlivé hlášky bude podle řádek a použil jsem následující vlastní log:
INFO 201 "Vsechno vypada ok" INFO 201 "Porad je to ok" DEBUG 301 "Zkousim se pripojit" ERROR 401 "Sluzba neni dostupna" INFO 202 "Databaze je ok"
Pojďme ho naservírovat OMS.
Co má OMS brát za jednotlivé hlášky? V mém případě to budou jednotlivé řádky (ke sloupcům se dostaneme, to se parsuje jinde).
Následně řekneme kde má OMS agent log hledat. Já zadám konkrétní soubor, ale můžete také použít hvězdičku. OMS nepodporuje řešení, kdy se soubor po nějaké době přepíše. použijte trvale rostoucí log, nebo vytvoření nového souboru s pořadovým číslem například po každých 100MB dat apod. (pak použijete hvězdičky).
Na závěr zadáme jméno custom logu. To bude v systému zařazeno jako nový Type.
Teď musíme chvilku čekat, ze začátku může nějakou dobu trvat, než se logy objeví.
Výborně, právě se nám podařilo dostal vlastní speciální logy do OMS!
Jednotlivé řádky logu máme v OMS jako jednotlivé zprávy a to je dobře. Jenže celý řádek je zanesen jako jediný atribut RawData, přitom jsou uvnitř informace ("sloupečky"), které se dají parsovat, abychom je mohli mít indexováné a filtrovat podle nich.
V našem seznamu hlášek klikněte na tři tečky a zvolte extrahovat políčka.
OMS používá inteligentní parsovací technologii, takže nemusíte psát složité RegEx paterny, stačí označit to, co považujete za unikátní políčko.
OMS vám ukáže jak by to vypadalo u ostatních hlášek.
Uložte extrakci a opakujte pro další políčka, pak nějakou dobu počkejte. OMS nedokáže jít a zpětně logy doparsovat, ale nové už ano. Vygeneroval jsem tedy nějaké další záznamy do logu a podívejme se, jak jsou v OMS vidět.
Všimněte si, že políčka jsou vyparsovaná a hlavně modrá, tedy indexovaná a můžeme podle nich dělat různé filtrační a agregační operace, zobrazovat grafy apod. Můžeme tedy například získat počet hlášek za jednotlivé severity.
Query si zapamantujte, hned se nám bude hodit. Máme vyparsováno, tak co kdybychom si udělali dashboard?
Co kdybychom z předchozího query udělali nějaký hezký obrázek? Klikněte na zelené + a přesuňte na plochu třeba koblihový graf.
Zadejte naše query.
Pak už se můžeme kochat výsledkem.
Můžete také vytvářet komplexnější View, které se zobrazí po rozkliknutí - třeba něco takového:
Všechno do modra ale také není to pravé, že? Pojďme namapovat barvy jinak.
Udějme totéž pro budík. Takže v hlavním OMS dashboardu je tohle:
No a když si klikneme, dostaneme se sem:
OMS dokáže přes agenta získat log z libovolného souboru, parsovat jeho políčka a nakonec i vykreslit přehledné vizualizace. Nejste omezeni na to, co vám dává Microsoft v základu - přidejte si co potřebujete, je to jednoduché.