Как я могу обнаружить ошибки и ненулевые коды выхода при выполнении скриптов на входе, например, exec-input?Обработка ошибок Logstash в exec-input
Я использую logstash для различных задач, например, для мониторинга узлов, вызывая оболочку или скрипт python, который возвращает некоторые показатели. Однако время от времени сценарии терпят неудачу, обычно с кодом выхода 1.
Проблема заключается в том, что Logstash просто игнорирует отказ, поэтому неудачная команда остается незамеченной.
Можно ли каким-либо образом перехватить отказ, чтобы хотя бы зарегистрировать ошибку?
Простой случай:
$ cat myexit.sh
#!/bin/bash
exit 1
$ logstash -e 'input { exec { command => "./myexit.sh" interval=> 10 } } output { stdout {} }' -v
Settings: Default pipeline workers: 1
Registering Exec Input {:type=>nil, :command=>"./myexit.sh", :interval=>10, :level=>:info}
Starting pipeline {:id=>"base", :pipeline_workers=>1, :batch_size=>125, :batch_delay=>5, :max_inflight=>125, :level=>:info}
Pipeline started {:level=>:info}
Logstash startup completed
Running exec {:command=>"./myexit.sh", :level=>:info}
Command completed {:command=>"./myexit.sh", :duration=>0.038, :level=>:info}
2016-03-07T15:05:12.401Z 6755322742e7
Никаких признаков того, что произошла ошибка ...
Хорошая идея. Создан https://github.com/logstash-plugins/logstash-input-exec/issues/12 – selle