文章目录
- 如何优雅的监控ES
- 整体监控
- 安装
- 安装准备
- 安装&启动
- 添加监控集群
- 命令行工具
- 有待改进点
- 概况展示问题
- 数据显示问题
- 集群监控的搜索框
- ES堆外内存监控
- 常用堆外内存监控工具
- es-pcstat
- 整体架构
- 运行环境
- 监控范围
- 监控方法
- 基于Kibana监控展示
- 下载、安装、运行、使用方法和案例
- 有待改进点
- 安装可能会遇见的坑
- 参考资料
如何优雅的监控ES
本博客将介绍两个监控,第一个是ES的整体监控工具极限数据平台,监控内容包括集群、节点、索引和线程池信息;第二个是ES堆外内存监控es-pcstat。
整体监控
强烈推荐极限数据平台!
- 极限数据平台可以监控多个不同版本的ES集群,免去监控多版本ES安装不同监控;
- 可在监控界面查看集群信息,各节点信息,索引信息,线程池;
- 拥有和kibana的dev tools类似的功能,还可以保存语句。两个字真香!
安装
安装准备
- 准备一个7.X的ES集群,用于存储极限数据平台的数据,安装方法可参考这里
- 下载极限数据平台安装包console进行安装,目前有两个版本,可以使用最新版本0.2
安装&启动
- 解压文件
- 修改
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
- 启动运行,即可开始使用。但是强烈建议配置索引设置添加索引生命周期管理,以免监控数据索引过大!
nohup ./console-linux-amd64 > /dev/null 2>&1 &
然后访问:http://安装机器ip:9000
备注
console可以基于容器安装,更多信息可以参考官网
添加监控集群
命令行工具
有待改进点
概况展示问题
未分配分片,可以有一个点击按钮,查看每个分片未分配原因。
数据显示问题
这个显示顺序应该和图片值大小保持一致,不然容易看混淆,如图应该第一个显示蓝色,第二个显示红色这样排序。
集群监控的搜索框
这里可以选择多个索引进行展示,就像top5一样显示。
ES堆外内存监控
ES使用内存包括JVM内存和堆外内存,堆外内存是由Lucene读取文件段时依赖操作系统的page cache缓存,page cache使用类似LRU来删除无效缓存。
常用堆外内存监控工具
pcstat、vmtouch 等工具均可监控堆外内存,其实现原理均是通过 mincore(2) 系统调用,mincore能确定一块虚拟内存区域中的分页是否驻留在物理内存中。但目前监控不能精确到Lucene文件,监控不够详细。为此便有大佬基于pcstat开发了es-pcstat。
es-pcstat
整体架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2a1eEKiu-1639313057636)(https://github.com/BaoPiao/es-pcstat/raw/main/imgs/pcstat.png)]
运行环境
类unix、linux环境
监控范围
ES6.x、7.x索引下各类 lucene 文件的 page cache 占用,单位MB,默认采集全部索引,支持配置采集的索引前缀。
监控方法
控制台、日志和ES(监控数据写入ES)
基于Kibana监控展示
下载、安装、运行、使用方法和案例
参考这个:https://elasticsearch.cn/article/14432
有待改进点
监控节点和数据写入节点必须是同一个节点
安装可能会遇见的坑
导入kibana后,名称是pcstat_detail_index的dashboard显示error;我的出现原因是没有.dim类型的数据生成(没有索引包含数值类型数据),导致页面报错。
解决办法:编辑这个dashboard,删除这一显示项。操作方法如下:
- 点击右上角设置,然后点击编辑
- 将带有感叹号的删除,然后点击右下角update,然后左侧即可显示效果,最后点击右上角save and return
参考资料