操作系统:Linux CentOS 7.3 64位
docker版本:19.03.8
elasticsearch版本:7.6.2
kibana版本:7.6.2
ik中文分词器版本: 7.6.2
kibana、elasticsearch、ik中文分词器的版本要相同,否则会出现版本不一致问题。
1、拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2
查看镜像
2、修改es堆内存配置
这一步可有可无,有需要的就要进行配置,elasticsearch堆内存的配置建议
①查找配置文件
find /var/lib/docker/ -name jvm.options
②修改第一步查询到的配置文件
vi /var/lib/docker/overlay2/7054cc646d5200685ac2fef40b7077126952798676df4352301d5ec9e3f9d9f7/diff/etc/elasticsearch/jvm.options
3、运行前配置
如果现在运行elasticsearch的话会报两个错误
vm.max_map_count
最少需要262144才能启动。因此我们进行配置,运行下面的命令
vi /etc/sysctl.conf
vm.max_map_count = 262144 #添加
配置完成后需要让它生效,执行下面的命令
sudo sysctl -p
[[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]]
中的一个。如果是集群的话,可以在启动时添加参数-e "cluster.initial_master_nodes=node-1"。点击查看了解这个配置的含义。
如果是单机的话,可以在启动时添加参数-e "discovery.type=single-node",这里我们是单机,所以加这个。
4、运行
docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.6.2
-d 后台运行
9200作为Http协议,主要用于外部通讯;
9300作为Tcp协议,jar之间就是通过tcp协议通讯,elasticsearch集群之间是通过9300进行通讯;
5、查看容器是否正常运行
docker ps
6、测试
http://ip地址:9200/
7、配置跨域访问
这一步可有可无,如果需要允许跨域访问的话,可以配置一下
进入容器
docker exec -it elasticsearch /bin/bash
修改配置文件添加配置
vi config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
这里允许访问的域名地址为“*“是高风险的,这说明部署的ES实例允许被任何地方跨域请求。
因此实际使用最好根据需求设定允许访问的域名地址。
退出容器
exit
重启elasticsearch容器
docker restart elasticsearch
1、进入elasticsearch容器
docker exec -it elasticsearch /bin/bash
2、进入 plugins目录
cd plugins/
3、安装ik分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
这里我的elasticsearch是7.6.2版本的,所以ik也是安装7.6.2版本,不同的版本可以在这找https://github.com/medcl/elasticsearch-analysis-ik/releases
4、退出容器
exit
5、重启elasticsearch容器
docker restart elasticsearch
6、测试
可以使用postman测试一下分词效果
1、拉取镜像
docker pull docker.elastic.co/kibana/kibana:7.6.2
查看镜像
2、运行
docker run -d -p 5601:5601 --name kibana --link elasticsearch -e "elasticsearch_url=http://47.98.183.103:9200" docker.elastic.co/kibana/kibana:7.6.2
-e, --env=[]
, 指定环境变量,容器中可以使用该环境变量
3、查看容器是否正常运行
如果发现elasticsearch容器挂掉了,可能是服务器内存不足导致的,我的2g内存服务器就出现了这种情况,后来是通过将elasticsearch堆内存修改成512M才搞定的。。。
4、测试
http://ip地址:5601/app/kibana
ok,搞定。