文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ElasticSearch 6.x head插件安装

2023-01-31 08:22

关注

ElasticSearch-head是一个H5编写的ElasticSearch集群操作和管理工具,可以对集群进行傻瓜式操作。

 

这里主要介绍2种操作系统的安装方法

centos镜像

新建目录/opt/elasticsearch-head-centos

mkdir /opt/elasticsearch-head-centos
cd /opt/elasticsearch-head-centos

dockerfile

编辑dockerfile文件

FROM centos
# 安装
RUN yum install -y bzip2.x86_64 unzip wget && yum clean all && \
  cd /etc/yum.repos.d/ && \
  wget http://mirrors.163.com/.help/CentOS7-Base-163.repo && \
  rm -rf /etc/yum.repos.d/CentOS-Base.repo && \
  yum clean all && yum makecache && \
  yum install -y epel-release.noarch && \
  yum install -y nodejs && \
  npm install -g cnpm --registry=https://registry.npm.taobao.org && \
  npm install -g grunt && \
  npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy && \
  cd / && wget https://github.com/mobz/elasticsearch-head/archive/master.zip && \
  unzip master.zip -d / && rm -rf master.zip && cd /elasticsearch-head-master && \
  npm install -g cnpm --registry=https://registry.npm.taobao.org && \
  cnpm install

EXPOSE 9100
# 工作目录
WORKDIR /elasticsearch-head-master
# 启动脚本
RUN echo '#!/bin/sh'>/run.sh && echo 'grunt server'>>/run.sh && chmod +x /run.sh
ENTRYPOINT [ "/run.sh"]

这里选用的镜像是centos,版本是centos 7 

 

注意:node版本必须大于6.0,使用yum安装就是大于6.0的版本!

很多人都不知道ENTRYPOINT这个参数是干啥的?我重新声明一下,在启动镜像的时候,它会自动调用ENTRYPOINT定义的命令。

所以在dockerfile里面的RUN中,没有必要去启动服务!

 

生成镜像

docker build -t elasticsearch-head-centos /opt/elasticsearch-head-centos

 

启动容器

docker run -d -it --restart=always -p 9100:9100 elasticsearch-head-centos

 

访问页面

http://192.168.91.128:9100/

效果如下:

1.png

 

ubuntu镜像

新建目录/opt/elasticsearch-head-ubuntu

mkdir /opt/elasticsearch-head-ubuntu
cd /opt/elasticsearch-head-ubuntu

 

在此目录下,新建文件sources.list

vim sources.list

内容如下:

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe


dockerfile

编辑dockerfile文件

FROM ubuntu:16.04
# 修改更新源为阿里云
ADD sources.list /etc/apt/sources.list
# 安装jdk和elasticsearch
RUN apt-get update && apt install -y npm curl && \
  npm install -y npm@latest -g && \
  npm install -g n && \
  n latest && \
  npm install -g cnpm --registry=https://registry.npm.taobao.org && \
  npm install -g grunt && \
  npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy && \
  apt-get install -y wget unzip && apt-get clean all && \
  wget https://github.com/mobz/elasticsearch-head/archive/master.zip && \
  unzip master.zip -d / && rm -rf master.zip && \
  cd /elasticsearch-head-master/ && \
  npm install && \
  cnpm install
  
EXPOSE 9100
# 工作目录
WORKDIR /elasticsearch-head-master
# 添加启动脚本
RUN echo '#!/bin/sh'>/run.sh && echo 'grunt server'>>/run.sh && chmod +x /run.sh
ENTRYPOINT [ "/run.sh"]


注意:这里选用的镜像,版本必须是ubuntu:16.04。最新版本安装可能有问题

 

下面这几行命令,表示安装最新版的npm。因为默认的npm版本是4.x,无法符合head插件的要求!

npm install -y npm@latest -g
npm install -g n
n latest

 

生成镜像

docker build -t elasticsearch-head-ubuntu /opt/elasticsearch-head-ubuntu

 

启动容器

注意:这一步,可不需要执行。因为上面已经映射了9100端口,这里再执行会报错!

docker run -d -it --restart=always -p 9100:9100 elasticsearch-head-ubuntu

 

在这篇博客中,链接如下:

https://www.cnblogs.com/xiao987334176/p/9957879.html#autoid-3-6-0

 

已经介绍了elasticsearch的安装,直接启动镜像即可!

访问elasticsearch页面

1.png

可以发现,版本是6.4.3

 

打开head插件的页面,输入elasticsearch访问地址,点击连接

1.png


咦,怎么点击,网页下方就是没有反应。为什么呢?

打开elasticsearch-head的github地址

https://github.com/mobz/elasticsearch-head

 

这里面有介绍

1.png

它只说了,能连接到5.x。那么6.x能不能连接呢?不知道!

那么因此,我们可能会得出结论,head插件,确实不支持6.x啊,我点击了半天,确实没有反应啊!

 

要是head插件不能连接6.x,那我写这篇文章,岂不打脸吗?此处省略一万字.....

 

连接6.x解决方案

其实问题的关键点,不在于head插件,而是在于elasticsearch。

elasticsearch还漏了2行关键的配置参数

http.cors.enabled: true
http.cors.allow-origin: "*"

 

登录elasticsearch所在的服务器,进入目录/opt/elasticsearch,编辑run.sh

增加2行配置

#!/bin/bash
set -e

# 添加时区
TZ=Asia/Shanghai
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 设置权限
chown -R elasticsearch:elasticsearch /etc/elasticsearch

# 判断目录是否存在,否则创建
if [ ! -d /var/lib/elasticsearch/data ];then
  mkdir -p /var/lib/elasticsearch/data
  chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/data
fi
if [ ! -d /var/log/elasticsearch/logs ];then
  mkdir -p /var/log/elasticsearch/logs
  chown -R elasticsearch:elasticsearch /var/log/elasticsearch/logs
fi

# 修改数据和日志目录
sed -i '33s@/var/lib/elasticsearch@/var/lib/elasticsearch/data@g' /etc/elasticsearch/elasticsearch.yml
sed -i '37s@/var/log/elasticsearch@/var/log/elasticsearch/logs@g' /etc/elasticsearch/elasticsearch.yml

# 修改绑定ip和端口
sed -i '55s@#network.host: 192.168.0.1@network.host: 0.0.0.0@g' /etc/elasticsearch/elasticsearch.yml 
sed -i '59s@#http.port: 9200@http.port: 9200@g' /etc/elasticsearch/elasticsearch.yml

# 允许head插件可以访问es
echo 'http.cors.enabled: true' >> /etc/elasticsearch/elasticsearch.yml
echo 'http.cors.allow-origin: "*"'  >>/etc/elasticsearch/elasticsearch.yml


# 修改启动文件,去掉-d参数,避免后台运行
sed -i 72's@-d -p $PID_FILE@-p $PID_FILE@g' /etc/init.d/elasticsearch

# 启动elasticsearch,要hold住,否则容器启动就退出了!
/etc/init.d/elasticsearch start
root@xiao:/opt/elasticsearch# cat run.sh 
#!/bin/bash
set -e

# 添加时区
TZ=Asia/Shanghai
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 设置权限
chown -R elasticsearch:elasticsearch /etc/elasticsearch

# 判断目录是否存在,否则创建
if [ ! -d /var/lib/elasticsearch/data ];then
  mkdir -p /var/lib/elasticsearch/data
  chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/data
fi
if [ ! -d /var/log/elasticsearch/logs ];then
  mkdir -p /var/log/elasticsearch/logs
  chown -R elasticsearch:elasticsearch /var/log/elasticsearch/logs
fi

# 修改数据和日志目录
sed -i '33s@/var/lib/elasticsearch@/var/lib/elasticsearch/data@g' /etc/elasticsearch/elasticsearch.yml
sed -i '37s@/var/log/elasticsearch@/var/log/elasticsearch/logs@g' /etc/elasticsearch/elasticsearch.yml

# 修改绑定ip和端口
sed -i '55s@#network.host: 192.168.0.1@network.host: 0.0.0.0@g' /etc/elasticsearch/elasticsearch.yml 
sed -i '59s@#http.port: 9200@http.port: 9200@g' /etc/elasticsearch/elasticsearch.yml

# 允许head插件可以访问es
echo 'http.cors.enabled: true' >> /etc/elasticsearch/elasticsearch.yml
echo 'http.cors.allow-origin: "*"'  >>/etc/elasticsearch/elasticsearch.yml


# 修改启动文件,去掉-d参数,避免后台运行
sed -i 72's@-d -p $PID_FILE@-p $PID_FILE@g' /etc/init.d/elasticsearch

# 启动elasticsearch,要hold住,否则容器启动就退出了!
/etc/init.d/elasticsearch start


重新生成elasticsearch镜像

docker build -t elasticsearch-6.4.3 /opt/elasticsearch

 

杀掉elasticsearch进程

docker rm aee7068b2c4e -f

 

重新启动elasticsearch

docker run -d -it --restart=always -p 9200:9200 elasticsearch-6.4.3

 

等待几分钟,访问elasticsearch页面

访问elasticsearch页面

1.png

再次使用head插件页面连接

1.png


这样,就连接成功了!!!

 

 

本文参考链接:
https://blog.csdn.net/chengyuqiang/article/details/78838175


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯