Я пытаюсь установить предупреждения по электронной почте с помощью 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