栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号