配置文件

esxi 下面的openwrt 的docker 扩容 esxi部署docker_elasticsearch


本次为了练习es集群搭建的测试版本,选取3个节点,3个节点都为候选节点同时也都为数据节点(存储索引数据等);所以就配置文件而言,除了node名称和http.port transport不同之外其他都相同。

此处参考了古月_的博客。

启动docker

此处我是在我虚拟机进行搭建集群,会碰到的问题有:

  1. 虚拟机与物理主机通信问题,配置nat模式;
  2. 防火墙未关闭等;
  3. 虚拟缓存不足问题;
  4. 文件访问权限问题。
    1.2两个问题可以参考我的其他博客;
    3.需要通过管理员权限进行配置
vim /etc/sysctl.conf
vm.max_map_count=655360
#保存退出,并刷新系统配置
sysctl -p /etc/sysctl.conf/

接下来启动docker

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300 -v /home/elasticsearch/node-1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/elasticsearch/node-1/plugins:/usr/share/elasticsearch/plugins -v /home/elasticsearch/node-1/data:/usr/share/elasticsearch/data -v /home/elasticsearch/node-1/log:/usr/share/elasticsearch/log --name es-node-1 elasticsearch:7.12.0
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9201:9201 -p 9301:9301 -v /home/elasticsearch/node2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/elasticsearch/node2/plugins:/usr/share/elasticsearch/plugins -v /home/elasticsearch/node2/data:/usr/share/elasticsearch/data -v /home/elasticsearch/node2/log:/usr/share/elasticsearch/log --name es-node-2 elasticsearch:7.12.0
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9202:9202 -p 9302:9302 -v /home/elasticsearch/node3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/elasticsearch/node3/plugins:/usr/share/elasticsearch/plugins -v /home/elasticsearch/node3/data:/usr/share/elasticsearch/data -v /home/elasticsearch/node3/log:/usr/share/elasticsearch/log --name es-node-3 elasticsearch:7.12.0

解析一下,
-e 传递环境参数,这里设置堆栈最大最小内存;
-d 后台运行
-p 映射端口号
-v 挂载卷积 也就是把容器内的文件指向外部目录
这里我主要是把es的data, config, log, plugins四个文件映射出来
–name 设置容器名称

运行对应的容器即可启动三个节点。

然后通过http://192.168.110.236:9200/_cluster/health?pretty查看集群状态

esxi 下面的openwrt 的docker 扩容 esxi部署docker_elasticsearch_02


备注: 此时,可能会出现个没有操作文件夹权限的问题,需要配置一下。执行命令

chmod 777 /home/es/node1/config
chmod 777 /home/es/node1/data
chmod 777 /home/es/node1/log
chmod 777 /home/es/node1/plugins
... ...

运行elasticsearch-head

首先执行

docker pull mobz/elasticsearch:5

完成之后,运行

docker run -d --name es-head  -p 9100:9100 docker.io/mobz/elasticseach:5

然后浏览器查看

esxi 下面的openwrt 的docker 扩容 esxi部署docker_JAVA_03


这个插件可以理解为数据库显示工具,就像navicat fo mysql,但是编辑删除还是要调es restful api接口删除。

运行kibana

首先配置挂载kibana配置文件

esxi 下面的openwrt 的docker 扩容 esxi部署docker_docker_04


这里就不再过多叙述了,简单易懂。

接下来运行kibana

备注: kibana版本要和es版本相同,我这里用的7.12.0

docker run --name kibana  -v /home/es/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -p 5601:5601 -d 
kibana:7.12.0

这里特别说明一下,如果你之前启动过kibana,后来把它docker rm 了,然后又重新docker run ,别忘了删除es集群中的索引,因为启动kibana默认会在es中创建.kibana开头的索引。

esxi 下面的openwrt 的docker 扩容 esxi部署docker_docker_05


启动成功。

这里只是为了简单使用es集群,后续会更新加入logstash和filebeats的部署。

总结

此篇文章只是为了让我以后可以作为借鉴查缺补漏,毕竟好记性不如烂笔头。不喜勿喷。