docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2
docker pull docker.elastic.co/kibana/kibana:7.10.2
docker pull lmenezes/cerebro:latest
docker run -itd --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2
该命令会创建一个名为 elasticsearch 的容器,并将主机的 9200 端口与容器内部的 9200 端口关联起来。同时设置 discovery.type 参数为 single-node,表示单节点模式。
可能出现的问题
问题一
Docker容器启动时报错ERROR: for elasticsearch Cannot start service elasticsearch: driver failed programm.
错误原因:
docker服务启动时定义的自定义链docker,由于centos7 firewall 被清掉
firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。 当
firewalld 启动或者重启的时候,将会从 iptables 中移除 docker的规则,从而影响了 Docker 的正常工作。
当你使用的是 systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后再启动
或者重启 firewalld ,你就需要重启 Docker 进程了。 重启docker服务及可重新生成自定义链docker。
解决方法:
使用systemd关闭firewalld 之后要重启docker 重启docker服务后再启动容器
systemctl restart docker
docker run --name kibana -d -p 5601:5601 docker.elastic.co/kibana/kibana:7.10.2
docker cp kibana:/usr/share/kibana /home/test
docker run --name kibana -itd -p 5601:5601 -v /home/test/kibana/config:/usr/share/kibana/config docker.elastic.co/kibana/kibana:7.10.2
可能遇到的问题
kibana解决Kibana server is not ready yet问题
我这里是将原本的elasticsearch改成了docker内部的IP,查看docker内部的IP命令如下
ip address
如果上面的配置都没有问题的话,可能是因为防火墙的问题,我们需要把防火墙关掉(我就是这么解决的)
systemctl status firewalld.service
如果结果显示为图中这样,则防火墙是启动了的
接下来需要关闭防火墙,关闭之后再查看防火墙状态
systemctl stop firewalld.service
systemctl status firewalld.service
这样就是显示,就表明防火墙已经关闭
https://www.cnblogs.com/jthr/p/17415787.html
docker run --name cerebro -itd -p 9000:9000 lmenezes/cerebro
cerebro 的默认端口是9000 ,创建成功后,就可以通过http://localhost:9000/ 进行访问
只需要输入ElasticSearch的URL并点击connect按钮,成功连接即可显示如下图所示信息。需要注意的是由于cerebro运行在容器中,直接输入localhost:9200即使通过浏览器能够访问也可能无法连接,需要保证的是在cerebro的容器中能够访问到的URL,比如这里使用的本机的IP
点击Connect按钮即可连接成功
如果需要执行相应的API操作,比如查询,可直接在界面进行操作,比如
另外还可以确认节点相关的统计信息
很多操作都可以通过页面进行
总结
相较于elasticsearch-head,界面美感较好,功能也在不断更新,建议使用