LogParser

Home / Uncategorized / LogParser

Co je LogParser ?
LogParser je program, který se umí zeptat SQL dotazem "nějakých" dat a vyexportovat je do "nějakých" dat.

Vstupní data můžou být :  IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS
Výstupní data můžou být : CSV, TSV, XML, DATAGRID, CHART, SYSLOG, NEUROVIEW, NAT, W3C, IIS, SQL, TPL, NULL

Použítí LogParser na EventLog
Potřebujeme stáhnout errory z eventlogu systém a uložit do souboru CSV ?

logparser.exe -i:EVT "SELECT * INTO report.csv FROM system WHERE eventtypename LIKE '%error%'" -o:CSV

parametr -i udává vstupní formát dat v tomto případě EVT = eventlog
parametr -o udává výstupní formát dat (CSV)
Příkaz SELECT je celkem pochopitelný.

O trošku složitejší příklad může být použítí na výstupu šablony.

logparser.exe -i:EVT "SELECT * INTO report.html FROM system WHERE eventtypename LIKE '%error%'" -tpl:template.txt

TEMPLATE.TXT

<LPHEADER>
<HTML>
<HEAD>
<TITLE>Logon/Logoff Report</TITLE>
</HEAD>
<BODY>
<H1>Logon/Logoff Report</H1>
<TABLE BGCOLOR="#D0D0E0" BORDER="1" CELLPADDING="10">
<TR>
  <TH>%FIELDNAME_1%</TH>
  <TH>%FIELDNAME_4%</TH>
  <TH>%FIELDNAME_5%</TH>
  <TH>%FIELDNAME_10%</TH>
  <TH>%FIELDNAME_14%</TH>
  </TR>
</LPHEADER>

<LPBODY>
<TR>
  <TD><TT>%FIELD_1%</TT></TD>
  <TD><TT>%FIELD_4%</TT></TD>
  <TD><TT>%FIELD_5%</TT></TD>
  <TD><TT>%FIELD_10%</TT></TD>
  <TD><TT>%FIELD_14%</TT></TD>
</TR>
</LPBODY>

<LPFOOTER>
</BODY>
</HTML>
</LPFOOTER>

Proměnné FIELDNAME a FIELD jsou hodnoty které vrací SELECT. Jejich přehled je v HELPu LogParseru (EVT Input Format Fields)
Výstup pak vypadá :

EventLog TimeWritten EventID SourceName Message
System 2008-06-02 14:34:00 1002 Dhcp Zapůjčení adresy IP 194.212.48.83 pro síťovou kartu s adresou 0012F0725FD4 byla serverem DHCP 10.0.0.138 odmítnuta. (Server DHCP odeslal zprávu DHCPNACK).
System 2008-06-02 14:41:20 1002 Dhcp Zapůjčení adresy IP 194.212.48.83 pro síťovou kartu s adresou 0012F0725FD4 byla serverem DHCP 10.0.0.138 odmítnuta. (Server DHCP odeslal zprávu DHCPNACK).

Potřebujemeli  výpis za posledních třeba 5 dní.

LogParser.exe -i:EVT "SELECT * INTO report.html FROM system WHERE eventtypename LIKE '%error%' AND TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(SYSTEM_TIMESTAMP()),86400))" -tpl:template.txt

Kde hodnata 86400 je čas v sekundách. Tzn. příkaz SELECT vybere z logu SYSTEM všechny události, které odpovídají kritériu kde eventtypename obsahuje string error a čas události je odteď den zpět.

Samozřejmě se můžeme ptát i více strojů najednou.

LogParser.exe -i:EVT "SELECT * INTO report.html FROM \\stroj\system, \\stroj2\system WHERE eventtypename LIKE '%error%' AND TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(SYSTEM_TIMESTAMP()),86400))" -tpl:template.txt

Jak vydíme fantazii se meze nekladou. Navíc LogParser je možné využít i ve VBS skriptech (nejen).
Jednoduchý příklad skriptu který využívá LogParser.

Set oLogQuery = CreateObject("MSUtil.LogQuery")
'vystupni format
Set oOUTPUT = CreateObject("MSUtil.LogQuery.CSVOutputFormat")
'vstupni format
Set oINPUT = CreateObject("MSUtil.LogQuery.EventLogInputFormat")

strQuery = "SELECT * INTO report.csv FROM system WHERE eventtypename LIKE '%error%'"

oLogQuery.ExecuteBatch strQuery, oINPUT , oOUTPUT

Napsat komentář

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