Logstash,Kibana和电子邮件警报

我正在尝试使用logstash设置电子邮件警报。 现在它给我发电子邮件每次模式“错误”被分析到我的日志文件,这可能会导致大量不必要的电子邮件。 我想创build一个有条件的规则,让我们说“X日志文件在1分钟内有错误3x模式给我发电子邮件”。 这样我就不会被电子邮件淹没。

这是我目前的configuration:

input { file { # sincedb_path => /path/to/whatever/ path => "/opt/test.log" type => "test_log" } } filter { dns { add_field => [ "IPs", "Logs, from %{host}" ] type => [ "MESSAGES" ] resolve => [ "host" ] action => [ "append" ] } } filter { if [message] == "Error" or [message] == "error" { throttle { before_count => 1 after_count => 3 period => 10 key => "%{message}" add_tag => "throttled" } } } output { # stdout { codec => rubydebug } redis { host => "redis_IP" data_type => "list" key => "logstash" } if "throttled" not in [tags] { email { from => "logstash@shipper.com" to => "sysadmin@something.com" subject => "Alert from %{path}, from %{host}" body => "Message is: ]\n'%{message}'. \nLog file:\n %{path}:\n\n%{message}.\n More information can be viewed in Kibana" } } } 

我们只是设置Riemann来处理基于日志消息的警报。

Riemann可以从logstash中读取一串日志消息,并根据内容发送警报。

Riemann的优势之一是您可以将所有邮件从一定时间汇总到一封电子邮件中。 这样你就不会收到很多电子邮件,但是你仍然可以得到你所有的信息。

更多的例子可以在http://riemann.io/howto.htmlfind