主要概念和特点
告警规则
告警规则类型
Mimir, Loki and Cortex rules
要创建 Mimir、Loki 或 Cortex 警报,您必须具有兼容的 Prometheus 数据源。您可以通过测试数据源并检查是否支持 ruler API 的详细信息来检查您的数据源是否兼容。
告警实例
Grafana 托管警报支持多维警报。每个警报规则可以创建多个警报实例。如果您在单个表达式中观察多个系列,这将非常强大。
考虑以下 PromQL 表达式:
sum by(cpu) (rate(node_cpu_seconds_total{mode!="idle"}[1m]))
组织告警规则
警报可以使用 Grafana 管理规则的文件夹和 Mimir 或 Loki 规则和组名称的命名空间来组织。
Namespace
在创建 Grafana 管理的规则时,该文件夹可用于执行访问控制并授予或拒绝对特定文件夹内所有规则的访问。
Groups
一个组内的所有规则都以相同的时间间隔进行评估。
组内的警报规则和记录规则将始终按顺序进行评估,这意味着不会同时按出现顺序评估任何规则。
消息模板
通过联系点发送的通知是使用消息传递模板构建的。Grafana 的默认模板基于Go 模板系统,其中一些字段被评估为文本,而其他字段被评估为 HTML(这会影响转义)。default_template.go中定义的默认模板是自定义模板的有用参考。
由于大多数联系点字段都可以模板化,因此您可以创建可重复使用的自定义模板并在多个联系点中使用它们。默认模板在default_template.go中定义,可以作为自定义模板的有用参考或起点。
使用消息模板
模板数据
Alerts 类型公开用于筛选警报的函数:
Alerts.Firing 返回已经触发的警报列表。
Alerts.Resolved 返回已解决的警报列表。
告警
KeyValue
KeyValue
是一组表示标签和注释的键/值字符串对。
下面是一个包含两个注释的示例:
{"summary": "alert summary 警报摘要","description": "alert description 警报描述"}
除了直接访问存储为KeyValue的数据(标签和注释)之外,还有排序、删除和转换的方法。
嵌套模板
您可以将模板嵌入到其他模板中。
例如,您可以使用define关键字定义模板片段:
{{define "mytemplate" }}{{len .Alerts.Firing }} firing. {{len .Alerts.Resolved }} resolved.{{end }}
template然后,您可以使用关键字在此片段中嵌入自定义模板。例如:
Alert summary:{{template "mytemplate" . }}
您可以使用以下任何内置模板选项来嵌入自定义模板。
消息模板中的 HTML
警报消息模板中的 HTML 已转义。不支持在生成的通知中呈现 HTML
创建 Grafana 托管警报规则
中英文对照表
选择数据源
基本流程
在第 1 步中设置查询和告警条件
1 Set a query and alert condition
在第 2 步中, 指定警报评估间隔
针对简单的Prometheus 中已经存在的 Metric
直接查询到需要用到的 Metric 并添加
如果需要,选择 lable 进行过滤
配置完成后可以点击Run querise
进行测试查询
添加表达,以便判断上面的查询结果达到什么条件触发告警
选择 Classic condition
1 last() 表示取出 最新的值
2 A 表示
3 IS BELOW 低于
4 1
总体意思是:A 查询到的最新的值低于 1 ,就表示符合条件。
因为此示例中查询到的结果: 1 表示 UP,0 表示 DOWN
从以上定义的两个查询或表达式中选择一个作为触发告警的条件
在第 2 步 添加警报评估时间段
下图表示每 1 分钟检查一次看告警条件是否被触发。
告警条件被触发后持续了 5 分钟就发送告警通知。
如果没有数据轰炸所有的值为null 的告警状态: No Data
如果执行错误或者超时的告警状态为:Alerting 告警
在第 3 步 添加告警信息
包含告警名称,存放在那个文件夹、分配到哪个组
告警标题
告警信息
最后点击右上角的 Save
针对 Prometheus 中没有的监控指标
有的监控指标 Prometheus 中没有,需要我们自己编写的情况,比如磁盘的使用率。这种情况下,需要使用更复杂的方式设置,需要添加多个 Metric,并使用函数把它们组合起来。
如果觉得《Prometheus(十一)Grafana告警》对你有帮助,请点赞、收藏,并留下你的观点哦!