elasticsearch,Docker,elasticsearch" /> elasticsearch,Docker,elasticsearch" />

如何在docker映像中预配置elasticsearch管道?

如何在docker映像中预配置elasticsearch管道?,docker,elasticsearch,Docker,elasticsearch,我有一个elasticsearch图像,它被用作多个容器的基础图像。我想知道是否有任何方法可以预先配置摄取管道,以便在创建映像和构建容器的过程中也为我创建管道?如果基本映像附带我想要的管道,那就太好了,否则我必须将docker exec放入使用该映像的每个容器中,并在每个容器中发送一个curl请求来创建管道 现在我想我必须在docker-entrypoint.sh中的elasticsearch服务器(启动后)中添加一个curl,但我不确定是否有其他方法可以建议您使用docker compose。

我有一个elasticsearch图像,它被用作多个容器的基础图像。我想知道是否有任何方法可以预先配置摄取管道,以便在创建映像和构建容器的过程中也为我创建管道?如果基本映像附带我想要的管道,那就太好了,否则我必须将docker exec放入使用该映像的每个容器中,并在每个容器中发送一个curl请求来创建管道


现在我想我必须在docker-entrypoint.sh中的elasticsearch服务器(启动后)中添加一个curl,但我不确定是否有其他方法可以建议您使用docker compose。我个人觉得很方便。使用一个文件可以配置整个堆栈

以下是一个帮助您开始的示例:

 version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - node.name=node-test1
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - node-test1data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: elasticsearch2
    environment:
      - cluster.name=docker-cluster
      - node.name=node-test2
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - node-test2data:/usr/share/elasticsearch/data
  kibana:
    image: docker.elastic.co/kibana/kibana:6.3.2
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_URL: http://elasticsearch:9200
    depends_on:
       - elasticsearch
  logstash:
    image: docker.elastic.co/logstash/logstash:6.3.2
    container_name: logstash
    ports:
      - "5000:5000"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    volumes:
      - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
      - ./logstash/pipeline:/usr/share/logstash/pipeline:ro

很抱歉,我缺乏docker经验,但在docker compose中,我应该将elasticsearch的管道定义放在哪里?没问题,您应该将管道定义放在
logstash/pipeline/logstash.conf
中。然后将卷映射到docker容器,如您在docker-compose的logstash volumes部分中所见。如果我们不想使用logstash,而是直接使用elastic search的ingest节点,该怎么办。那么我们将如何配置?