Logstash、Kibana 和电子邮件提醒

Logstash、Kibana 和电子邮件提醒

我正在尝试使用 logstash 设置电子邮件警报。现在,每次将模式“Error”解析到我的日志文件中时,它都会向我发送电子邮件,这会导致大量不必要的电子邮件。我想创建一个条件规则,这样就可以说“X 日志文件在 1 分钟内有 3x 模式 Error 给我发送电子邮件”。这样我就不会被电子邮件淹没了。

以下是我的当前配置:

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 => "[email protected]"
        to => "[email protected]"
        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"
        }
    }
}

答案1

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

Riemann 可以从 logstash 读取日志消息流并根据内容发出警报。

Riemann 的一个优点是您可以将某个时间的所有消息汇总到一封电子邮件中。这样,您无需发送太多电子邮件,但仍可收到所有消息。

更多示例可参见http://riemann.io/howto.html

相关内容