您的位置:首页 > 运维架构 > Docker

docker-elasticsearch集群环境搭建

2020-01-11 14:39 405 查看

本文旨在搭建最简单docker elasticsearch集群环境

docker pull elasticsearch:7.2.0
docker pull kibana

mkdir elasticsearch/data/{node0,node1,node2} -p
mkdir elasticsearch/logs/{node0,node1,node2} -p
cd elasticsearch/
chmod 0777 data/* -R && chmod 0777 logs/* -R
目录结构
├── docker-compose.yml
├── elasticsearch
│ ├── conf
│ │ ├── node1
│ │ ├── node2
│ │ └── node3
│ ├── data
│ │ ├── node1
│ │ ├── node2
│ │ └── node3
│ └── logs
│ ├── node1
│ ├── node2
│ └── node3
└── kibana
└── conf
└── kibana.yml

重新设置系统级别的默认打开文件最大个数 防止JVM报错

echo vm.max_map_count=655360 >> /etc/sysctl.conf

在root账户执行这一句 作用是重新载入sysctl系统参数

sysctl -p

docker-compose.yml文件

version: '3'
services:
es1:
# es镜像版本,我之前docker拉取的版本是7.2.0 你需要在这里修改为自己的版本
image: elasticsearch:7.2.0
# 容器名称
container_name: es1
privileged: true
# 启动时的环境参数 因为我的服务器配置较低所以分配了128m
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ulimits:
memlock:
soft: -1
hard: -1
# 挂载数据卷
volumes:
# 挂载data
- ./elasticsearch/data/node1:/usr/share/elasticsearch/data
# 挂载自己的配置文件
- ./elasticsearch/conf/node1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
# 挂载日志文件
- ./elasticsearch/logs/node1:/usr/share/elasticsearch/logs
# 端口映射关系
ports:
- 9201:9200
- 9301:9300
# 网络信息
networks:
- esnet
es2:
# es镜像版本,我之前docker拉取的版本是7.2.0 你需要在这里修改为自己的版本
image: elasticsearch:7.2.0
# 容器名称
container_name: es2
privileged: true
# 启动时的环境参数 因为我的服务器配置较低所以分配了128m
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ulimits:
memlock:
soft: -1
hard: -1
# 挂载数据卷
volumes:
# 挂载data
- ./elasticsearch/data/node2:/usr/share/elasticsearch/data
# 挂载自己的配置文件
- ./elasticsearch/conf/node2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
# 挂载日志文件
- ./elasticsearch/logs/node2:/usr/share/elasticsearch/logs
# 端口映射关系
ports:
- 9202:9200
- 9302:9300
# 网络信息
networks:
- esnet
es3:
# es镜像版本,我之前docker拉取的版本是7.2.0 你需要在这里修改为自己的版本
image: elasticsearch:7.2.0
# 容器名称
container_name: es3
privileged: true
# 启动时的环境参数 因为我的服务器配置较低所以分配了128m
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ulimits:
memlock:
soft: -1
hard: -1
# 挂载数据卷
volumes:
# 挂载data
- ./elasticsearch/data/node3:/usr/share/elasticsearch/data
# 挂载自己的配置文件
- ./elasticsearch/conf/node3/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
# 挂载日志文件
- ./elasticsearch/logs/node3:/usr/share/elasticsearch/logs
# 端口映射关系
ports:
- 9203:9200
- 9303:9300
# 网络信息
networks:
- esnet
kibana:
image: kibana:7.2.0
container_name: kibana
privileged: true
ports:
- 5601:5601
environment:
- ELASTICSEARCH_URL=http://es1:9200
volumes:
- ./kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
networks:
- esnet
# 使用桥接的网络连接方式
networks:
esnet:
driver: bridge

主节点的配置文件

# 集群名称 EsCluster
cluster.name: huaweiES
# 节点名称
node.name: es1
# 是否为主节点
node.master: true
# 该节点是否存储数据
node.data: true
# 对外开放的http端口
http.port: 9200

# 回环地址
network.host: 0.0.0.0

#network.publish_host: master-ip

bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# 是否运行跨域REST请求
http.cors.enabled: true
# 允许跨域请求来自何处
http.cors.allow-origin: "*"

# 有成为主节点资格的最小节点数
discovery.zen.minimum_master_nodes: 1
cluster.initial_master_nodes: ["es1"]
xpack.security.enabled: false
indices.fielddata.cache.size: 50%

es2的配置文件

# 集群名称 EsCluster
cluster.name: huaweiES
# 节点名称
node.name: es2
# 是否为主节点
node.master: false
# 该节点是否存储数据
node.data: true
# 对外开放的http端口
http.port: 9200
# 回环地址
network.host: 0.0.0.0

#network.publish_host: master-ip
# 有资格成为主节点的资格列表
discovery.zen.ping.unicast.hosts: ["es1"]

# 是否运行跨域REST请求
http.cors.enabled: true
# 允许跨域请求来自何处
http.cors.allow-origin: "*"

# 有成为主节点资格的最小节点数
discovery.zen.minimum_master_nodes: 1

xpack.security.enabled: false

indices.fielddata.cache.size: 50%

es3的配置文件

# 集群名称 EsCluster
cluster.name: huaweiES
# 节点名称
node.name: es3
# 是否为主节点
node.master: false
# 该节点是否存储数据
node.data: true
# 对外开放的http端口
http.port: 9200
# 回环地址
network.host: 0.0.0.0

#network.publish_host: master-ip
# 有资格成为主节点的资格列表
discovery.zen.ping.unicast.hosts: ["es1"]

# 是否运行跨域REST请求
http.cors.enabled: true
# 允许跨域请求来自何处
http.cors.allow-origin: "*"

# 有成为主节点资格的最小节点数
discovery.zen.minimum_master_nodes: 1

xpack.security.enabled: false

indices.fielddata.cache.size: 50%

kibana配置文件

cat kibana/conf/kibana.yml

elasticsearch.hosts: http://es1:9200
server.host: "0.0.0.0"
server.name: kibana
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN

如果说以上配置文件的路径都没有什么问题的话,应该可以访问kibana了

  • 点赞
  • 收藏
  • 分享
  • 文章举报
一纸思念 发布了11 篇原创文章 · 获赞 0 · 访问量 855 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: