ElasticSearch 6.x head插件安裝


一、Head插件簡介

ElasticSearch-head是一個H5編寫的ElasticSearch集群操作和管理工具,可以對集群進行傻瓜式操作。

  • 顯示集群的拓撲,並且能夠執行索引和節點級別操作
  • 搜索接口能夠查詢集群中原始json或表格格式的檢索數據
  • 能夠快速訪問並顯示集群的狀態
  • 有一個輸入窗口,允許任意調用RESTful API。這個接口包含幾個選項,可以組合在一起以產生有趣的結果;
  • 5.0版本之前可以通過plugin名安裝,5.0之后可以獨立運行。

 

二、基於docker安裝

這里主要介紹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/

效果如下:

 

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

 

三、head插件連接elasticsearch

在這篇博客中,鏈接如下:

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

 

已經介紹了elasticsearch的安裝,直接啟動鏡像即可!

訪問elasticsearch頁面

可以發現,版本是6.4.3

 

打開head插件的頁面,輸入elasticsearch訪問地址,點擊連接

 

咦,怎么點擊,網頁下方就是沒有反應。為什么呢?

打開elasticsearch-head的github地址

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

 

這里面有介紹

 

它只說了,能連接到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頁面

 

再次使用head插件頁面連接

 

這樣,就連接成功了!!!

 

 

本文參考鏈接:
https://blog.csdn.net/chengyuqiang/article/details/78838175

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM