下面介绍如何对node exporter进行监控,通过配置alert规则,检测node exporter是否挂掉。
为了能够让Prometheus能够启用定义的告警规则,我们需要在Prometheus全局配置文件中通过rule_files指定一组告警规则文件的访问路径,Prometheus启动后会自动扫描这些路径下规则文件中定义的内容,并且根据这些规则计算是否向外部发送通知。
修改Prometheus配置文件prometheus.yml
,添加以下配置:
rule_files:
- "rules/myrules.yml"
在prometheus目录下创建rules
文件夹,并创建告警文件myrules.yml
, 内容如下:
groups:
- name: my-rules
rules:
- alert: NodeExporterDown
expr: up{job='node_exporter'} == 0 # 检测node_exporter是否挂掉
在告警规则文件中,我们可以将一组相关的规则设置定义在一个group下。在每一个group中我们可以定义多个告警规则(rule)。一条告警规则主要由以下几部分组成:
重新启动prometheus和node exporter。
如下所示,用户可以通过Prometheus WEB界面中的Alerts菜单查看当前Prometheus下的所有告警规则,以及其当前所处的活动状态。
把node exporter手动停止掉一段时间。执行up{job="node_exporter"} == 0
查询,prometheus已经检测到node expoter挂掉:
到Alerts菜单下查看,状态更新为Firing :
对于已经pending或者firing的告警,Prometheus也会将它们存储到时间序列ALERTS{}中。
通过表达式查询告警实例:
可以构造更详细的查询语句:
ALERTS{alertname="<alert name>", alertstate="pending|firing", <additional alert labels>}
样本值为1表示当前告警处于活动状态。