基于centos7离线部署ES监控工具--elasticsearch head

概述

elasticsearch-head是elasticsearch(下面称ES)比较普遍使用的可监控、测试等功能的集群管理工具,是由H5编写的单独的网页程序。

这里前提是已经安装并且正确运行了ES。因为是生产环境,所以以下过程实际上是离线安装elasticsearch的监控工具-elasticsearchhead。

环境:centos7,ES:6.4

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


一、在具有互联网环境的服务器制作head

1、在服务器 opt 目录下创建 tools 目录

mkdir -p /opt/tools

2、下载elasticsearch-head-master.zip包和node

将node、head上传至tools目录,配置环境

wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip 
wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
tar -xvf node-v10.15.0-linux-x64.tar.xz 
mv node-v10.15.0-linux-x64 /opt/tools/
mv elasticsearch-head-master/ /opt/tools/

基于centos7离线部署ES监控工具--elasticsearch head


3、添加node环境变量

echo "export PATH=$PATH:/opt/tools/node-v10.15.0-linux-x64/bin" >> /etc/profile
source /etc/profile

4、测试node是否安装成功

node -v
npm -v

基于centos7离线部署ES监控工具--elasticsearch head

5、安装grunt

grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等工作,elasticsearch-head插件就是通过grunt启动的

cd /opt/tools/elasticsearch-head-master/
#注意这个命令要在elasticsearch-head目录下运行,而且一旦目录被迁移或中间的绝对路径有变化,就得重新运行安装。
npm install grunt --save-dev
npm install -g grunt-cli
#其他插件
npm install grunt-contrib-clean
npm install grunt-contrib-concat
npm install grunt-contrib-watch
npm install grunt-contrib-connect
npm install grunt-contrib-copy
npm install grunt-contrib-jasmine
grunt -version

附Grunt常用插件说明:

1)grunt-contrib-uglify:压缩js代码

2)grunt-contrib-concat:合并js文件

3)grunt-contrib-qunit:单元测试

4)grunt-contrib-jshint:js代码检查

5)grunt-contrib-watch:文件监控

6)grunt-contrib-sass:Scss编译

7)grunt-contrib-connect:建立本地服务器

基于centos7离线部署ES监控工具--elasticsearch head

6、修改 elasticsearch-head 目录下的 Gruntfile.js 文件

在 options 属性内增加 hostname,设置为 0.0.0.0。

connect: {
 server: {
 options: {
 port: 9100,
 hostname: '0.0.0.0',
 base: '.',
 keepalive: true
 }
 }
 }

基于centos7离线部署ES监控工具--elasticsearch head

7、打包node、head

cd /opt/
tar -czvf tools.tar.gz tools

二、离线安装head

在安装了es的机器安装head(安装在master上即可)

1、上传tools.tar.gz并解压

cd /opt
tar -xvf tools.tar.gz

基于centos7离线部署ES监控工具--elasticsearch head

2、配置环境变量

假设tools.tar.gz解压成/opt/node-v10.15.0-linux-x64和/opt/elasticsearch-head-master目录

echo "export PATH=$PATH:/opt/tools/node-v10.15.0-linux-x64/bin" >> /etc/profile
source /etc/profile
grunt -version


3、配合elasticsearch启动

ElasticSearch-head 和 elasticsearch 是两个功能,如果互相访问,是跨域问题。解决跨域问题,后才可以正常用elasticsearch-head 管理 elasticsearch。

修改config/elasticsearch.yml 文件(增加如下配置,中间为英文符号空格)

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

基于centos7离线部署ES监控工具--elasticsearch head


4、启动ES服务

重启elasticsearch服务

su - es
cd /usr/local/elasticsearch-6.6.1/bin/
./elasticsearch -d

基于centos7离线部署ES监控工具--elasticsearch head


三、启动head

1、授权

chown -R es:es /opt/tools/

2、启动head

su - es
cd /opt/tools/elasticsearch-head-master
--启动
grunt server
--后台启动
setsid grunt server

基于centos7离线部署ES监控工具--elasticsearch head


四、验证

通过浏览器测试是否正常

http://服务器IP:9100/

基于centos7离线部署ES监控工具--elasticsearch head

对上图中标记对必要说明:

1)节点带星号的为集群主节点,带圈的为从节点,这点和Kibana一样;

2)ES 当前版本 6.4 碎片数量默认为5(后面会改成1),Head中呈现的是每个索引为一列,该列中0-4就是对应索引下的5个碎片标记,其中如果灰色外框是粗线的为主碎片,外框是细线的为副本碎片,以索引进行列划分,其中数字相同的碎片就对应ES中主、副碎片,如图所示,shirts索引的0号主碎片在jack_slave2节点上,对应的0号副本碎片在jack_slave1节点上,注意主碎片的副本碎片是不会分配在同一个节点上的,在Head中表现为在同一个节点上不会同时出现数字相同的粗线框和细线框;

3)在索引名下面的会标注有整个索引的大小和该索引下总共的文档数;

4)点击碎片可以查看对应碎片的详细信息;

基于centos7离线部署ES监控工具--elasticsearch head

基于centos7离线部署ES监控工具--elasticsearch head

基于centos7离线部署ES监控工具--elasticsearch head

集群健康的几种状态:

绿色,最健康的状态,代表所有的分片包括备份都可用

黄色,基本的分片可用,但是备份不可用(也可能是没有备份)黄色,基本的分片可用,但是备份不可用(也可能是没有备份)

红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。

灰色,未连接到elasticsearch服务灰色,未连接到elasticsearch服务


这个工具用来监控ES还是很方便的,大家也可以自己摸索一下,后面侧重点是分享一些优化案例了,感兴趣的朋友可以关注下~

基于centos7离线部署ES监控工具--elasticsearch head

相关推荐