zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Prometheus Alertmanager 警报规则设置

规则 设置 Prometheus 警报
2023-09-14 09:01:48 时间

监控Alertmanager


与Prometheus一样,Alertmanager暴露了自身的相关指标。让我们创建一个Prometheus作业来监控Alertmanager。

监控 Alertmanager Prometheus 作业
这将从 http://localhost:9093/metrics 收集指标并抓取一系列以 alertmanager_ 为前缀的时间序列数据。这些数据包括按状态分类的警报计数、按接收器分类的成功和失败通知的计数(例如,所有向email 接收器发送失败的通知)。它还包含Alertmanager 集群状态指标
 
 

添加警报规则


现在Alertmanager已经配置完成,让我们添加第一条警报规则。并使用up指标来创建一些基本的可用性警报。

与记录规则一样,警报规则在 Prometheus 服务器配置中加载的规则文件内也使用 YAML 语句定义。让我们在rules 目录中创建一个新文件 node_alerts.yml ,以保存节点警报规则。
 
你可以在同一文件中同时保存记录规则和警报规则,但为了功能清晰明确,建议将它们放在单独的文件中。
创建警报规则文件:
 
不需要单独将此文件添加到 prometheus.yml 配置文件中的 rule_files 块,可以使用 globbing 通配符加载该目录中以_rules.yml _alerts.yml 结尾的所有文件
rule_files 块中添加 globbing 通配符:
可以看到,我们已经添加了一些配置,这些配置将使用正确的命名约定来加载所有文件。我们需要重新启动Prometheus 服务器,以加载这个新的警报规则文件。

 

 

添加第一条警报规则


让我们添加第一条规则:一个CPU警报规则。我们将创建一个警报, 如果我们创建的CPU查询(5分钟内的节点平均CPU使用率)在至少60分钟内超过80%,则会触发警报。现在让我们看看这条规则。
第一条警报规则:
与记录规则一样,警报规则也可以组合在一起。 我们已经指定了一个组名node_alerts,该组中的规则包含在rules块中。每个规则都有一个名称,在alert子句中指定,这里是HighNodeCPU。 在每个警报组中,警报名称都必须是唯一的。
 
我们还有触发警报的测试或表达式,这在 expr子句中指定。

我们附加一个简单的检查:该指标是否大于 80 (或者说是 80 %使用率)。
下一个子句 for ,控制在触发警报之前测试表达式必须为 true 的时间长度。在示例中,指标instance:node_cpu:avg_rate5m需要在触发警报之前的 60 分钟内大于 80 %。这限制了警报误报或是暂时状态的可能性。

 

最后,我们可以使用标签( label )和注解( annotation )来装饰警报。警报规则中时间序列上的所有标签都会转移到警报。labels 子句允许我们指定要附加到警报的其他标签,这里我们添加了一个值为warning的 severity 标签,很快我们就会看到如何使用这个标签

 

警报上的标签与警报的名称相结合,构成警报的标识。这与时间序列相同,其中指标名称和标签构成时间序列的标识。

 

annotations 子句允许我们指定展示更多信息的标签,如描述、运行手册的链接或处理警报的说 明。我们添加了一个名为 summary 的标签来描述警报,还添加了一个名为 console 的注解,它指向了展示节点指标的Grafana 仪表板。这是一个用注解提供上下文的很好的例子。
 
现在我们需要重新加载 Prometheus 以启用新的警报规则。 重新启动Prometheus 后,你将能够在 Prometheus Web 界面 http://localhost:9090/alerts 中看到新的警报