Logstash trigger exec не работает?

#elasticsearch #logstash #elastic-stack

#elasticsearch #logstash #эластичный-стек

Вопрос:

Я использую elk stack для регистрации данных моего сервера, я прочитал в документации, что logstash можно использовать для запуска сигнала тревоги или события через commnand exec

Итак, я пытаюсь сделать то же самое, я хотел бы запустить скрипт, когда в журнале появляется определенный шаблон / строка, пока моя конфигурация выглядит так, как показано ниже. Однако он не работает, и я не могу видеть, выполняется сценарий или нет. С другой стороны, я не уверен, найдена строка или нет, я использовал ту же строку в Kibana, и я могу изолировать сообщение, в котором я хотел бы вызвать тревогу

Что я делаю не так?

РЕДАКТИРОВАТЬ: я запускаю logstash в docker, я монтирую nodeFail.bash том с помощью

 volumes:
  - /root/t/nodeFail.bash:/tmp/logstash/nodeFail.bash
  

Заранее спасибо,

 $cat logstash.conf 
input {
    tcp {
        port => 5000
    }
    gelf {
    }
}

## Add your filters / logstash plugins configuration here

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
    }


    if "All brokers rejected" in [message]
    {
        exec {
            command => "/tmp/logstash/nodeFail.bash aNode 12345 start amp;"
        }
    }
}
  

Комментарии:

1. Вы видите что-нибудь в журнале?

2. Только то, что это было начато, но ничего больше {:timestamp=>"2016-10-10T12:59:10.872000 0000", :message=>"Pipeline main started"}

3. И вы уверены, что соответствующие документы сопоставляются для этого результата? Возможно, вам следует добавить stdout { codec => "rubydebug" } сразу после exec , чтобы посмотреть, сопоставляются ли соответствующие документы.

4. Это так, добавив эту строку, я получаю ожидаемое сообщение, которое должно вызвать exec, "message" => "e[90m DEBUGe[0m All brokers rejected e[90mDevAddre[0m=12345",

5. Вы уверены, что /tmp/logstash/nodeFail.bash это выполнимо? вы chmod a x это сделали?