logstash _grokparsefailure 用于非常简单的标记

logstash _grokparsefailure for realy simple tag

我不明白为什么这个简单的配置会导致 grokparse 失败:

input {
  file {
    path => "/var/log/*.log"
    codec => json {
    }
  }
}
filter {
  grok {
    add_tag => ["test"]
  }
}
output {
  elasticsearch {
      /.../
  }
}

日志被正确发送到 elasticsearch,json 被正确解析,但是添加的标签不起作用,而是我有一个标签“_grokparsefailure”。我想要的是传递一个静态值作为标签。

我肯定遗漏了一些愚蠢的东西,但我找不到什么。

您的 grok 过滤器不执行任何操作,没有可匹配的模式,只有在成功匹配后才会应用标签。

要在您的案例中添加标签,您可以在输入中使用 tags 选项或 mutate 过滤器。

要使用 tags 选项,只需将您的输入更改为该选项:

input {
  file {
    path => "/var/log/*.log"
    codec => json
    tags => ["test"] 
  }
}

要使用 mutate 过滤器,请将波纹管配置放入 filter 块中。

mutate {
    add_tag => ["test"]
} 

这两种配置都会为您的所有邮件添加一个 test 标签。