欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Docker 安装部署中间件 ElasticSearch 和 Kibana

程序员文章站 2022-03-19 15:00:40
环境说明:Centos 8.1Docker 版本 : 19.03.8ElasticSearch: 6.4.0Kibana: 6.4.0主机IP:172.16.244.401、镜像下载.docker pull elasticsearch:6.4.0 #下载 6.4.0版本镜像docker pull kibana:6.4.0 #下载 kibana 6.4.0版本镜像运行镜像创库容器:构建elasticsearch容器:在构建前选.....

环境说明:

Centos 8.1 

Docker 版本 : 19.03.8

ElasticSearch: 6.4.0

Kibana: 6.4.0

主机IP:172.16.244.140

 

一、镜像下载.

docker pull elasticsearch:6.4.0    #下载 6.4.0版本镜像

docker pull kibana:6.4.0           #下载 kibana 6.4.0版本镜像

Docker 安装部署中间件 ElasticSearch 和 Kibana

运行镜像创库容器:

二、构建elasticsearch容器,并验证是否成功

在构建前选设置: sysctl -w vm.max_map_count=262144 虚拟内存 。否则有可能启动失败。

mkdir -p /elk/es/data /elk/es/plugins 
创建后分别授抒权限
chmod 777 /elk/es/data/
#创建相应目录用于容器外挂
es/data : 存放es的数据文件目录
es/plugins : 存放es的插件安装目录,比如ik分词器

docker run:

docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -v /elk/es/plugins:/usr/share/elasticsearch/plugins -v /elk/es/data:/usr/share/elasticsearch/data  -d elasticsearch:6.4.0


--name ${容器名} #指定容器名
-e | --env ${环境变量} #用来设置环境变量和指定值
     single-node 表示创建单节点服务。
     集群名为 elasticsearch
-v  进行目录挂载到缩主机。

Docker 安装部署中间件 ElasticSearch 和 Kibana

通过curl http://localhost:9200 访问或浏览器输入http://ip:9200;  我的ip:172.16.244.140 宿主机IP。

Docker 安装部署中间件 ElasticSearch 和 Kibana

查看容器(elasticsearch)IP地址,此ip地址不是固定的,随着每次容器启动动态分配的。

#查看容器IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' elasticsearch

Docker 安装部署中间件 ElasticSearch 和 Kibana

同样也可以使用容器IP地址进行访问:(不能在浏览器中访问,只能在宿主机中)

Docker 安装部署中间件 ElasticSearch 和 Kibana

注:如果浏览器不能访问,查下防火墙。

firewall-cmd --zone=public --add-port=9200/tcp --permanent

firewall-cmd --reload

 

三、安装kibana

docker run --name kibana -p 5601:5601 --link elasticsearch:es -e "elasticsearch.host=http://es:9200" -d kibana:6.4.0

--link 容器名:别名 #通过link 可以让kibana容器通过es这个别名连接到elasticsearch这个容器上,从而实现通讯访问。

在浏览中输入http://ip:5601 进行访问。 正常情况下是可以正常访问并连接上es,但我这就偏偏不尽人意。好事多磨。

Docker 安装部署中间件 ElasticSearch 和 Kibana

出现边接失败的情况。我们来看下日志;

docker logs -f kibana

Docker 安装部署中间件 ElasticSearch 和 Kibana

连接不上elasticsearch

进入到容器中排查原因:

docker exec -it kibana bash

ping es ;可以看到ping成功,但并不能代表可以访问。使用curl http://es:9200看下情况。

Docker 安装部署中间件 ElasticSearch 和 Kibana

可以看到产生No route to host 不能路由到主机。

Docker 安装部署中间件 ElasticSearch 和 Kibana

怀疑hosts没有进行域名映射?经查看 /etc/下的hosts已经有映射了。那使用ip试试?

Docker 安装部署中间件 ElasticSearch 和 Kibana

Docker 安装部署中间件 ElasticSearch 和 Kibana

使用ip也不行。

后经多方找资料问题在docker0 这个桥接网卡上。

在宿主机非容器中,按顺序执行下面命令。

 
nmcli connection modify docker0 connection.zone trusted
systemctl stop NetworkManager.service
firewall-cmd --permanent --zone=trusted --change-interface=docker0
systemctl start NetworkManager.service
nmcli connection modify docker0 connection.zone trusted
systemctl restart docker.service

执行上面命令前:

Docker 安装部署中间件 ElasticSearch 和 Kibana

执行命令后:经对比少了ipv6的部份。应该不是ipv6的问题吧?

Docker 安装部署中间件 ElasticSearch 和 Kibana

经过上面的命令后:终于可以看到了。

Docker 安装部署中间件 ElasticSearch 和 Kibana

 

三、安装IK分词器(非必选,后面装也行,这个是插件)

下载对应版本的ik分词器,

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip

下载好之后 考到 /elk/es/plugins 下,建一个ik文件夹。

Docker 安装部署中间件 ElasticSearch 和 Kibana

进行解压缩即可。

Docker 安装部署中间件 ElasticSearch 和 Kibana

OK装好之后,重启elasticsearch容器。

然后使用postman验证下分词器是否OK。

Docker 安装部署中间件 ElasticSearch 和 Kibana

 

附:如果使用docker-compose 来启动的。仍出现No route to Host 。则尝试关防火墙。

systemctl stop firewalld.service    #停止防火墙
systemctl restart docker                #重起docker 

docker-compose -f  xxxx.yml up -d   #重新运行容器

又或者

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=172.17.0.0/16 accept' && firewall-cmd --reload

 

 

 

 

本文地址:https://blog.****.net/fengsh998/article/details/107323099