Elasticsearch не сохраняет данные, docker-compose

#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, согласно вашему коду.