告警规则

浏览 0      扫码          2019-11-17 09:54:00     码农文档      译文原文 英文原文

公告:如果您也想加入翻译队伍,或者您有相关中文文档想要贡献给大家,请联系coderdocument@163.com ,谢谢!

告警规则允许你基于Prometheus表达式语言的表达式定义告警条件,并向外部服务发送关于触发告警的通知。当告警表达式在给定的时间点上产生一个或多个向量(vector)元素时,告警将这些元素的标签集合视为活动的。

定义告警规则

在Prometheus中,告警规则的配置方式与记录规则相同。

带有告警的规则文件示例如下:


   
       

可选的for子句导致Prometheus在第一次遇到新的表达式输出向量(vector)元素并将警告视为触发该元素之间等待一定的时间。在这种情况下,Prometheus将检查告警是否在每次评估期间持续激活10分钟,然后触发告警。处于活动状态但尚未触发的元素处于挂起状态。

labels子句允许指定一组附加到的告警的标签。任何现有的冲突标签将被覆盖。可以对标签值进行模板化。

annotation子句指定了一组信息标签,可用于存储更长时间的附加信息,如告警描述或runbook链接。可以对注解值进行模板化。

模板化

可以使用控制台模板对标签和注释的值进行模板化。$labels变量保存告警实例的标签键/值对。可以通过$externalLabels变量访问配置的外部标签。$value变量保存告警实例的计算值。


   
       

示例:


   
       

在运行时检查告警

要手动检查哪些告警处于活动状态(挂起或触发),请导航到你的Prometheus实例的“Alerts”选项卡。这将显示每个定义的告警当前处于活动状态的确切标签集合。

对于挂起的告警和触发的告警,Prometheus还存储了 ALERTS{alertname="<alert name>", alertstate="pending|firing", <additional alert labels>}的合成时间序列。只要警报处于指定的活动(挂起或触发)状态,就将采样值设置为1,如果不再是这种情况,则该系列将被标记为过期。

发送告警通知

Prometheus的告警规则善于发现当前的漏洞,但它们并不是一个成熟的通知解决方案。需要在简单的告警定义的基础上添加摘要、通知速率限制、静默和警报依赖项。在Prometheus的生态系统中,Alertmanager承担这个角色。因此,可以将Prometheus配置为定期向Alertmanager实例发送关于告警状态的信息,然后由Alertmanager实例负责发送正确的通知。

可以将Prometheus配置为通过服务发现集成自动发现可用的Alertmanager实例。

返回顶部