参考资料(直接看官网介绍还是最靠谱的,其他文章可作辅助参考):
https://elk-docker.readthedocs.io/#elasticsearch-cluster-single-host
下文是基于 Docker 安装 ELK 已经完成的基础上,对elasticsearch单节点进行横向扩展,扩展后为一主二从,原有的节点作为主节点。
主节点(master)配置
原已启动 docker镜像 sebp/elk:643 ,进入该容器,并对 elasticsearch.yml 进行设置
vi ./etc/elasticsearch/elasticsearch.yml
列出没有被注释的行内容:
# 集群名称(自定义即可)
cluster.name: docker-es-cluster
# 定义主节点名称
node.name: master
# (原来设置就有,作用暂时不清楚)
path.repo: /var/backups
network.host: 0.0.0.0
# 解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
修改后保存,退出并重启容器,才能生效
从节点(slave1)配置
从主节点容器拷贝一份 elasticsearch.yml 到本地(路径自定义),命名为 elasticsearch-slave1.yml(自定义),并进行修改
列出没有被注释的行内容:
# 集群名称(自定义即可,需与主节点设置相同)
cluster.name: docker-es-cluster
# 从节点名称(自定义即可)
node.name: slave1
# (原来设置就有,作用暂时不清楚)
path.repo: /var/backups
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["slave1"]
# 解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
启动 elk 容器 slave1:
# docker_elk6.4.3_master 为主节点容器名称
# slave1 为从节点slave1 yml中对应“discovery.zen.ping.unicast.hosts”设置值
docker run -itd \
-v /root/Documents/elk/etc/elasticsearch-slave1.yml:/etc/elasticsearch/elasticsearch.yml \
--link docker_elk6.4.3_master:slave1 \
--name docker_elk6.4.3_slave1 \
sebp/elk:643
从节点(slave2)配置(与slave1雷同)
从主节点容器拷贝一份 elasticsearch.yml 到本地(路径自定义),命名为 elasticsearch-slave2.yml(自定义),并进行修改
列出没有被注释的行内容:
# 集群名称(自定义即可,需与主节点设置相同)
cluster.name: docker-es-cluster
# 从节点名称(自定义即可)
node.name: slave2
# (原来设置就有,作用暂时不清楚)
path.repo: /var/backups
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["slave2"]
# 解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
启动 elk 容器 slave2:
# docker_elk6.4.3_master 为主节点容器名称
# slave2 为从节点slave2 yml中对应“discovery.zen.ping.unicast.hosts”设置值
docker run -itd \
-v /root/Documents/elk/etc/elasticsearch-slave2.yml:/etc/elasticsearch/elasticsearch.yml \
--link docker_elk6.4.3_master:slave2 \
--name docker_elk6.4.3_slave2 \
sebp/elk:643
启动成功后,最终效果:
一个集群,名为“docker-es-cluster”,出现三个节点
[root@centos4 /root/Documents/elk/etc]$curl http://192.168.58.132:9200/_cluster/health?pretty
{
"cluster_name" : "docker-es-cluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 5,
"active_shards" : 10,
"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
}
elasticsearch-head 上也能看到: