Docker 安装 ElasticSearch + Head + Kibana

O、前言

今天周末在家学习一下 ElasticSearch 。需要安装 ES、Head 和 Kibana 来做基础查询操作的熟悉。出于练习一下 Docker 的原因,环境安装都用了 Docker。把安装步骤和过程中的一些采坑记录一下。

一、拉取镜像

# 拉取 ElasticSearch镜像
docker pull elasticsearch:7.6.1
# 拉取 Head 镜像
docker pull mobz/elasticsearch-head:5
# 拉取 Kibana 镜像
docker pull kibana:7.6.1

二、启动容器

1、启动 ElasticSearch 容器

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d --name elasticsearch  -p 9200:9200 -p 9300:9300 elasticsearch:7.6.1

在启动 ElasticSearch 容器几秒后,容器自动退出了。docker ps -a 发现 ElasticSearch 容器状态为Exited (137)。

查看日志发现如下报错:

docker logs -f 635b290dacbf

ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/docker-cluster.log

需要加上参数-e "discovery.type=single-node",完整的命令为:

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d --name elasticsearch  -p 9200:9200 -p 9300:9300 elasticsearch:7.6.1

2、启动 head 容器

docker run -d -p 9100:9100 --name es_head docker.io/mobz/elasticsearch-head:5

浏览器访问 127.0.0.1:9100
在这里插入图片描述

这里可能会有跨域访问的问题

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

    # 查询运行容器 elasticsearch 的 id
    docker ps -a   
    # 进入容器
    docker exec -it ******(容器id) /bin/bash
    # 进入config目录
    cd ./config
    # 编辑 elasticsearch.yml 文件
    vim elasticsearch.yml 
    
  • 在elasticsearch.yml中添加如下内容

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
  • 重启 ElasticSearch容器

    docker restart elasticsearch
    

3、启动 kibana 容器

docker run -d -p 5601:5601 --name kibana --link elasticsearch:elasticsearch kibana:7.6.1

Kibana启动之后发现是全是英文,有些单词还是看不太懂,怎么办。不用担心,kibana 7.X已经为我们准备好了汉化选项。

中文包在 /usr/share/kibana/node_modules/x-pack/plugins/translations/translations/zh-CN.jso

只需要进入kibana容器,在配置文件 kibana.yml 中加入

i18n.locale: "zh-CN"

就可以了,汉化之后的效果如下图,这都能看懂了吧。

在这里插入图片描述

三、使用 Head 和 Kibana

1、head 无法显示数据问题

通过 Kibana 插入数据后,在head的数据预览页面发现数据没有加载出来,打开检查,发现前端报错406。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5XgcuUWs-1610808335075)(/Users/yangdong/Library/Application Support/typora-user-images/image-20210116210224993.png)]

解决方案

  1. 进入head容器中,docker exec -it es_head /bin/bash

  2. 进入 _site 目录 cd _site/

  3. 编辑 vendor.js 共有两处

    • 6886行 contentType: "application/x-www-form-urlencoded" 修改为 contentType: "application/json;charset=UTF-8"

    • 7573行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 修改为 var inspectData = s.contentType === "application/json;charset=UTF-8" &&

      保存退出,不需要重启容器

  4. 刷新浏览器,发现数据正确展示。

2、Head 容器中没有vim命令

  • apt-get install vim
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package vim
  • apt-get update

  • apt-get install vim

3、安装ik分词插件

将压缩包移动到容器中

docker cp elasticsearch-analysis-ik-7.6.1.zip elasticsearch:/usr/share/elasticsearch/plugins

进入容器

docker exec -it elasticsearch /bin/bash

创建目录

mkdir /usr/share/elasticsearch/plugins/ik

将文件压缩包移动到ik中

mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.6.1.zip /usr/share/elasticsearch/plugins/ik

进入目录

cd /usr/share/elasticsearch/plugins/ik

解压

unzip elasticsearch-analysis-ik-7.6.1.zip

删除压缩包

rm -rf elasticsearch-analysis-ik-7.6.1.zip

退出并重启镜像

exit
docker restart elasticsearch

四、总结

到此,就可以愉快的练习ES的基础操作了。

说实话,ES的的增删改查方法真的是多,不好好练习,结合实际需求,还真的不容易记住,灵活运用更是不容易。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中提到了安装Kibana的步骤和配置文件的修改。在安装Kibana时,需要解压缩安装包并将其移动到指定目录,然后修改配置文件kibana.yml。其中,需要配置Kibana连接Elasticsearch的地址、用户名和密码,以及SSL证书的路径等信息。最后,使用nohup命令启动Kibana服务。这样,Kibana就可以通过指定的地址进行访问了。 引用\[2\]中提到了在使用ESHead连接Elasticsearch时,如果配置了证书密码,就不能再使用http://node01:9100/进行访问了。需要通过http://node01:9100/?auth_user=elastic&auth_password=elasticsearch进行访问,并在app.js文件中进行相应的配置。此外,还需要在Elasticsearch的配置文件中设置允许跨域访问的相关配置。 引用\[3\]中提到了从容器中拷贝Elasticsearch的安全证书的方法。可以使用docker cp命令将证书文件拷贝到指定的目录中。 综上所述,要配置ES HeadKibana的安全证书,需要按照引用\[1\]中的步骤修改Kibana的配置文件,并按照引用\[2\]中的说明进行ESHead的配置。同时,可以使用引用\[3\]中的方法从容器中拷贝Elasticsearch的安全证书。这样就可以实现ES HeadKibana的安全连接了。 #### 引用[.reference_title] - *1* [elasticsearch+kibana集群安装部署并配置ssl连接](https://blog.csdn.net/professorman/article/details/127072099)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ElasticSearch第一讲 Docker-compose 单机部署Elasticsearch kibana esHead与配置认证证书设置密码](https://blog.csdn.net/huanglu0314/article/details/126563540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值