elasticsearch - 如何使用 logstash 过滤器解析 xml 文件

标签 elasticsearch logstash logstash-forwarder logstash-configuration elastic-stack

我正在尝试使用 elasticsearch 和 logstash 索引一些简单的 XML 文件。到目前为止,我已经设置了 ELK-stack 和 logstash-forwarder。我正在尝试使用 documentation设置一个 xml 过滤器,但我似乎无法正确处理。

我的 XML 格式非常简单;

<Recording>

  <DataFile description="desc" fileName="test.wav" Source="mic" startTime="2014-12-12_121212" stopTime="2014-12-12_131313"/>

</Recording>

我只希望每个文件都是 elasticsearch 中的一个条目,并且 DataFile-tag 中的每个参数都是我可以搜索的键值。由于文档让我无处可去,这样的过滤器看起来如何?我也尝试使用 this 中的答案和 this没有任何运气。

最佳答案

在您的 logstash-forwarder 配置中添加以下内容,并相应地更改 logstash 服务器 IP、证书路径和日志路径。

{
"network": {
"servers": [ "x.x.x.x:5043" ],
"ssl ca": " / cert/server.crt",
"timeout": 15
},
"files": [
{
"paths": [
"D:/ELK/*.log"
],
"fields": { "type": "log" }
}
]
}

在您的 logstash 服务器配置中添加以下输入插件。相应地更改证书、 key 路径和名称。
lumberjack {
  port => 5043
  type => "lumberjack"
  ssl_certificate => " /cert/server.crt"
  ssl_key => "D:/ELK/logstash/cert/server.key"
  codec => multiline {
             pattern => "(\/Recording>)"
             what => "previous"
            negate => true
            }
}

现在在您的 logstash 过滤器部分下添加以下 grok 过滤器
grok {
        match   =>  ["message", "(?<content>(< Recording(.)*?</Recording>))"]
        tag_on_failure => [ ]

        }

最后在logstash输出 session 中添加
elasticsearch {
                    host => "127.0.0.1"
                    port => "9200"
                    protocol => "http"
                    index => "Recording-%{+YYYY.MM.dd}"
                    index_type => "log"
                } 

现在,当您将 xml 消息添加到日志文件中时。每个条目都将被处理并存储在您的 Elasticsearch 服务器中。

谢谢,

关于elasticsearch - 如何使用 logstash 过滤器解析 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693591/

相关文章:

ruby - 如何在 Elasticsearch for ruby​​ 中使用 More Like This API

amazon-web-services - Logstash 输出到 AWS EC2 上的 Elasticsearch

elasticsearch - 为什么logstash-forwarder在每个伐木 worker 请求中发送的事件不超过100个?

elasticsearch - 日志存放位置ELK栈

elasticsearch - 由于 SearchContextMissingException 重新索引失败

elasticsearch - Elasticsearch每天创建多个索引

nosql - NULL字段文档模型

spring-boot - 麋鹿 : One or more required cgroup files or directories not found:/proc/self/cgroup

elasticsearch - 在Kibana上显示崩溃/终止的Pod日志

node.js - NodeJS Bunyan Logstash 日志索引