docker安装es和kibana

让学习成为一种习惯!--------magic_guo

最近在学习为服务项目,免不了要接触一些第三方组件,如:es、rabbitMq、fastDFS等,如果在服务器中安装这些单一组件或者将这些组件搭建成集群的话,我认为使用docker服务会方便管理;另外docker中的docker-compose也可以很方便的管理这些项目;

今天记录一下搜索引擎elasticsearch和kibana:

elasticsearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。

全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文搜索搜索引擎数据库中的数据

kibana是es的管理界面,就好像rabbitMq的management一样,将es可视化;

安装要点:
我这里安装的是7.2.0版本的,一定要牢记es和kibana的版本要一直才能连接上;另外顺便提一下,在java代码中选择依赖,也要选择相同的版本;以为不同的版本可能对应的API接口会有所改变,例如在es在7.x以上版本不用再设置type doc这个属性;

下载镜像:

docker pull elasticsearch:7.2.0
docker pull kibana:7.2.0

es容器启动命令:

docker run --name elasticsearch --restart always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms200M -Xmx200M" -d elasticsearch:7.2.0

需要注意的是:
1、–restart always 参数:服务器中docker启动时此容器也随着启动;
2、-e ES_JAVA_OPTS="-Xms200M -Xmx200M" :设置es容器启动的容量大小,由于我是用的是虚拟机,分配内存比较小,分配给es容器的大小是200M;建议此容器的大小设置不要超过虚拟机容器的一半:
docker安装es和kibana_第1张图片
启动之后,进到容器内部,解决es访问跨域问题:
在config/elasticsearch.yml中添加:

http.cors.enabled: true
http.cors.allow-origin: "*"

命令:

docker exec -it elasticsearch /bin/bash
vi config/elasticsearch.yml

效果:
效果:
在这里插入图片描述
安装ik分词器:
直接在线下载,下载完成之后,输入y确认安装即可
需要注意的是ik分词器和es的版本也最好相同;

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip

安装完ik分词后,直接Ctrl+p+q退出而不关闭容器,然后重启次容器:

docker restart elasticsearch

启动完之后在浏览器中访问http://yourIp:9200,看到如下内容代表es安装成功。
docker安装es和kibana_第2张图片
postman测试ik分词器:
访问http://yourIp:9200/_analyze
携带Json参数:

{
  "analyzer": "ik_smart",
  "text": "我是中国人"
}

看到如下界面,说明ik讽刺器安装成功:
docker安装es和kibana_第3张图片
启动kibana:

docker run --name kibana -e ELASTICSEARCH_URL=http://172.17.0.3:9200 -p 5601:5601 -d kibana:7.2.0

说明:
-e ELASTICSEARCH_URL=http://172.17.0.3:9200 是对于es的关联,也是es对外暴露的ip;
可以使用 docker inspect 容器名字/id 产看容器的信息:

docker inspect 容器名字/id

docker安装es和kibana_第4张图片
启动成功之后,需要进入/usr/share/kibana/config/kibana.yml修改一下对于es关联的ip,因为初始化的ip地址是http://elasticsearch:9200 需要修改成es对外暴露的ip:http://172.17.0.3:9200
docker安装es和kibana_第5张图片
然后同样退出容器重启容器,访问http://yourIpo:5601
就可以看到kibana的界面:
docker安装es和kibana_第6张图片
如果连接不上可以使用docker logs kibana 来查看kibana容器的连接状态信息;

另外我认为kibana容器应晚于es容器的启动,这样不会导致kibana找不到es的连接;可以使用docker-compose的定义管理这些容器的启动顺序;

完结!

静下心,慢慢来,会很快!

你可能感兴趣的:(java项目搭建,docker)