基于docker搭建elasticsearch集群

时间:2019-12-09
本文章向大家介绍基于docker搭建elasticsearch集群,主要包括基于docker搭建elasticsearch集群使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文旨在三台不同的服务器,搭建elasticsearch集群,版本为7.x.x

  • 1、服务器列表即配置
    172.168.50.40, 172.168.50.41, 172.168.50.240
    尽量不要低于4G内存
    选用172.168.50.41作为master节点
  • 2、使用docker-compose以及配置文件
   建立文件夹,/lizheng/elasticsearch  (随意即可)
  • 3、创建docker-compose.yml文件
    touch docker-compose.yml
  • 4、docker-compose.yml 的文件内容如下
version: '3'
services:
  elasticsearch:                    # 服务名称
    image: elasticsearch:7.3.1      # 使用的镜像
    container_name: elasticsearch   # 容器名称
    restart: always                 # 失败自动重启策略
    environment:                                    
      - node.name=41  # 节点名称,集群模式下每个节点名称唯一
      - network.publish_host=172.168.50.41  # 用于集群内各机器间通信,其他机器访问本机器的es服务
      - network.host=0.0.0.0                # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
      - discovery.seed_hosts=172.168.50.40,172.168.50.240,172.168.50.41  # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
      - cluster.initial_master_nodes=172.168.50.40,172.168.50.240,172.168.50.41  # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
      - cluster.name=es-cluster   # 集群名称,相同名称为一个集群
      - http.cors.enabled=true    # 是否支持跨域,是:true
      - http.cors.allow-origin="*" # 表示支持所有域名
      - bootstrap.memory_lock=true  # 内存交换的选项,官网建议为true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置内存
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200:9200
      - 9300:9300
  • 另外两台服务器也照着这个配置进行配置,但IP,以及节点名称需要改一下即可。

  • 内存设置,三台服务器都需要

两种方式:
1、机器重启后需再次设置
    sysctl -w vm.max_map_count=262144

2、直接修改配置文件, 进入sysctl.conf文件添加一行(解决容器内存权限过小问题)

    vi /etc/sysctl.conf

    sysctl vm.max_map_count=262144

    sysctl -p 立即生效
    {
  "cluster_name" : "es-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

原文地址:https://www.cnblogs.com/lz0925/p/12011026.html