2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Docker安装ElasticSerach ElasticSerachhead IK分词器及Kibanna步骤(亲测能用)

Docker安装ElasticSerach ElasticSerachhead IK分词器及Kibanna步骤(亲测能用)

时间:2018-09-11 12:06:58

相关推荐

Docker安装ElasticSerach ElasticSerachhead IK分词器及Kibanna步骤(亲测能用)

前言:网上有很多文章描述关于Docker安装ElasticSerach、ElasticSerachhead、IK分词器及Kibanna步骤、流程及注意事项。我试了很多,综合整理出此文,此文中有些地方是引用他人,但记不清楚具体是从哪看来的。如此文有部分内容属于引用,请原作者留言告知链接。非常感谢。

本文所涉及的宿主机是VM虚拟机上安装的CentOS7。所涉及安装运行的各个容器均为6.2.4版本。

1.镜像拉取

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.4

docker pull docker.elastic.co/kibana/kibana:6.2.4

docker pull mobz/elasticsearch-head:5

2.安装Docker

注意:宿主机一定要安装CentOS 7.x 以上的版本

yum -y install docker

验证Docker是否安装成功

docker -v

启动Docker

systemctl start docker

验证是否启动成功,查看Docker

docker info

镜像加速:

vim /etc/docker/daemon.json

在该文件中输入如下内容:

{

"registry-mirrors": ["https://docker.mirrors."]

}

配置完成记得刷新配置

sudo systemctl daemon-reload

sudo systemctl restart docker

3.Docker安装运行elasticsearch及Kibanna

3.1查看镜像,找到要安装的镜像ID

docker images

注意:以上截图仅仅提示什么是镜像ID

3.2Docker安装运行elasticsearch

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 -p 5601:5601 --name elasticsearch 7cb69da7148d

(1)-p 5601:5601 这里把Kibanna端口映射提前配置好,kibana的container共用elasticsearch的网络,所以这样设置

(2)7cb69da7148d 这里镜像ID根据自己实际镜像ID填写

(3)-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 这里配置好elasticsearch运行内存

(4)-e "discovery.type=single-node" 这里配置成单节点模式

(5)-d 指后台运行

(6)--name elasticsearch 指定该容器名称为 elasticsearch

3.3Docker安装运行Kibanna

docker run -it -d -e ELASTICSEARCH_URL=http://172.17.0.2:9200 --name kibana --network=container:elasticsearch 7cb69da7148d

(1)-e ELASTICSEARCH_URL=http://172.17.0.2:9200 这里配置elasticsearch容器内部暴露IP,该IP获取方法如下:

[root@localhost ~]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' 3d165e4da107(这里指elasticsearch容器的镜像ID)

(2)--name kibana 这里配置容器名字

(3)--network=container:elasticsearch 这里配置kibana 容器共用容器名为:elasticsearch的容器网络

3.4Docker安装运行IK分词器

注意:ik分词器必须使用:elasticsearch-analysis-ik-6.2.4.zip 版本

(1)安装unzip

yum install unzip

(2)安装lrzsz上传工具

yum install -y lrzsz

(3)linux命令行中输入rz,选择elasticsearch-analysis-ik-6.2.4.zip上传到/home 目录下

(4)解压elasticsearch-analysis-ik-6.2.4.zip

unzip elasticsearch-analysis-ik-6.2.4.zip

(5)在/root目录下新建如下目录

mkdir -pcp /root/elasticsearch/plugins

(6)移动解压elasticsearch-analysis-ik-6.2.4.zip后的elasticsearch目录到/root/elasticsearch/plugins目录下,并改名为ik

cp -r /home/elasticsearch /root/elasticsearch/plugins/ik

(7) 将 ik 文件夹复制到elasticsearch容器中的 plugins 文件夹中

docker cp /root/elasticsearch/plugins/ik elasticsearch:/usr/share/elasticsearch/plugins

(8) 进入容器查看,验证是否拷贝成功

docker exec -it elasticsearch /bin/bash

cd plugins

ls

(9)重启elasticsearch容器

docker restart elasticsearch

(10)使用 kibana 控制台验证是否配置成功

GET _analyze

{

"analyzer": "ik_smart",

"text": ["我爱我的祖国,并且我还深爱着你"]

}

GET _analyze

{

"analyzer": "ik_max_word",

"text": ["我爱我的祖国,并且我还深爱着你"]

}

3.5Docker安装运行ElasticSerach head

docker run -d -p 9100:9100 --name esh b19a5c98e43b

(1)跨域拒绝访问问题解决方案:

进入elasticsearch容器内部,修改配置文件elasticsearch.yml

docker ps -a #拿到运行容器elasticsearch 的 id

docker exec -it ******(容器id) /bin/bash

cd ./config

vim elasticsearch.yml

在elasticsearch.yml中添加:

http.cors.enabled: true

http.cors.allow-origin: "*"

重启顺序:

docker restart elasticsearch

docker restart Kibanna

docker restart esh

(2)ElasticSearch-Head中查询不出数据的解决方法

在docker安装了elasticsearch-head:5和elasticsearch:6.2.4之后,打开界面连接es时发现数据无法展示

浏览器报错:

{

"error" : "Content-Type header [application/x-www-form-urlencoded] is not supported",

"status" : 406

}

解决步骤如下:

(1)因为ElasticSerach head的docker容器里面无法使用vi/vim,所以需要先将文件拷贝出来。以下“esh”为ElasticSerach head的容器名字。

[root@localhost ~]# cd /home [root@localhost home]# docker cp esh:/usr/src/app/_site/vendor.js ./ [root@localhost home]# vi vendor.js

(2)需要修改的地方共有两处:

1)6886行 contentType: "application/x-www-form-urlencoded 改成 contentType: "application/json;charset=UTF-8" 2)7573行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&

(3)补充说明:

vi中显示行号的命令为

:set nu

vi中跳转到指定行的命令为

:行号

(4)将改完后的文件拷贝回容器

docker cp vendor.js esh:/usr/src/app/_site

无需重启,Ctrl+F5强制刷新浏览器即可解决。

至此,Docker安装ElasticSerach、ElasticSerach head、IK分词器及Kibanna 安装运行完毕!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。