LogParser II

Home / Uncategorized / LogParser II

Dneska by jsem chtěl ukázat takový komplexnejší příklad při stahování eventu.

Cíl : Získat eventy za poslední den seskupený podle ID události.

Realizace by šla dobře udělat přes VBS skript, ale provedeme to klasicky přes CMD. V první fázi sesbíráme eventy a uložíme do CSV (celé by to šlo udělat v jednom průchodu v tomto případě, pokud by jsme ale chtěli filtrovat např. podle obsahu stringu ve zprávě. Museli by jsme to udělat přes mezistupeň CSV). CSV potom seskupíme podle EventID a spočítáme kolik jednotlivých eventů je. V příkladě sbíram data z jednoho počítače, ale samozřejmě není problém z několika PC najednou.

1. Sbíráme data za poslední den
Kvůli lepší přehlednosti umístíme SELECT do samostatného souboru

query.sql

SELECT ComputerName, EventLog, TimeGenerated, EventTypeName, EventID, SourceName, Message
INTO temp.csv
FROM System
WHERE EventTypeName LIKE '%error%'
            AND
            TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(SYSTEM_TIMESTAMP()), 86400))

Příkaz pak vypadá

logparser.exe file:query.sql -i:evt -o:csv

2. Seskupení podle EventID

queryII.sql

SELECT ComputerName, EventLog, MIN(TimeGenerated), MAX(TimeGenerated), EventTypeName, EventID, SourceName, MAX(message), COUNT(EventID) AS Number
INTO report.html
FROM temp.csv
GROUP BY EventID, ComputerName, EventTypeName, SourceName, EventLog
ORDER BY EventLog, Number DESC

3. Výsledek v CMD

run.cmd

@echo off
logparser.exe file:query.sql -i:EVT -o:CSV
logparser.exe file:queryII.sql -i:CSV -tpl:template.txt
del temp.csv

Výsledek v HTML

ComputerName EventLog MIN(ALL TimeGenerated) MAX(ALL TimeGenerated) EventTypeName EventID SourceName MAX(ALL Message) Number
NB-WEIS System 2008-06-17 07:59:09 2008-06-17 07:59:10 Error event 29 W32Time Klient NTP … 3
NB-WEIS System 2008-06-17 07:59:09 2008-06-17 07:59:09 Error event 5719 NETLOGON V doméně … 1

 Výsledný soubor již není problém poslat emailem třeba pomocí blatu.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *