Bonjour
Je cherche à analyser via logstash un fichier xml organisé hiérarchiquement comme l'exemple suivant :
<xml>
<listniv1>
<id_listniv1>id1_1</id_listniv1>
<listniv2>
<id_listniv2>id2_1</id_listniv2>
<msg>
<id_msg>idmsg1<id_msg>
...
</msg>
<msg>
<id_msg>idmsg2<id_msg>
...
</msg>
</listniv2>
<listniv2>
<id_listniv2>id2_2</id_listniv2>
<msg>
<id_msg>idmsg3<id_msg>
...
</msg>
<msg>
<id_msg>idmsg4<id_msg>
...
</msg>
</listniv2>
</listniv1>
</xml>
Les événements à traiter sont identifiés par les tags <msg>
.
Si j'utilise le codec "multiline" pour découper les messages au niveau du tag <msg>
je perds les infos de plus haut niveau dans la hiérarchie xml.
Hors j'ai besoin dans le message final de retrouver l'id de la liste de niveau 1 et 2 (</id_listniv1>
et </id_listniv2>
) dans chaque message comme l'exemple de sortie ci-dessous :
Résultat attendu
{
id_listniv1 : id1_1
id_listniv2 : id2_1
id_msg : idmsg1
...
}
{
id_listniv1 : id1_1
id_listniv2 : id2_1
id_msg : idmsg2
...
}
{
id_listniv1 : id1_1
id_listniv2 : id2_2
id_msg : idmsg3
...
}
{
id_listniv1 : id1_1
id_listniv2 : id2_2
id_msg : idmsg4
...
}
Sauriez-vous comment procéder avec logstash et le plugin xmlfilter ?