Logstash не может отправлять электронные письма, когда я использую переменную в качестве ключевого слова триггера электронной почты - PullRequest
0 голосов
/ 09 января 2019

Я настроил logstash таким образом, чтобы мы могли динамически настраивать ключевое слово alert, которое отправит электронное письмо, когда оно появится в сообщении. Logstash не может отправлять электронные письма, когда я использую переменную в качестве ключевого слова триггера электронной почты.

Моя старая конфигурация сработала: я получил электронные письма, когда в сообщении есть ключевое слово ERROR

 if "ERROR" in [message] {
email {
  address=>"mailsrv.unix.gsm1900.org"
  port=>25
  from => "logstash_alert@t-mobile.com"
  subject => "(${SPRING_PROFILES_ACTIVE}) Logstash Alert from ${APPLICATION_NAME}"
  via => "smtp"
  to => "${CLIENT_MAIL}"
  body => "In host ${HOST_IP:HOST_NOT_SET} the event line that occurred: %{message}"
}

Новый конфиг: он не отправляет никаких писем. Я установил ключевое слово ERROR для этой переменной в файле / etc / default / logstash

 if "${EXCEPTION_STRING}" in [message] {
email {
  address=>"mailsrv.unix.gsm1900.org"
  port=>25
  from => "logstash_alert@t-mobile.com"
  subject => "(${SPRING_PROFILES_ACTIVE}) Logstash Alert from ${APPLICATION_NAME}"
  via => "smtp"
  to => "${CLIENT_MAIL}"
  body => "In host ${HOST_IP:HOST_NOT_SET} the event line that occurred: %{message}"
}

Пожалуйста, помогите здесь. Спасибо

1 Ответ

0 голосов
/ 10 января 2019

Перейдите на машине обратного пути к 2016 , чтобы увидеть, что переменные не поддерживаются в условных выражениях. Этот пост предоставляет обходной путь установки переменной в метаданные, которые затем можно использовать в условном выражении:

mutate {
  add_field => { "[@metadata][EXCEPTION_STRING]" => "${EXCEPTION_STRING}" }
}

if [@metadata][EXCEPTION_STRING] in [message] {
  ...
}
...