web-dev-qa-db-ja.com

Logstash、Kibana、および電子メールアラート

Logstashを使用してメールアラートを設定しようとしています。今のところ、「エラー」というパターンがログファイルに解析されるたびにメールで通知され、不要なメールが大量に送信される可能性があります。条件付きルールを作成して、「Xログファイルに1分間にエラー3xのパターンがメールで送信される」とするようにします。この方法で、メールに圧倒されません。

これが私の現在の設定です:

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"
        }
    }
}
4
Gabriel

ログメッセージに基づいてアラートを処理するようにリーマンを設定するだけです。

リーマンは、logstashからログメッセージのストリームを読み取り、その内容に基づいてアラートを送信できます。

Riemannの利点の1つは、特定の時間のすべてのメッセージを1つの電子メールにまとめることができることです。この方法では、多くの電子メールは届きませんが、すべてのメッセージを受信できます。

さらに多くの例が http://riemann.io/howto.html にあります。

7