Logstash, Kibana e alertas por e-mail

4

Estou tentando configurar alertas de email usando o logstash. Agora ele me e-mails toda vez que o padrão "Erro" é analisado em meu arquivo de log que pode levar a um monte de e-mails desnecessários. Eu gostaria de criar uma regra condicional para que digamos que "X logfile tem o padrão Error 3x in 1 minute email me". Dessa forma, não fico sobrecarregado com emails.

Aqui está minha configuração atual:

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"
        }
    }
}
    
por Gabriel 08.09.2014 / 18:04

1 resposta

7

Nós apenas configuramos o Riemann para lidar com alertas baseados em mensagens de log.

Riemann pode ler um fluxo de mensagens de log do logstash e enviar alertas com base no conteúdo.

Uma das vantagens do riemann é que você pode acumular todas as mensagens de um determinado tempo em um único e-mail. Desta forma, você não receberá muitos e-mails, mas ainda assim receberá todas as suas mensagens.

Mais exemplos podem ser encontrados no link

    
por 24.10.2014 / 15:58