首页 文章

如何在logstash中解析XML日志文件

提问于
浏览
2

我有一个示例日志文件,如下所示

<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过滤器,但如果有人帮我提供示例代码就没有运气,这意味着它将是一个很好的帮助 .

2 回答

  • 0

    可以使用xpath获取数据,如下所示:

    xml {
          source => "message"
          store_xml => false
          xpath => {
            "//site/text()" => "site"
            "//dateCreation[1]/text()" => "date_creation"
            "//commande:Tiers[1]/identifiant/text()" => "tiers_id"
          }
        }
    

    然后xpath的每个结果都存储在目标字段中您可以替换/删除事件的现有字段以仅保留所需的数据 .

  • 5

    如果您的样本是一条消息,则需要一个容器,例如:

    <foo>
      <error message="file missing">
        <value>01</value>
      </error>
      <dealer id="01" data="some text">Approved</dealer>
    <foo>
    

    这个xml {}过滤器会处理它(注意“消息”而不是你的“@message”)

    filter {
      xml {
       source => "message"
      } 
    }
    

相关问题