2013-02-01 38 views
4

摘要:我有几个出站smtp服务器和集中邮件日志通过rsyslog到我使用logstash服务器,输出到elasticsearch,与kibana搜索。Logstash grok过滤器来标记反弹消息

我想标记像Postfix邮件日志条目为“弹跳”:

2013-02-01T16:50:14+02:00 XXSMTPXX postfix/smtp[10879]: BC54A65BD4: to=<[email protected]>, relay=none, delay=0.3, delays=0.01/0/0.29/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=gozdesigorta.com.t type=AAAA: Host not found) 

的神交过滤我在logstash.conf使用的是这样的:

grok { 
    patterns_dir => "/etc/logstash/patterns" 
    tags => "postfix/bounce" 
    pattern => "%{POSTFIXBOUNCE}" 
    add_tag => "BOUNCED" 
    named_captures_only => true 
} 

模式文件我使用的是https://gist.github.com/4691822

我无法设法将这些日志行标记为BOUNCED ...我错过了什么?

回答

1

我改变了格局为:

%{TIMESTAMP_ISO8601} %{HOST} %{SYSLOGPROG}: %{QUEUEID}: to=<%{EMAILADDRESS:to}>, relay=%{RELAY}, delay=%{POSREAL:delay}, delays=%{DELAYS}, dsn=%{DSN}, status=%{STATUS} %{GREEDYDATA:reason} 

现在我可以神交;)

+1

顺便说一句,好像你正在使用groks所有'A = B'值。这不是必需的,只需使用kv过滤器即可。 :) –