如何优雅的监控ES

791 阅读3分钟

image.png

如何优雅的监控ES

本博客将介绍两个监控,第一个是ES的整体监控工具极限数据平台,监控内容包括集群、节点、索引和线程池信息;第二个是ES堆外内存监控es-pcstat

整体监控

强烈推荐极限数据平台!

  • 极限数据平台可以监控多个不同版本的ES集群,免去监控多版本ES安装不同监控;
  • 可在监控界面查看集群信息,各节点信息,索引信息,线程池;
  • 拥有和kibana的dev tools类似的功能,还可以保存语句。两个字真香!

image.png

安装

安装准备

  • 准备一个7.X的ES集群,用于存储极限数据平台的数据,安装方法可参考这里
  • 下载极限数据平台安装包console进行安装,目前有两个版本,可以使用最新版本0.2

安装&启动

  1. 解压文件 修改console.xml配置文件,如果没有认证,只需要修改endPoint(指向安装7.XES集群)即可;否则还要修改相应账号密码

    #存储极限数据平台相关数据的 Elasticsearch 集群信息,版本 v7.0+
    elasticsearch:
      - name: default
        enabled: true
        monitored: true
        endpoint: http://192.168.3.188:9299
        basic_auth:
          username: elastic
          password: ZBdkVQUUdF1Sir4X4BGB
    
  2. 启动运行,即可开始使用。但是强烈建议配置索引设置添加索引生命周期管理,以免监控数据索引过大!

    nohup ./console-linux-amd64  > /dev/null  2>&1  &
    

    然后访问:http://安装机器ip:9000

备注

console可以基于容器安装,更多信息可以参考官网

添加监控集群

Elasticsearch 集群监控

命令行工具

方便的执行命令

有待改进点

概况展示问题

image.png

未分配分片,可以有一个点击按钮,查看每个分片未分配原因。

数据显示问题

image.png

这个显示顺序应该和图片值大小保持一致,不然容易看混淆,如图应该第一个显示蓝色,第二个显示红色这样排序。

集群监控的搜索框

image.png 这里可以选择多个索引进行展示,就像top5一样显示。

ES堆外内存监控

ES使用内存包括JVM内存和堆外内存,堆外内存是由Lucene读取文件段时依赖操作系统的page cache缓存,page cache使用类似LRU来删除无效缓存。

常用堆外内存监控工具

pcstat、vmtouch 等工具均可监控堆外内存,其实现原理均是通过 mincore(2) 系统调用,mincore能确定一块虚拟内存区域中的分页是否驻留在物理内存中。但目前监控不能精确到Lucene文件,监控不够详细。为此便有大佬基于pcstat开发了es-pcstat

es-pcstat

整体架构

image.png

运行环境

类unix、linux环境

监控范围

ES6.x、7.x索引下各类 lucene 文件的 page cache 占用,单位MB,默认采集全部索引,支持配置采集的索引前缀。

监控方法

控制台、日志和ES(监控数据写入ES)

基于Kibana监控展示

image.png

下载、安装、运行、使用方法和案例

参考这个:elasticsearch.cn/article/144…

有待改进点

监控节点和数据写入节点必须是同一个节点

安装可能会遇见的坑

导入kibana后,名称是pcstat_detail_index的dashboard显示error;我的出现原因是没有.dim类型的数据生成(没有索引包含数值类型数据),导致页面报错。 image.png

解决办法:编辑这个dashboard,删除这一显示项。操作方法如下:

  1. 点击右上角设置,然后点击编辑

image.png 2. 将带有感叹号的删除,然后点击右下角update,然后左侧即可显示效果,最后点击右上角save and return

image.png

参考资料

elasticsearch.cn/article/144…

release.elasticsearch.cn/console/sta…

xn--vxup8bl7br83g.com/

elasticsearch.cn/article/144…