配置文件
本次为了练习es集群搭建的测试版本,选取3个节点,3个节点都为候选节点同时也都为数据节点(存储索引数据等);所以就配置文件而言,除了node名称和http.port transport不同之外其他都相同。
此处参考了古月_的博客。具体配置信息可点击参考。
启动docker
此处我是在我虚拟机进行搭建集群,会碰到的问题有:
- 虚拟机与物理主机通信问题,配置nat模式;
- 防火墙未关闭等;
- 虚拟缓存不足问题;
- 文件访问权限问题。
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查看集群状态
备注: 此时,可能会出现个没有操作文件夹权限的问题,需要配置一下。执行命令
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
然后浏览器查看
这个插件可以理解为数据库显示工具,就像navicat fo mysql,但是编辑删除还是要调es restful api接口删除。
运行kibana
首先配置挂载kibana配置文件
这里就不再过多叙述了,简单易懂。
接下来运行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开头的索引。
启动成功。
这里只是为了简单使用es集群,后续会更新加入logstash和filebeats的部署。
总结
此篇文章只是为了让我以后可以作为借鉴查缺补漏,毕竟好记性不如烂笔头。不喜勿喷。