如何在 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 然后您的活动的现有字段只保留需要的数据。