监控,是服务可用性保障的关键之一。本文从运维角度,对ES服务监控进行了系统性总结,涵盖监控工具选型、监控采集项筛选介绍,最后列举了几个借助监控发现的ES线上问题。
ES监控概览
针对ES进行监控,主要期望解决这几种场景:
-
ES日常服务巡检,帮助运维开发人员及时发现隐患
-
ES服务异常后,帮助运维开发人员及时发现故障
-
采集的ES监控指标,帮助运维开发人员迅速定位问题根因
能够及时发现ES服务异常,这是最主要目标。
监控工具选型
借助运维工具,在ES实际运维工作中能极大提升运维开发人员的工作效率。目前ES可用的监控工具或插件很多,对多种监控工具进行评测分析后,我们最终的监控工具选型为:
-
X-Pack+kibana
索引信息、集群整体信息很有帮助,尤其是各索引的索引、搜索速率,索引延迟数据等。其中,X-Pack是官方给出的插件(Monitoring为开放特性),需要注意的是,ES集群上线前就需要安装X-Pack插件。图一展现了在Kibana中,Monitoring部分功能。
图一 Monitoring部分功能
-
Jmxtrans-ES+influxdb
主要进行核心数据采集、监控。ES本身提供的jmx信息有限,这里使用了Jmxt