我有一个示例日志文件,如下所示
<error message="file missing">
<value>01</value>
</error>
<dealer id="01" data="some text">Approved</dealer>
我想解析上面的代码,并希望在Kibana中显示数据,如@message="file missing", @value="01", @dealer_id="01", @dealer_data = "some text"
。
我是ELK框架的新手。我尝试过使用xpath过滤器,但如果有人帮我提供示例代码就没有运气,这意味着它会有很大的帮助。
答案 0 :(得分:5)
可以使用xpath获取数据,如下所示:
xml {
source => "message"
store_xml => false
xpath => {
"//site/text()" => "site"
"//dateCreation[1]/text()" => "date_creation"
"//commande:Tiers[1]/identifiant/text()" => "tiers_id"
}
}
然后xpath的每个结果都存储在目标字段中 您可以替换/删除事件的现有字段,以仅保留所需的数据。
答案 1 :(得分:0)
如果您的样本是一条消息,则需要一个容器,例如:
<foo>
<error message="file missing">
<value>01</value>
</error>
<dealer id="01" data="some text">Approved</dealer>
<foo>
这个xml {}过滤器会处理它(注意“消息”而不是你的“@message”)
filter {
xml {
source => "message"
}
}