Hello,
im currently trying to parse a XML-log. I worked with logstash the past month to parse simple single- or multiline logs, so im familiar with the functionality of input{} / filter{} / output{}.
Now i want to parse a XML-file which looks like this:
<WartungNG>
<BBMAG1100>
<Ereignisliste>
<Application>
<Ereignis Nr.="1" Protokollname="Application" Quelle="SQLSERVERAGENT" Ebene="Warnung" Id="208" TimeCreated="03/29/2018 04:27:37" Message="SQL Server Scheduled Job 'Transfer ZEDs_VP' (0xA5FB01B26413D44BA237B477D03D50B8) - Status: Fehler - Invoked on: 2018-03-29 04:12:00 - Message: Auftragsfehler Der Auftrag wurde von Zeitplan 13 (Alle 3 Minuten) aufgerufen. Zuletzt wurde Schritt 1 (Transfer VP) ausgeführt." />
<Ereignis Nr.="2" Protokollname="Application" Quelle="SQLSERVERAGENT" Ebene="Warnung" Id="208" TimeCreated="03/27/2018 23:57:04" Message="SQL Server Scheduled Job 'Transfer_ZEDs_STE' (0x5CDB83FB9324EB43A84A5AC59DFED8AC) - Status: Fehler - Invoked on: 2018-03-27 23:57:00 - Message: Auftragsfehler Der Auftrag wurde von Zeitplan 13 (Alle 3 Minuten) aufgerufen. Zuletzt wurde Schritt 1 (Transfer STE) ausgeführt." />
...
</Application>
<System>
<Ereignis Nr.="1" Protokollname="..." Quelle="..." Ebene="..." Id="..." TimeCreated="..." Message="..." />
</System>
</Ereignisliste>
<PruefungUhrzeit Uhrzeitremote="04/04/2018 10:30:50" Uhrzeitlokal="04/04/2018 10:30:51" />
<Laufwerke>
<Laufwerk Driveletter="A:" VolumeName="" Size="" FreeSpace="" />
<Laufwerk Driveletter="C:" VolumeName="System" Size="10487197696" FreeSpace="4781629440" />
<Laufwerk Driveletter="D:" VolumeName="Daten" Size="32448696320" FreeSpace="29048705024" />
<Laufwerk Driveletter="E:" VolumeName="" Size="" FreeSpace="" />
</Laufwerke>
<Softwareversion />
</BBMAG1100>
</BBMAG1101>
...
</BBMAG1102>
...
</WartungNG>
(BBMAG1100 until BBMAG1113 are constructed like the shown example)
I would like to get the source of the event (BBMAG1100) and the other attributes like timestamp, number, name ...
Do i need to use Multiline or can the Xml filter plugin parse those anyways?
I dont really know how to tell the filter how do i want the json data to look like.
Do i need to tell the filter the different "levels" like:
<WartungNG>
<BBMAG1100>
<Ereignisliste>
<Application>
I think im missing the point how the Xml filter plugin works, hope someone can help me on this.
Thanks in advance for your time.
Best regards