#docker #elasticsearch #docker-compose #kibana #elk
#docker #elasticsearch #docker-compose #kibana #elk
Вопрос:
У меня такая конфигурация, я бы хотел, чтобы данные сохранялись при перезагрузках, но прямо сейчас этого не происходит, все работает нормально, но когда я опускаю и поднимаю ELK, он становится пустым, и все панели мониторинга также теряются.
Что не так?
version: '3.3'
services:
logstash:
container_name: logstash
image: docker.elastic.co/logstash/logstash:6.7.0
command: bash -c 'bin/logstash -e "input { http { port => 5044 } } filter { split {} csv { separator => "," columns => ["Job", "BuildId", "Start", "Start_date", "Start_time", "Stop_time", "Stop_date", "Stop_time", "Execution_time", "Queue_time", "Executor", "Result", "Parent", "ChangeId", "Repo", "User"] convert => { "Start_time" => "date" "Stop_time" => "date" } } mutate { convert => { "Execution_time" => "float" "Queue_time" => "float"}} date { match => [ "Start time", "yyyy-MM-dd HH:mm:ss" ] } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "job-executions" } }"'
networks:
- elastic-net
ports:
- 5044:5044
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.0
environment:
- cluster.name=docker-cluster
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/root/elasticKibana/data
networks:
- elastic-net
ports:
- "9200:9200"
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:6.7.0
networks:
- elastic-net
driver: bridge
volumes:
esdata01:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/root/elasticKibana/data'
Заранее спасибо
Комментарии:
1. Кратко прочитав подробное руководство ,
/root/elasticKibana/data
не похоже на правильный путь для монтирования тома в контейнере для сохранения данных. Разве это не должно быть/usr/share/elasticsearch/data
? Более того, похоже, что в вашем файле docker-compose есть проблемы с отступами.2. На моем компьютере этот путь не существовал, я создал его и изменил конфигурацию. Итак … это означает, что данные сохраняются только в /usr / share/elasticsearch / data? Я имею в виду, вы не можете решить, где их хранить?
3. Вы сохраняете данные там, где хотите, на своем компьютере. Но обычно их приходится монтировать по определенному пути в контейнере, если вы не настроите и не измените это, что не так, насколько я могу судить по показанному вами примеру.
4. Ага, и чего не хватает в моей конфигурации? потому что прямо сейчас данные не сохраняются между перезагрузками контейнера.
5. Как есть, ваша конфигурация просто монтирует объем данных по неправильному пути внутри контейнера, как сообщалось в моем самом первом комментарии, содержащем ссылку на документацию, которую вам, вероятно, следует подробно прочитать.
Ответ №1:
Я думаю, что для эластичного поиска путь к контейнеру, который вам нужно смонтировать, — это «/ usr/ share/elasticsearch/data», а не «/ root / elasticKibana / data». По крайней мере, это имеет место в моей диаграмме helm, и docker-compose не должен отличаться, поскольку я использую одно и то же изображение.
Комментарии:
1. На моем компьютере этот путь не существовал, я создал его и изменил конфигурацию. Итак … это означает, что данные сохраняются только в /usr / share/elasticsearch / data? Я имею в виду, вы не можете решить, где их хранить?
2. Здравствуйте, вы можете выбрать целевой объект для чего угодно на вашем хосте / компьютере. Я имею в виду источник, который определен в изображении / контейнере. Вы не можете это изменить.
3. Ага, и чего не хватает в моей конфигурации? потому что прямо сейчас данные не сохраняются между перезагрузками контейнера.
4. Измените строку 22, т.е. «- esdata01:/root/elasticKibana/data» на «- esdata01:/usr/share/elasticsearch/data». Также имейте в виду, что на данный момент вы сохраняете данные только для контейнера Elasticsearch, а не для Kibana, согласно вашему коду.