疲劳是最舒适的枕头,努力工作吧。

logstash _grokparsefailure on successful match 无论grok成功与否都有解析失败标签

匿名 | 发布于2018年02月13日 | 阅读数:10627

   conf文件基本如下所示:
input {
 file {
        type => "agent"
        path => [
            "/data/logs/agent/**/*"
        ]
}
}
 
filter {
 
        grok {
            break_on_match => false

            match => { "path" => "agent/%{BASE16NUM:comid}/%{BASE16NUM:agent_id}/.*" }
            match => { "message" => "\[%{NUMBER:pid:int}-%{DATA:tid:int}:%{NUMBER:row:int}\] %{TIMESTAMP_ISO8601:log_time} \[%{DATA:log_level}\] \- %{GREEDYDATA:log_body}" }
            tag_on_failure => []
        }
}
output {
        elasticsearch {
              ........
        }
}
 
 
最后在es中发现,所有成功的事件,每一条记录的tags字段中都包含_grokparsefailure标签,这个标签是怎么产生的-明明已经匹配成功了啊
 
已邀请:

luohuanfeng

赞同来自: shwtz

_grokparsefailure内容复制出来 ,用grok检测工具去匹配一下.

tacsklet - 公司有用到es

赞同来自: shwtz

也可能的情况是匹配的不完整,你定义的某些正则没有匹配到,解析不完全也会出现这个标签。

locatelli

赞同来自:

一般不是应该这样吗:
 
  if "_grokparsefailure" in [tags] {
drop {}
}

所以是不是实际上并没有匹配?

要回复问题请先登录注册