前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker + Elasticsearch 集群环境搭建

Docker + Elasticsearch 集群环境搭建

作者头像
happyJared
发布2018-10-10 11:50:06
1.8K0
发布2018-10-10 11:50:06
举报
文章被收录于专栏:happyJaredhappyJared

无论是安装包形式还是基于Docker,搭建Elasticsearch集群环境还是较为简单的,实操的时候还遇到过一丢小问题,本文用于记录下操作过程。

运行

先用docker分别启动两个es服务,由于后面需要进行配置,这里假设es1所在的机器公网ip为:123.11.23.1,es2所在机器ip:123.11.23.2

代码语言:javascript
复制
    # 运行ES1
    docker run --name es1 -e "ES_JAVA_OPTS=-Xms128m -Xmx128m" -d -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2
    # 运行ES2
    docker run --name es2 -e "ES_JAVA_OPTS=-Xms128m -Xmx128m" -d -p 19200:9200 -p 19300:9300 docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2

启动的时候指定了jvm参数,此外还可以通过编辑config/jvm.options配置文件进行参数调整。

测试命令:curl localhost:9200 && curl localhost:19200,注意到响应字段cluster_name,不出意料默认应该都是docker-cluster,然后两个es实例对应的name应该不同(随机分配)。

配置

Elasticsearch集群环境由多个节点(es实例)之间互相发现并组成,因此核心关键就是正确配置,而主要的配置文件也仅有config/elasticsearch.yml。基于Docker启动服务的时候可以选择将配置目录(或文件)挂载出来,但这里并没有这么做,所以还可以进入到容器内部进行操作,以es1为例:

代码语言:javascript
复制
    # 进入es1
    docker exec -it es1 bash
    # 编辑config目录下的elasticsearch.yml
    vi config/elasticsearch.yml

下图Elasticsearch v6.3.2中的配置项较于低版本可是精简了很多(约定大于配置),由于本文仅介绍ES集群的搭建,所以详尽的配置说明可以参考这里

elasticsearch.yml
elasticsearch.yml

elasticsearch.yml

简单起见,本示例就不修改cluster.name这个配置项了,一个es集群首先就是要保证各节点该配置的相同,还有一个配置属性:node.name,这里应该设置成更为容易理解的节点名称。

接着继续贴上两项配置,这也是让节点之间相互发现的关键所在:

代码语言:javascript
复制
    # 当前机器公网ip
    network.publish_host: 123.11.23.1
    # 其它节点的位置
    discovery.zen.ping.unicast.hosts: ["123.11.23.2:19300"]

总之,参考上述说明,根据实际情况分别配置好两个es实例,最后重启实例即可:

代码语言:javascript
复制
    docker restart es1 && docker restart es2

测试

以下列出的几种方式都可以查看集群状态:

  1. 查看日志:docker logs -f es1
  2. 节点信息:curl http://localhost:9200/_nodes?pretty
nodes
nodes

nodes

  1. 集群健康:curl http://localhost:9200/_cluster/health
cluster health
cluster health

cluster health

  1. 插件elasticsearch-head
elasticsearch-head
elasticsearch-head

elasticsearch-head

如果这对您有帮助,欢迎点赞和分享,转载请注明出处

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运行
  • 配置
  • 测试
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档