У меня есть контейнер RabbitMQ docker, который отлично работает и принимает сообщения, сохраняя их в очереди. Сейчас я пытаюсь переместить эти сообщения и вставить их в elasticsearch. Я потратил некоторое время на чтение об этом, и, согласно документации elasti c, этого можно достичь, запустив экземпляр logsta sh и настроив его с помощью подключаемого модуля RabbitMQ.
Итак, мой вопросы:
- Может ли logsta sh фактически играть роль потребителя и вообще получать сообщения из очереди и вставлять их в elasti c?
- Предполагая, что Это так, и наличие контейнера logsta sh docker является правильным:
Команда для запуска контейнера docker logsta sh:
docker run --rm -it -v ~/pipeline/:/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash:7.8.0
- В этой ситуации я указываю контейнеру использовать файл конфигурации вне контейнера, расположенного на сервере: / usr / share / logstash / pipeline / - эта команда была взята из elasti c документы.
Правильный ли приведенный ниже пример файла конфигурации? имейте в виду, что elasti c, kibana и logsta sh в основном находятся на одном сервере и работают в разных контейнерах.
input {
rabbitmq {
host => "IP OF RABBITMQ"; - located on another VM.
durable => true
password => "guest"
user => "guest"
exchange => "RLMF"
exchange_type => "topic"
queue => "db.rlmf"
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}