Перезагрузите файлы конфигурации logstash, даже если файл не изменился - PullRequest
0 голосов
/ 18 апреля 2019

Я использую logstash для отправки сообщений в поток AWS Kinesis, а выходной плагин требует аутентификации, эта аутентификация будет ссылаться на переменную среды или файл. Нам не нужно устанавливать пользователя и ключ доступа в конфигурации logstash, по умолчанию он будет ссылаться на переменную env или файл. Теперь эти учетные данные будут изменены, и мне придется перезагрузить конвейер logstash. С горячей перезагрузкой или автоматической перезагрузкой я думаю, что logstash будет искать любые изменения в конфигурации, но в моем случае конфигурация logstash не изменится, переменная окружения или файл изменится. Как мы можем заставить logstash перезагрузить файл конфигурации в этом случае.

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
   file {
    path => "\xx\\elk.log"
  }
}

output {
 kinesis {
    stream_name => "acars-stream"
    region => "us-east-2"
  }
}

Используемый плагин - https://github.com/samcday/logstash-output-kinesis

1 Ответ

0 голосов
/ 18 апреля 2019

Поскольку вы упомянули, что учетные данные могут передаваться с использованием переменных среды, вы можете использовать переменные среды в выходном плагине с автоматической перезагрузкой конфигурации, включенной для logstash.Что-то вроде этого:

output {
 kinesis {
    stream_name => "acars-stream"
    region => "us-east-2"
    access_key => "${AWS_ACCESS_KEY}"
    secret_key => "${AWS_SECRET_KEY}"    
  }
}

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

Обратитесь к документации по перезагрузке: https://www.elastic.co/guide/en/logstash/6.4/reloading-config.html Вы бы сделали что-то вроде:

kill -1 PID_OF_YOUR_LOGSTASH_PROCESS
...