Docker 搭建 ELK集群

参考资料(直接看官网介绍还是最靠谱的,其他文章可作辅助参考):

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(自定义),并进行修改

Docker 搭建 ELK集群

列出没有被注释的行内容:

# 集群名称(自定义即可,需与主节点设置相同)
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(自定义),并进行修改

Docker 搭建 ELK集群

列出没有被注释的行内容:

# 集群名称(自定义即可,需与主节点设置相同)
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 搭建 ELK集群

一个集群,名为“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 上也能看到:

Docker 搭建 ELK集群

上一篇:tomcat(7)-启动linux环境下的tomcat启动失败 提示:java.net.BindException: 地址已在使用 (Bind failed) :8080/80


下一篇:什么是ELK?