现在Elasticsearch
是比较火的, 很多公司都在用. 而Docker
也正如火如荼, 所以我就使用了Docker来安装ES, 这里会详细介绍下安装的细节以及需要注意的地方. 先来强调一下, Elasticsearch和Kibana必须用相同版本, 这个可以避免很多坑.
在Docker中安装软件非常方便, 只需要一条命令即可. Elasticsearch官方也有在Docker下安装的教程, 不过是英文的, 有兴趣的童鞋可以去看看, 点我试试=^_^=.
笔者使用时官方最新版是7.6.2
, 所以没得说, 开始拉取镜像.
sudo docker pull elasticsearch:7.6.2
敲完命令后回车, 只需要等镜像下载完就成了. 一共791MB, 耐心等待.
安装完成以后当然需要去启动了, 启动也很方便, 只需要一行命令即可.
sudo docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.6.2
启动后可以先查看一下
可以看到, 已经ok了. So Easy!
我们可以去检查ES是否安装完成, 可以输入命令:
curl http://localhost:9200
或者在浏览器中输入http://你的IP:9200
这个地址, 如果能看到以下信息则说明ES已经安装成功了.
{
"name": "5b7c8b13a1bd",
"cluster_name": "docker-cluster",
"cluster_uuid": "lKFzaObZQG6y9Jn78krAUQ",
"version": {
"number": "7.6.2",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date": "2020-03-26T06:34:37.794943Z",
"build_snapshot": false,
"lucene_version": "8.4.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
注意:
需要关闭防火墙或放行9200端口
Kibana是一个开源的分析和可视化平台, 被设计用于和Elasticsearch一起工作. 我们可以通过Kibana来搜索, 查看, 并和存储在Elasticsearch索引中的数据进行交互, 并轻松地执行高级数据分析, 以各种图标, 表格和地图的形式可视化数据.
Kibana使得理解大量数据变得很容易. 它简单的, 基于浏览器的界面使你能够快速创建和共享动态仪表板, 实时显示Elasticsearch查询的变化.
官方提供了Docker下安装Kibana的教程, 点我试试=^_^=.
同样适用docker安装Kibana命令如下:
sudo docker pull kibana:7.6.2
这个比较大, 有1.01GB, 耐心等待…
安装完成以后需要启动Kibana容器, 我们需要使用--link
参数将Kibana连接到Elasticsearch容器, 命令如下:
sudo docker run --name kibana --link es:elasticsearch -p 5601:5601 -d kibana:7.6.2
其中, --link es:elasticsearch
中的es
是Docker中Elasticsearch容器名, 你也可以替换成对应的容器ID.
默认情况下, Kibana界面是英文的, 不过Kibana 7中官方加入了中文的选项, 汉化包位置: /usr/share/kibana/x-pack/plugins/translations/translations/zh-CN.json
我们需要进入Kibana容器, 编辑/usr/share/kibana/config/kibana.yml
文件, 在末尾添加i18n.locale: zh-CN
即可. 注意冒号后一定要有空格!
sudo docker exec -it kibana /bin/bash
cd config/
vi kibana.yml
exit
然后重启Kibana
sudo docker restart kibana
启动以后可以打开浏览器输入http://你的IP:5601
就可以打开Kibana的界面了. 上图
在使用Elasticsearch时, 我们还需要进行一些设置. 例如解决跨域访问和中文分词.
首先进入到ES容器中, 然后进入到指定目录修改elasticsearch.yml
文件
sudo docker exec -it es /bin/bash
cd config/
vi elasticsearch.yml
在elasticsearch.yml的文件末尾加上
http.cors.enabled: true
http.cors.allow-origin: "*"
修改配置后重启容器即可
sudo docker restart es
ES自带的分词器对中文分词不友好, 所以我们下载开源的IK分词器来解决这个问题. 首先进入到plugins
目录中下载分词器, 下载完成后解压, 再重启ES即可. 具体步骤如下:
sudo docker exec -it es /bin/bash
cd plugins/
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
exit
Elasticsearch的版本和IK分词器的版本需要保持一致, 不然在重启的时候会失败. 可以点击查看所有版本, 选择合适的版本右键复制链接地址即可. 点我试试=^_^=.
然后重启容器, 可以在Kibana界面的dev tools
中验证是否安装成功
以上就是Docker下安装ES和Kibana, 是不是非常的简单. 当然, 这是最基本的, 重点还是如何在开发中使用Elasticsearch, 学无止境, 一起加油!