logstash - 消除Logstash中的顶级字段

标签 logstash

我正在使用 Logstash,我的一个应用程序正在向我发送以下字段:

[message][UrlVisited]
[message][TotalDuration]
[message][AccountsProcessed]

我希望能够折叠这些字段,删除顶级 留言 共。所以上面的字段会变成:
[UrlVisited]
[TotalDuration]
[AccountsProcessed]

有没有办法在 Logstash 中做到这一点?

最佳答案

假设所有这些子字段的名称事先已知,您可以使用 mutate filter :

filter {
  mutate {
    rename => ["[message][UrlVisited]", "UrlVisited"]
  }
  mutate {
    rename => ["[message][TotalDuration]", "TotalDuration"]
  }
  mutate {
    rename => ["[message][AccountsProcessed]", "AccountsProcessed"]
  }
  mutate {
    remove_field => ["message"]
  }
}

或者,使用 ruby filter (即使您不知道字段名称也有效):
filter {
  ruby {
    code => "
      event.get('message').each {|k, v|
        event.set(k, v)
      }
      event.remove('message')
    "
  }
}

此示例适用于 Logstash 2.4 及更高版本。对于早期版本,使用 event['message'].each ...event[k] = v反而。

关于logstash - 消除Logstash中的顶级字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367837/

相关文章:

elasticsearch - Logstash:迁移后丢失数据

elasticsearch - 即使我从远程服务器注销,如何仍保持logstash运行

regex - GROK 模式适用于 GROK 调试器,但不适用于 Logstash GROK

http - 在Logstash中按时间戳查询项目

elasticsearch - 使用Logstash在ElasticSearch中加载CSV

elasticsearch - 更改所有LOGSTASH创建的索引的字段映射

linux - Logstash 打开了太多文件?

elasticsearch - Elasticsearch 使用上下文加载CSV数据

elasticsearch - 忽略旧文件,并使用logstash仅推送来自S3的最新日志文件

clojure - 提醒黎曼?