后来发现,以上配置,只对一个项目的日志起作用,别的一样格式的日志不起作用。
filter { grok { match => { "message" => "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} %{HOUR:hour}:?%{MINUTE:minute}(?::?%{SECOND}) %{LOGLEVEL:level}[ ]+%{JAVACLASS:class} %{JAVAFILE:line} - %{GREEDYDATA:logmsg}"} remove_field => "message" } if [LOGLEVEL] == "DEBUG" { drop {} } if [LOGLEVEL] == "INFO" { drop {} } if [LOGLEVEL] == "WARN" { drop {} } date { match => [ "%{year}-%{month}-%{day} %{hour}:%{minute}:%{SECOND}" , "YYYY-MM-dd HH:mm:ss" ] target => "@timestamp" add_tag => [ "tmatch" ] } }
重点是这段
if [LOGLEVEL] == "DEBUG" { drop {} }
filter { if ([message] = " ") { }
你可以在 日志收集端/es收集端的 logstash,将每行内容分段好, 假设分段结果为
{ "time": "2017-01-21 11:21:25,652", "level": "ERROR", .... }
在es的logstash-ouput, 就能通过 if 判断 level内容 那个字段来写入es
output { if [level] == "ERROR" { #stdout { codec => rubydebug } redis { } } }
最后换成了if的格式
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(5)
后来发现,以上配置,只对一个项目的日志起作用,别的一样格式的日志不起作用。
重点是这段
filter {
if ([message] = " ") {
}
你可以在 日志收集端/es收集端的 logstash,将每行内容分段好, 假设分段结果为
在es的logstash-ouput, 就能通过 if 判断 level内容 那个字段来写入es
最后换成了if的格式