如何在 logstash 中解析 XML 日志文件
How to parse XML log file in logstash
我有一个如下所示的示例日志文件
<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 过滤器,但没有运气,如果有人帮助我提供示例代码,那将是一个很大的帮助。
如果您的示例是一条消息,则它需要一个容器,例如:
<foo>
<error message="file missing">
<value>01</value>
</error>
<dealer id="01" data="some text">Approved</dealer>
<foo>
这个 xml{} 过滤器将处理那个(注意 "message" 而不是你的“@message”)
filter {
xml {
source => "message"
}
}
可以像这样使用 xpath 获取数据:
xml {
source => "message"
store_xml => false
xpath => {
"//site/text()" => "site"
"//dateCreation[1]/text()" => "date_creation"
"//commande:Tiers[1]/identifiant/text()" => "tiers_id"
}
}
然后xpath的每一个结果都存储在targeted字段中
您可能 replace/delete 然后您的活动的现有字段只保留需要的数据。
我有一个如下所示的示例日志文件
<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 过滤器,但没有运气,如果有人帮助我提供示例代码,那将是一个很大的帮助。
如果您的示例是一条消息,则它需要一个容器,例如:
<foo>
<error message="file missing">
<value>01</value>
</error>
<dealer id="01" data="some text">Approved</dealer>
<foo>
这个 xml{} 过滤器将处理那个(注意 "message" 而不是你的“@message”)
filter {
xml {
source => "message"
}
}
可以像这样使用 xpath 获取数据:
xml {
source => "message"
store_xml => false
xpath => {
"//site/text()" => "site"
"//dateCreation[1]/text()" => "date_creation"
"//commande:Tiers[1]/identifiant/text()" => "tiers_id"
}
}
然后xpath的每一个结果都存储在targeted字段中 您可能 replace/delete 然后您的活动的现有字段只保留需要的数据。