侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 352 篇文章
  • 累计创建 135 个标签
  • 累计收到 10 条评论

目 录CONTENT

文章目录

ES教程3-ES可视化工具elasticsearch-head的安装

孔子说JAVA
2022-10-08 / 0 评论 / 0 点赞 / 147 阅读 / 4,042 字 / 正在检测是否收录...
广告 广告

ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?使用curl等客户端工具即可通过Restful API对Elasticsearch进行操作,但也有一些客户端工具提供对于ElasticSearch更加友好的可视化操作支持,比如 elasticsearch-head 就是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 为开源项目,源码地址 https://github.com/mobz/elasticsearch-head。

ca551d8c92d9510e301c7b0148c04c9d

1、概要信息

项目 说明
开源/闭源 开源
源码管理地址 https://github.com/mobz/elasticsearch-head
License类别 Apache License 2.0
开发语言 Javascript
当前稳定版本 5.0.0(2018/4/10)
下载地址:github release https://github.com/mobz/elasticsearch-head/releases
安装条件 head插件是Nodejs实现的,所以需要先安装Nodejs

2、Head插件安装

早期版本的elasticsearch-head可以直接以插件的方式在Elasticsearch中进行安装,在Elasticsearch 5之后则需要将elasticsearch-head服务单独运行,并且支持Chrome的插件方式或者Docker容器运行方式。

2.1 安装nodejs

使用已编译好的包安装nodejs,参考:Windows 和 Linux 上安装 Node.js

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

# 安装grunt
npm install -g grunt --registry=https://registry.npm.taobao.org

# 安装grunt客户端
npm install -g grunt-cli --registry=https://registry.npm.taobao.org

2.2 安装git

官网给出的elasticsearch-head是git包,所以我们还得被强制安装git来下载此插件。下面安装git:

1)CentOS环境安装git:

[root@localhost git]# yum install -y git
[root@localhost git]# git --version
git version 1.8.3.1

git的卸载命令:

yum remove git

2)Ubuntu环境安装git:

步骤1. 首先,通过运行以下命令确保您的系统和apt包列表完全更新:

apt-get update -y
apt-get upgrade -y

步骤2. 安装git

# 安装git
apt install git

# 查询git版本
git --version
git version 2.25.1

git的卸载命令:

# 卸载 Git 命令:
sudo apt-get remove git

# 彻底删除Git ( XX 为程序名称 )
sudo apt-get purge  XX 

# 然后在清除残余文件

sudo apt-get autoremove
sudo apt-get clean

image-1664877364658

2.3 下载及安装head插件

elasticsearch-head git地址:https://github.com/mobz/elasticsearch-head

在home/es目录下创建 plugin 目录。

root@xnzysq20210118001:/home/es/plugin# cd plugin

root@xnzysq20210118001:/home/es/plugin# git clone git://github.com/mobz/elasticsearch-head.git

root@xnzysq20210118001:/home/es/plugin# cd elasticsearch-head

root@xnzysq20210118001:/home/es/plugin/elasticsearch-head# npm install

root@xnzysq20210118001:/home/es/plugin/elasticsearch-head# npm run start

image-1664879339162

检查端口是否起来,是否可以正常访问。


# 检查端口是否起来
es@xnzysq20210118001:~/es/elasticsearch-7.17.3$ netstat -antp |grep 9100

# 访问测试是否正常
es@xnzysq20210118001:~/es/elasticsearch-7.17.3$ curl http://localhost:9100

image-1664879474485

image-1664879529918

git clone 报错:fatal: unable to connect to github.com问题,原因是需要用https才能读到数据,解决方法:输入命令如下:

git config --global url."https://".insteadOf git://

2.4 配置elasticsearch,允许head插件访问

修改config目录下的elasticsearch.yml 配置文件:

cd /home/es/es/elasticsearch-7.17.3/config/

# 修改配置,允许head插件访问
vim elasticsearch.yml

# 在最后添加以下内容,:后必须空格,不然启动闪退:
# 是否支持跨域
http.cors.enabled: true
# *表示支持所有域名
http.cors.allow-origin: "*"

http.cors.enabled 配置项表示是否支持跨域,默认为false;

http.cors.allow-origin,当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址: /https?://localhost(:[0-9]+)?/

image-1664878044075

使用es用户重启elasticsearch,使用root用户开通9100端口防火墙:ufw allow 9100,使用本地机器浏览器远程访问 elasticsearch-head 服务器,测试是否正常。

image-1664879781196

2.5 测试

如果elasticsearch-head是通过 npm run start 启动(前台启动方式),在关闭操作窗口后,服务就被关闭了。所以我们要以后台方式启动(关闭窗口不影响服务):

# 原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。
root@xnzysq20210118001:/home/es/plugin/elasticsearch-head# nohup npm start &

# 或
root@xnzysq20210118001:/home/es/plugin/elasticsearch-head# nohup npm run start &

启动成功后,在浏览器访问:http://172.19.82.206:9100/ ,内部输入 http://172.19.82.206:9200/ 点击连接测试,如下图所示说明配置OK。

image-1664879855348

2.6 Elasticsearch-head 启动和关闭命令

启动head

  • 前台启动head:npm run startgrunt server
  • 后台启动head:nohup npm start &nohup grunt server &

image-1665189526472

查看head进程lsof -i: 9100

image-1665189542062

停止headkill -9 进程id

2.7 集群健康值的状态

集群健康值的几种状态如下:

  • 绿色,最健康的状态,代表所有的分片包括备份都可用
  • 黄色,基本的分片可用,但是备份不可用(也可能是没有备份)
  • 红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好
  • 灰色,未连接到elasticsearch服务

3、谷歌浏览器添加插件

3.1 安装插件

早期版本的elasticsearch-head可以直接以插件的方式在Elasticsearch中进行安装,在Elasticsearch 5之后则需要将elasticsearch-head服务单独运行,并且支持Chrome的插件方式或者Docker容器运行方式。谷歌浏览器添加插件访问:http://extb.cqttech.com/search/elasticsearch%2520head

image-1665189702039

安装该插件必须是谷歌双核浏览器,按照页面提示下载安装浏览器后,再次访问上述地址即可安装 elasticsearch-head 插件。

3.2 使用插件

点击放大镜图标使用插件,如果找不到放大镜图标,可以点击4个方块组成的图标展开后,点击ElasticSearch Head访问。

image-1665190772873

image-1665190659005

如下图所示的红色框中输入es地址进行连接即可访问。

image-1665190836058

4、常见问题

4.1 cluster health: not connected

连接es服务器时出现cluster health: not connected 提示,需要修改elasticsearch所在目录中的 config/elasticsearch.yml,增加下述配置(:后必须有空格,不然启动闪退):

# 是否支持跨域
http.cors.enabled: true
# *表示支持所有域名
http.cors.allow-origin: "*"

修改完毕后需要重新启动elasticsearch。

如果还是无法连接,需要修改 elasticsearch-head 目录下的 Gruntfile.js 文件。

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

重新启动elasticsearch-head。

0

评论区