• 使用DockerCompose搭建部署ElasticSearch集群


    机器准备

    模拟3台机器:

    节点名称 ip:host 说明
    elasticsearch1 192.168.200.135:9300 映射9200给kibana访问
    elasticsearch2 192.168.200.135:9302
    elasticsearch3 192.168.200.135:9303

    需要注意的是elasticsearch1映射宿主机9200端口,主要用作给kibana访问。
    官方的推荐做法是加一个协调节点,然后kibana通过该协调节点来访问。详情见:https://www.elastic.co/guide/en/kibana/6.8/production.html#load-balancing
    其实个人觉得这种方案是有问题的,假设该协调节点故障,则会导致kibana无法连接。如果在生产环境,一般通过nginx做反向代理实现高可用,避免该协调节点故障导致kibana无法使用的问题。

    docker-compolse.yml如下:

    version: '3'
    services:
      elasticsearch1:
        image: docker.elastic.co/elasticsearch/elasticsearch:6.8.13
        container_name: elasticsearch1
        environment:
          - node.name=elasticsearch1
          - node.master=true
          - node.data=true
          - http.cors.enabled=true
          - http.cors.allow-origin=*
          - cluster.name=docker-cluster
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          #- "discovery.zen.ping.unicast.hosts=elasticsearch"
          - discovery.zen.ping.unicast.hosts=192.168.200.135:9300,192.168.200.135:9302,192.168.200.135:9303
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - esdata1:/usr/share/elasticsearch/data
          - /docker/es-cluster/plugins:/usr/share/elasticsearch/plugins
        ports:
          - 9300:9300
          - 9200:9200
        networks:
          - esnet
        privileged: true    #环境变量
      elasticsearch2:
        image: docker.elastic.co/elasticsearch/elasticsearch:6.8.13
        container_name: elasticsearch2
        environment:
          - node.name=elasticsearch2
          - node.master=true
          - node.data=true
          - http.cors.enabled=true
          - http.cors.allow-origin=*
          - cluster.name=docker-cluster
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - discovery.zen.ping.unicast.hosts=192.168.200.135:9300,192.168.200.135:9302,192.168.200.135:9303
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - esdata2:/usr/share/elasticsearch/data
          - /docker/es-cluster/plugins:/usr/share/elasticsearch/plugins
        ports:
          - 9301:9300
        networks:
          - esnet
        privileged: true    #环境变量
      elasticsearch3:
        image: docker.elastic.co/elasticsearch/elasticsearch:6.8.13
        container_name: elasticsearch3
        environment:
          - node.name=elasticsearch3
          - node.master=true
          - node.data=true
          - http.cors.enabled=true
          - http.cors.allow-origin=*
          - cluster.name=docker-cluster
          - bootstrap.memory_lock=true
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - discovery.zen.ping.unicast.hosts=192.168.200.135:9300,192.168.200.135:9302,192.168.200.135:9303
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - esdata3:/usr/share/elasticsearch/data
          - /docker/es-cluster/plugins:/usr/share/elasticsearch/plugins
        ports:
          - 9303:9300
        networks:
          - esnet
        privileged: true    #环境变量
        
      kibana:
        image: kibana:6.8.13
        restart: always
        container_name: kibana
        environment:
          - SERVER_NAME=kibana
          - ELASTICSEARCH_URL=http://192.168.200.135:9200
          - XPACK_MONITORING_ENABLED=true
        #volumes:
          #- /docker/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
        ports:
          - 5601:5601
        networks:
          - esnet
        depends_on:
          - elasticsearch1
        privileged: true    #环境变量
    
    volumes:
      esdata1:
        driver: local
      esdata2:
        driver: local
      esdata3:
        driver: local
    
    networks:
      esnet:
    

    参考:https://www.jianshu.com/p/dace6c3558a2

  • 相关阅读:
    oracle 自动备份
    oracle 常用操作语句
    数据库创建及使用注意事项
    oracle 导入 导出 备份
    http://blog.sina.com.cn/s/blog_5fc8b3810100iw9n.html
    利用普通工具编译的第一个Servlet
    对java:comp/env的研究(转)
    MyEclipse配置tomcat、jdk和发布第一个web项目
    构建 SSH 框架(转)
    Java Project和Web Project
  • 原文地址:https://www.cnblogs.com/wugang/p/14515277.html
Copyright © 2020-2023  润新知