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
标签。
我不明白为什么这个简单的配置会导致 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
标签。