本章安装的版本是7.4.2,两者的版本需要对应
安装elasticsearch
下载镜像
docker pull elasticsearch:7.4.2
配置
将elasticsearch的配置和数据映射到Linux主目录中
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
# 注意http.host: 0.0.0.0 冒号后面需要一个空格
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-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 \
--restart=always \
-d elasticsearch:7.4.2
错误解决
以上启动会失败,利用命令查看报错信息:
docker logs elasticsearch
由于文件夹目录没有权限:
改变文件夹的权限
chmod -R 777 /mydata/elasticsearch
再启动elasticsearch:
docker start id
# id 为镜像的ID可以利用命令查看
docker ps -a
成功
启动完成后,可以在浏览器输入
http://localhost:9200/
能够显示json信息,则代表安装成功。
# 可以输入一下命令,查看信息
http://localhost:9200/_cat/nodes
http://localhost:9200/_cat/health
http://localhost:9200/_cat/master
http://localhost:9200/_cat/indices
安装kibana
下载镜像
docker pull kibana:7.4.2
查看elasticsearch容器内的IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}' ES容器ID
配置
docker run -it -d -e ELASTICSEARCH_URL=http://ES容器IP:9200 --name kibana --restart=always -p 5601:5601 kibana:7.4.2
# http://××:9200一定要改为ES容器IP
kibana启动可选参数:
-e TZ='Asia/Shanghai'
设置时区,否则查询时间需要加+8h
-e LANG="en_US.UTF-8"
设置支持中文的编码方式
启动完成后,可以在浏览器输入
http://localhost:5601/
可能出现的问题
Kibana server is not ready yet
能够显示页面,则代表安装成功。
我就出现了上述问题,然后进入docker容器改掉kibana.yml
docker exec -it kibana /bin/bash
cd config/
vi kibana.yml
#修改elasticsearch.hosts的地址, 改成es容器ip
server.name: kibana
server.host: “0”
elasticsearch.hosts: [ “http://ESIp:9200” ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
汉化
kibana 7 中官方加入了中文的选项,只需要在配置文件 kibana.yml 中加入
i18n.locale: "zh-CN"
查看虚拟机的剩余容量:
free -m
设置容器自动启动
docker update --restart=always elasticsearch