用Docker搭建elasticsearch集群

概述

用docker进行elasticsearch的部署非常简单,如果要实现集群配置,需要进行一些特殊的处理,本文介绍如何利用docker进行elasticsearch集群的搭建。

具体的配置可以参照该 示例

主节点配置

docker-compose.yml配置文件

es:
  image: elasticsearch
  volumes:
    - ./es:/usr/share/elasticsearch/data
    - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  ports:
    - 9200:9200
    - 9300:9300

其中的./es:/usr/share/elasticsearch/data是将elasticsearch的数据文件挂在到本机的一个目录上,这儿指定的本机目录是./es,可以修改为其它有权限的目录。

如果没有docker compose环境,那么可以用docker swarm进行搭建,如:
docker-es.yml

version: '3.2'

services:
  es:
    image: elasticsearch
    networks:
      - net
    volumes:
      - /app/es/data:/usr/share/elasticsearch/data
      - /app/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - target: 9200
        published: 9200
        protocol: tcp
        mode: host
      - target: 9300
        published: 9300
        protocol: tcp
        mode: host
    deploy:
      mode: global

networks:
  net:
    driver: overlay
    internal: false
    ipam:
      driver: default
      config:
        - subnet: 10.0.66.0/24

elasticsearch.yml配置文件

cluster.name: elasticsearch_cluster
node.name: node-master
node.master: true
node.data: true
http.port: 9200
network.host: 0.0.0.0
network.publish_host: master-ip
discovery.zen.ping.unicast.hosts: ["master-ip"]

network.publish_host: master-ip指定了本机ip,需要将master-ip修改为真实的机器ip。discovery.zen.ping.unicast.hosts中的master-ip同样需要修改为真实的机器ip。

启动服务

首先确认一下/etc/sysctl.conf配置文件中的vm.max_map_count是否大于655360,如果不是,或者配置文件中没有该配置,则用root用户将该配置修改为vm.max_map_count=655360,并执行命令sysctl -p否则启动时elasticsearch会报错。

执行docker-compose up -d,就可以正常启动了。

数据节点配置

docker-compose.yml配置文件

与主节点的配置相同。

elasticsearch.yml配置文件

cluster.name: elasticsearch_cluster
node.name: node-data-1
node.master: false
node.data: true
http.port: 9200
network.host: 0.0.0.0
network.publish_host: data-ip
discovery.zen.ping.unicast.hosts: ["master-ip"]

与主节点配置的区别在于以下几点:

node.name: node-data-1
node.master: false
network.publish_host: data-ip

node.name是数据节点的名字,node.master要设置为false,network.publish_host设置为数据节点的机器ip。

启动服务

启动步骤同主节点。

主节点和数据节点都启动完成后,在主节点服务器上执行 curl http://master-ip:9200/_cat/nodes 命令(将命令中的master-ip修改为主节点的机器ip)可以看到集群中节点的状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • 关键词: docker docker-compose elasticsearch logstash kibana ...
    eason02阅读 11,269评论 3 13
  • 昨天和小月月一帮少女吃饭听到了丧这个词,一下子就好像就找到了一个词来描述自己这几天的现状: 从清明节假期无规律的浪...
    黑土钱阅读 1,666评论 4 2
  • 今天是2017年11月11日,俗称“双十一”。 一场购物盛宴即将开始,一出年度大戏即将拉开序幕。剁手党摩拳擦掌,刷...
    雅子随心馆阅读 1,540评论 1 4
  • 很久以前,我想过很多次以后的情景,我想过有一天我终于放弃你时候的样子。 我以为我会在某个晴朗的早晨,醒过来的刹那发...
    深爱与她阅读 5,224评论 13 6

友情链接更多精彩内容