一、为了严谨
这里主要就是记录Docker安装
ElasticSearch
和Kibana
,至于它们分别是什么,以及怎么使用在这里不做介绍!所以,需要提前准备好Docker环境!!!
二、镜像下载
# 拉取elasticsearch镜像
[root@HadoopNode01 nodes]# docker pull elasticsearch:7.6.2
# 拉取kibana镜像
[root@HadoopNode01 nodes]# docker pull kibana:7.6.2
我这里使用的版本是
7.6.2
,请根据自身需求维护版本,并在Root
用户权限下执行命令
三、创建ElasticSearch挂载目录
# 创建elasticsearch配置文件外部挂载目录
mkdir -p /mydata/elasticsearch/config
# 创建elasticsearch数据外部挂载目录
mkdir -p /mydata/elasticsearch/data
# 创建elasticsearch插件外部挂载目录
mkdir -p /mydata/elasticsearch/plugins
# 将/mydata/elasticsearch/文件夹中文件都可读可写
chmod -R 777 /mydata/elasticsearch/
添加配置
# 配置任意机器可以访问 elasticsearch
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
四、启动ElasticSearch
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx256m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2
启动命令说明
- 第一个-p指定端口号9200用于HTTP请求,比如使用Postman发送HTTP请求Elasticsearch的端口,第二个端口9300用于分布式集群环境下各节点之间通信的端口;
discovery.type=single-node
指定以单节点的方式运行;ES_JAVA_OPTS="-Xms128m -Xmx256m"
:可以理解为JVM启动参数,不设置的情况下ES是非常耗内存的。- 几个-v:分别指定的是将容器内部的配置文件挂载到外部(宿主机)文件、容器中的数据目录挂载到外部目录、容器内部的插件目录挂载到外部目录
此时我们使用docker ps
命令应该可以查看到容器已经启动成功,并且在宿主机上输入curl localhost:9200
应该可以看到以下响应内容。这就说明容器已经启动成功。
如果没有成功
使用docker logs 容器id|容器name
查看启动日志,排查具体的错误重新启动即可。
五、启动kibana
如果把ES比做MySQL,那Kibana就是Navicat!
启动命令
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.248.128:9200 -p 5601:5601 -d kibana:7.6.2
说明
这里主要说明一下
ELASTICSEARCH_HOSTS=http://192.168.248.128:9200
配置,key就是指定配置的名称,value就是指定要连接的ES的地址,需要填写ES容器所在宿主机的真实IP。因为ES和Kibana它们是两个独立的容器,所以它们之间的网络不是直接连通的,而是通过它们之间的宿主机来通信的(我记得后面好像有办法解决,忘了。。。),所以这里一定要填ES容器所在宿主机的IP,千万别填什么localhost
或者127.0.0.1
,这样写指的是Kibana这个容器自己。
如此,Kibana应该也启动成功了,我们同样可以用docker ps
来查看,或者在浏览器中输入http://宿主机ip:5601
来查看,成功就会进到kibana的UI界面。如果失败的话还是使用docker logs kibana
来查看失败原因,从而寻找解决办法。
六、对于Kibana的补充
向上面那样,Kibana的功能已经能够正常使用了,但是界面却全是英文的,这对于我们中国人来说是很不友好的,所以可以调整Kibana的配置,让它变成中文。
因为Kibana我没有设置挂载目录,所以需要进入容器内部修改
# 进入kibana容器
-> docker exec -it kibana /bin/bash
# 编辑配置文件
-> vi /usr/share/kibana/config/kibana.yml
# 末尾添加以下内容
i18n.locale: "zh-CN"
# 保存退出容器
-> exit
# 重启kibana
-> docker restart kibana
这样Kibana的界面就变成中文了。