Назад | Перейти на главную страницу

Logstash, Kibana и оповещения по электронной почте

Я пытаюсь настроить оповещения по электронной почте с помощью logstash. Прямо сейчас он присылает мне электронные письма КАЖДЫЙ раз, когда шаблон «Ошибка» анализируется в моем файле журнала, что может привести к появлению множества ненужных писем. Я хотел бы создать условное правило, чтобы, скажем, «X файл журнала имеет шаблон Ошибка 3x за 1 минуту, напишите мне». Таким образом, я не буду перегружен электронными письмами.

Вот моя текущая конфигурация:

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.html