基于docker-compose安装es和kibana
编写es的docker-compose脚本:
version: "3.1"
services:
elasticsearch:
image: daocloud.io/library/elasticsearch:6.5.4
restart: always
container_name: elasticsearch
ports:
- 9200:9200
kibana:
image: daocloud.io/library/kibana:6.5.4
restart: always
container_name: kibana
ports:
- 80:5601
environment:
- elasticsearch_url=http://119.29.239.77:9200
depends_on:
- elasticsearch
部署过程中,你可能会遇到这么些问题:
如何寻找相关es和kibana的镜像地址
进入这个平台直接搜索即可:hub.daocloud.io/repos?q=ela…
选择使用人最多的镜像,然后点击拉取按钮,接着会有镜像地址提示框弹出。
这里我们要注意,kibana和es是同一家公司研发出来的,因此它们在选择的时候产品的版本号要统一,这里我用的是6.5.4版本。
Docker安装 elasticsearch 报错max virtual memory areas vm.max_map_count [65530] is too low
遇到这种内存不足的问题,直接如下操作即可,修改linux的sysctl.conf配置文件
vi /etc/sysctl.conf
添加 一行 vm.max_map_count=655360
加载参数
sysctl -p
重启
修改了内存配置之后,再docker-compose重新执行一次。
如果es启动成功,我们可以通过 curl 'localhost:9200' 去看看返回结果,正常的话返回结果应该如下所示:
{
"name" : "hZMgI5A",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "PT91KmjkTi2o15sNm6D7TA",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
然后再去访问 Kibana的页面,直接输入ip加端口即可访问
安装IK分词器
默认的es分词器对于英文的分词还可以,但是对于中文来说,不是那么好用。
ik分词器的下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases
使用docker exec -it xxxx bash 命令可以直接进入到容器内部的es目录下,在进入es的docker容器之后,我们可以手动切换到bin目录下,然后使用elasticsearch-plugin命令去下载ik分词器
由于docker容器内部下载东西网络太慢,所以我这边在本地的电脑上下载好了ik分词器,并且传到了一个免费的云存储平台上。下载命令如下:
elasticsearch-plugin install https://files.catbox.moe/u712h6.zip
注意:安装了ik分词器后,需要重启才能使之生效,所以这里我们直接使用docker restart命令去重启es即可。
测试中文分词结果
最后在kibana上的dev tools上,我们可以去测试ik分词器。
POST _analyze
{
"analyzer":"ik_max_word",
"text":"高质量柔软白色tisu棉衣"
}