Согласно предыдущему обсуждению (определение нескольких выходов в Logstash, пока обработка потенциальной недоступности экземпляра Elasticsearch) Сейчас я использую конвейеры в Logstash для отправки входных данных (от Beats на TCP 5044) на несколько хостов Elasticsearch. Соответствующая выдержка из pipelines.yml
показана ниже.
- pipeline.id: beats
queue.type: persisted
config.string: |
input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => '/etc/logstash/config/certs/ca.crt'
ssl_key => '/etc/logstash/config/certs/forwarder-001.pkcs8.key'
ssl_certificate => '/etc/logstash/config/certs/forwarder-001.crt'
ssl_verify_mode => "force_peer"
}
}
output { pipeline { send_to => [es100, es101] } }
- pipeline.id: es100
path.config: "/etc/logstash/pipelines/es100.conf"
- pipeline.id: es101
path.config: "/etc/logstash/pipelines/es101.conf"
В каждом из файлов конвейера .conf
у меня есть соответствующий виртуальный адрес, т.е. файл /etc/logstash/pipelines/es101.conf
включает в себя следующее:
input {
pipeline {
address => es101
}
}
Эта конфигурация работает хорошо, т. е. данные принимаются каждым из хостов Elasticsearch es100
и es101
.
Мне нужно убедиться, что если один из этих хостов недоступен, другой все еще получает данные, и благодаря предыдущему совету я теперь использую конвейеры, которые, как я понимаю, позволяют это. Однако я явно упускаю что-то ключевое в этой конфигурации, поскольку данные не принимаются хостом, если другой недоступен. Любые предложения с благодарностью приветствуются.