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

предупреждение logstash после 1000 вхождений

Я пытаюсь заставить Logstash предупреждать меня только после того, как он получит более 1000 элементов в течение 10 минут. Мне нужны оповещения как в Hipchat, так и в PagerDuty.

Моя конфигурация кажется разумной, но работает не так, как ожидалось.

filter {
    if my_filtering_conditional_that_is_100%_correct {
        throttle {
            before_count => 1000
            period => 600
            add_tag => ["PD"]
            key => "string"
        }
        clone {
            add_tag => ["Count"]
        }
    }
    if "Count" in [tags] {
        throttle {
            before_count => 1000
            period => 600
            add_tag => ["HC"]
            key => "string"
        }
    }
}

output {
    if "PD" in [tags] {
         pagerduty {
            event_type => trigger
            incident_key => "logstash/Logstash"
            service_key => Pagerduty_API_key
            workers => 1
            description => "Alert message"
        }
    }
    if "HC" in [tags] {
        hipchat {
            color => "random"
            from => "Logstash"
            format => "Alert message"
            room_id => "Room"
            token => "token"
        }
    }
}

Вы можете добиться большего успеха, используя метрики фильтр.

filter {
  my_filtering_conditional_that_is_100%_correct {
    metrics {
      meter => [ "events" ]
      flush_interval => 600
      clear_interval => 600
      add_tag => "events"
    }
  }
}

output {
  if "events" in [tags] {
    if [events][count] > 1000 {
      # do things
    }
  }
}

Я думаю, что лучшим вариантом будет использование http://riemann.io/. Он обрабатывает «потоки» событий, и такую ​​логику было бы несложно представить там.

Пример по следующей ссылке создает предупреждение, когда существует более 5 событий определенного типа:

(streams
  (where (<= 0 metric 5)
    (with :state "ok" index)
    (else
      (with :state "warning" index))))

http://riemann.io/howto.html#set-thresholds

Приветствую,