Logstash、Kibana 和电子邮件警报

Gab*_*iel 4 email alerts rate-limiting logstash kibana

我正在尝试使用 logstash 设置电子邮件警报。现在,每次将模式“错误”解析到我的日志文件时,它都会给我发电子邮件,这可能会导致很多不必要的电子邮件。我想创建一个条件规则,以便让我们说“X 日志文件的模式为 1 分钟内出现错误 3 次,请给我发电子邮件”。这样我就不会被电子邮件淹没。

这是我当前的配置:

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"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

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

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

riemann 的优势之一是您可以将某个时间的所有消息汇总到一封电子邮件中。这样,您将不会收到很多电子邮件,但仍会收到所有消息。

更多例子可以在http://riemann.io/howto.html找到