如何优雅的监控ES
本博客将介绍两个监控,第一个是ES的整体监控工具极限数据平台,监控内容包括集群、节点、索引和线程池信息;第二个是ES堆外内存监控es-pcstat。
整体监控
强烈推荐极限数据平台!
- 极限数据平台可以监控多个不同版本的ES集群,免去监控多版本ES安装不同监控;
- 可在监控界面查看集群信息,各节点信息,索引信息,线程池;
- 拥有和kibana的dev tools类似的功能,还可以保存语句。两个字真香!
安装
安装准备
安装&启动
-
解压文件 修改
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
整体架构
运行环境
类unix、linux环境
监控范围
ES6.x、7.x索引下各类 lucene 文件的 page cache 占用,单位MB,默认采集全部索引,支持配置采集的索引前缀。
监控方法
控制台、日志和ES(监控数据写入ES)
基于Kibana监控展示
下载、安装、运行、使用方法和案例
参考这个:elasticsearch.cn/article/144…
有待改进点
监控节点和数据写入节点必须是同一个节点
安装可能会遇见的坑
导入kibana后,名称是pcstat_detail_index的dashboard显示error;我的出现原因是没有.dim类型的数据生成(没有索引包含数值类型数据),导致页面报错。
解决办法:编辑这个dashboard,删除这一显示项。操作方法如下:
- 点击右上角设置,然后点击编辑
2. 将带有感叹号的删除,然后点击右下角update,然后左侧即可显示效果,最后点击右上角save and return