Я хочу, чтобы logstash завершал работу с кодом 0 после обработки всех файлов журнала, чтобы пометить Gitlab-ci Job как успешный - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь настроить задание Gitlab-ci, которое собирает журналы с рабочих серверов и отправляет их на серверasticSearch через задание, использующее образ докера Logstash.

Я знаю, что это не обычный метод, но нам не разрешено устанавливать Logstash на этих серверах!

Задание работает хорошо, но проблема в том, что у нас нет возможности указать Logstash параметр для выхода с кодом 0 после завершения обработки файла.

Поэтому задание Gitlab-ci всегда выполняется и останавливается с кодом ошибки при достижении максимального времени выполнения. Конвейер помечается как сбойный, даже если журналы хорошо проиндексированы в Elasticsearch!

Есть идеи, как решить или обойти эту ситуацию?

Ниже приведено задание Gitlab-ci, которое запускает Logstash

Job:Process:
  stage: process
  image: logstash:6.5.4
  dependencies:
    - Job:Getlogs
  script:
    - logstash -f config/logstash.conf

Заранее спасибо и извините за мой перевод на английский!

1 Ответ

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

Уловка, которую я видел в другом месте, состоит в том, чтобы направить ваши журналы в logstash и использовать ввод stdin для их обработки.

 cat /var/log/my_log | logstash -f my_config
...