目录
1、前言
现在elasticsearch是比较火的,很多公司都在用,所以如果说还不知道es可能就会被人鄙视了。所以这里我就下决心来学习es,我比较钟爱于docker所有也就使用了docker来安装es,这里会详细介绍下安装的细节以及需要注意的地方。关于docker的安装在这里我就不去说明了,可以自行安装一下就可以了,很简单的,我保证你真的可能会爱上它。这里我使用的电脑自己的linux虚拟机,如果是Windows的话,可能就不太一样了,这里我也没有实际操作过,感兴趣的也可以自己去尝试一下。
2.ElasticSearch安装
2.1 docker安装es
要使用es肯定是需要安装的,由于用惯了docker,所以也想在docker上尝试一下,主要是因为我的好多软件都以及选择了docker。docker安装其实是很简单的,要一行命令即可。这里我选择的是es的7.5.0版本镜像镜像安装,具提下载镜像命令如下:
docker pull elasticsearch:7.5.0
敲完回车等待镜像下载完毕即可。
2.2 启动es
安装完成以后当然需要去启动我们的es了,这里启动也是很方便的只需要一行命令即可。如下:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.5.0
这样es就启动好了。我们可以去检查es是否安装完成,可以输入命令:
curl http://localhost:9200
或者在浏览器中打开http://localhost:9200这个网址,如果能看到以下信息则说明我们的es是已经安装好了的。
{
“name” : “4f6563b16582”,
“cluster_name” : “docker-cluster”,
“cluster_uuid” : “2oThQhC4RCGER7JnFOg8uw”,
“version” : {
“number” : “7.5.0”,
“build_flavor” : “default”,
“build_type” : “docker”,
“build_hash” : “e9ccaed468e2fac2275a3761849cbee64b39519f”,
“build_date” : “2019-11-26T01:06:52.518245Z”,
“build_snapshot” : false,
“lucene_version” : “8.3.0”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}
如果你是在服务器上安装,想要对外访问还必须打开你服务器的9200端口,然后将localhost换成你服务器的ip地址即可。
2.3 修改配置,解决跨域访问问题
首先进入到容器中,然后进入到指定目录修改elasticsearch.yml文件。
docker exec -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/config/
vi elasticsearch.yml
在elasticsearch.yml的文件末尾加上:
http.cors.enabled: true
http.cors.allow-origin: "*"
修改配置后重启容器即可。
docker restart elasticsearch
2.4 安装ik分词器
es自带的分词器对中文分词不是很友好,所以我们下载开源的IK分词器来解决这个问题。首先进入到plugins目录中下载分词器,下载完成后然后解压,再重启es即可。具体步骤如下:
注意:elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败。可以在这查看所有版本,选择合适自己版本的右键复制链接地址即可。版本查看点击这里
docker exec -it elasticsearch /bin/bash
cd /usr/share/elasticsearch/plugins/
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.0/elasticsearch-analysis-ik-7.5.0.zip
exit
docker restart elasticsearch
然后可以在kibana界面的dev tools中验证是否安装成功;
POST test/_analyze
{
“analyzer”: “ik_max_word”,
“text”: “你好我是东邪Jiafly”
}
不添加"analyzer": “ik_max_word”,则是每个字分词,可以在下面kibana安装完成以后尝试一下。
2.5 将elasticsearch容器中的配置文件和插件映射到宿主机
上面的步骤中我们修改了容器的配置文件并且安装了分词的插件,如果我们将容器删除之后,再次运行初始的镜像时需要重新修改配置文件和安装分词插件,因此我将配置文件和插件都映射到宿主机,这样下次启动的时候就能够用宿主机上的配置文件和插件,并且修改配置文件时直接修改宿主机的即可。具体操作如下:
将配置文件和插件映射到宿主机的目录/work/elasticsearch/下
cd /work/elasticsearch
docker cp elasticsearch:/usr/share/elasticsearch/config/ ./
docker cp elasticsearch:/usr/share/elasticsearch/plugins ./
经过上述操作,在宿主机的目录/work/elasticsearch/下可以看到映射出的 config和plugins,将启动的脚本修改成如下:
#!/bin/bash
#Writerriter by ***
#Description use docker run start appserver
#2019.12.11
set -e
#################################################################################################
docker run -d --name elasticsearch --restart=always \
-v /work/elasticsearch/config:/usr/share/elasticsearch/config \
-v /work/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
elasticsearch:7.5.0
3.kibana安装
Kibana 是为 Elasticsearch设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来。
3.1 docker安装kibana
同样是先下载kibana的docker镜像
docker pull kibana:7.5.0
等待镜像下载完成即可。
3.2 启动kibana
安装完成以后需要启动kibana容器,使用–link连接到elasticsearch容器,命令脚本如下:
#!/bin/bash
#Writerriter by ***
#Description use docker run start appserver
#2019.9.16
set -e
#############################################################################################################
docker run -d --name kibana --restart=always \
-p 5601:5601 \
-v /work/kibana/config:/usr/share/kibana/config \
-v /work/kibana/data:/usr/share/kibana/data \
--link elasticsearch:test \
-e "elasticsearch.ssl.verify=false" \
kibana:7.5.0
使用此脚本前同样需要先不映射容器卷启动,然后将启动后的kibana容器中的/usr/share/kibana/config、
/usr/share/kibana/data 使用docker cp 命令拷贝到宿主机上,然后再用上面脚本重新运行容器,详情请看上面elasticsearch的映射方案。
启动之后可以打开浏览器输入http://localhost:5601就可以打开kibana的界面了。