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