docker 安装elasticsearch 和 kibana elasticsearch-head插件 完整版

1.下载
注意elasticsearch和kibana的版本最好一致 不然容易出现错误

docker pull elasticsearch:7.4.2 #存储和检索数据
docker pull kibana:7.4.2 #可视化检索工具
docker pull mobz/elasticsearch-head:5-alpine #head插件拉取此镜像需要登录docker login操作,不然会报错 unauthorized: authentication required

2.配置

mkdir -p /home/elasticsearch/config
mkdir -p /home/elasticsearch/data
echo "http.host: 0.0.0.0" >/home/elasticsearch/config/elasticsearch.yml
chmod -R 777 /home/elasticsearch/

3.运行
9200:http协议 外部通讯 外部访问
9300:tcp协议 内部通讯 用于集群

docker run --name elasticsearch -p 9200:9200 -p 9300:9300
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx256m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

参数说明
–name elasticsearch:将容器命名为 elasticsearch
-p 9200:9200:将容器的9200端口映射到宿主机9200端口
-p 9300:9300:将容器的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:将插件目录挂载到宿主机(需重启)
-d elasticsearch:7.7.0:后台运行容器,并返回容器ID
开机自启动

docker update elasticsearch --restart=always

4.启动kibana
注意:ELASTICSEARCH_HOSTS=http://localhost:9200中localhost需要改成es容器内部ip,不然会报Kibana server is not ready yet
查看容器内部IP

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或id

启动kibana

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://localhost:9200 -p 5601:5601 -d kibana:7.4.2

开机自启动

docker update kibana  --restart=always

5.启动head插件

docker run -d \
  --name=elasticsearch-head \
  --restart=always \
  -p 9100:9100 \
  docker.io/mobz/elasticsearch-head:5-alpine

5.开启ES跨域访问
进入es容器,找到配置文件并在ES的配置文件中追加如下两行配置

[root@localhost ~]# docker exec -it 4bac193fdf3a /bin/bash
[root@4bac193fdf3a elasticsearch]# ls
LICENSE.txt  NOTICE.txt  README.textile  bin  config  data  jdk  lib  logs  modules  plugins
[root@4bac193fdf3a elasticsearch]# vi ./config/elasticsearch.yml 

#如下增加跨域配置:wq保存退出
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

6.重启ES容器

docker restart 4bac193fdf3a#容器id

7.配置head插件

docker exec -it 5fd78f2a5dfa  /bin/sh#进入head容器中
vi ./_site/app.js  #编辑head的ES配置,将其中的localhost修改为自己的ip地址

 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
 ↓
 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://IP:9200";

8.head管理elasticsearch集群设置索引时报错406not Acceptable
进入head安装目录编辑vendor.js 共有两处

docker exec -it 5fd78f2a5dfa  /bin/sh#进入head容器中
/usr/src/app # vi ./_site/vendor.js 


1. 6886行 contentType: "application/x-www-form-urlencoded" 改成 contentType:"application/json;charset=UTF-8" 
2. 7574行 var inspectData = s.contentType == "application/x-www-form-urlencoded" &&
    改成 var inspectData = s.contentType == "application/json;charset=UTF-8" &&

9.测试
访问ES服务 http://ip:9200/,kibana可视化服务 http://ip:5601/ ,head插件 http://ip:9100/
在这里插入图片描述](https://img-blog.csdnimg.cn/4393932713d44c749a5f9f1f82e0eaf1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yaw5ZKW5ZWhMDA4,size_17,color_FFFFFF,t_70,g_se,x_16)在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值