Bei einem Kunden habe ich gerade den Auftrag, von mehreren Servern gesicherte Windows Eventlogs auf bestimmte Ereignisse zu durchsuchen. Die Eventlogs wurden in regelmäßigen Abständen als EVT-Dateien gesichert und mit compress gepackt. Nun habe ich mehrere Ordner voller EV_-Dateien als Ausgangspunkt.
Von Microsoft gibt es zum Durchsuchen, Auswerten und Exportieren diverser Logs (darunter auch Eventlogs) das Tool Log Parser.
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07 (Log Parser 2.2)
Das Tool ist Kommandozeilen basiert und beinhaltet viele Möglichkeiten. Da ich viele Dateien habe, möchte ich alle in eine SQL Datenbank speichern um sie dort durchsuchen zu können. Ein erster Schritt ist also, einen Befehl zum Exportieren einer einzelnen EVT-Datei in eine SQL Server Tabelle.
"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT * INTO TestTable FROM TestFile.evt"
-i:EVT -o:SQL -server:HANSEVIS06 -database:EventlogAnalyse -createtable:ON
Der Befehl besteht also aus dem Aufruf von LogParser.exe mit folgenden Parametern (aus Platzgründen umgebrochen):
- einer SQL-ähnlich Abfrage der Daten (alle Felder aus der Datei TestFile.evt in die Tabelle TestTable einfügen)
- dem Eingangsformat (EVT)
- dem Ausgabeformat (SQL)
- dem Namen der SQL Server Instanz
- dem Namen der Datenbank
- der Anweisung, die Tabelle anzulegen, falls nicht bereits vorhanden
Mit ein wenig Erweiterung lässt sich daraus eine Batch-Datei erstellen, die alle EV_-Dateien eines Ordners durchläuft und jede entpackt, parst und dann wieder löscht (übrigens, EVT Dateien lassen sich wirklich sehr effektiv packen).
FOR %%a IN (*.ev_) DO @(
echo Entpacke %%a
expand -r %%a
FOR %%f IN (*.evt) DO @(
echo Importiere %%f
"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT * INTO EventlogEntries FROM %%f"
-i:EVT -o:SQL -server:HANSEVIS06 -database:EventlogAnalyse -createtable:ON
echo Loesche %%f
del %%f
)
)
Bei mir gibt es allerdings noch eine übergeordnete Schleife, die alle Ordner durchläuft, die die gepackten Dateien beinhalten. Aber das grundsätzlich Prinzip sollte klar sein. Viel Erfolg!