配置步骤
点击左边栏 🔔 进入告警管理中心:
-
Alert rules:告警规则管理
-
Contact points:告警联系人管理
-
Notification policies:告警通知策略管理
-
Silence:告警静默管理
-
Alert group:告警历史管理
配置规则
以 customer 为例!
数据提取 & 告警策略
-
选择数据源:选择对应项目所在数据源;
-
设置查询区间:查询指定区间内的日志(相对时间);
-
设置查询条件:指定查询关键词或错误码(越精细越准确越有利于定位问题);
-
设置统计方式:默认使用 count,即统计对应查询数据出现的次数;
-
设置告警策略:即达到某个阈值后触发告警
-
is above:大于
-
is below:小于
-
is within range:在某个区间内
-
is outside range:在某个区间外
-
Input:数据来源,默认使用④中统计的数据,即 count;
-
判断条件:
-
图中告警规则含义:在 customer 日志中,最近30分钟内,出现日志级别为 ERROR 的日志条数大于0即告警!
选择 Expression
Expression 即上图中 ⑤ 位置,Grafana 支持 5 种 expression 类型,根据需要选择合适的 expression 类型(使用方法 详见官方文档 ):
-
Math: Math 是关于时间序列或数字数据的自由形式的数学公式。数学运算以数字和时间序列为输入,并将其转换为不同的数字和时间序列。
-
Reduce: Reduce 获取从查询或表达式返回的一个或多个时间序列,并将每个序列转换为单个数字。时间序列的标签作为标签保存在每个输出的减少数上。
-
Resample: Resample 更改每个时间序列中的时间戳,使其具有一致的时间间隔。主要用例是可以重新采样不共享相同时间戳的时间序列,以便在它们之间执行数学运算。这可以通过对两个系列中的每一个进行重新采样,然后在Math操作中引用重新采样的变量来实现。
-
Classic condition: 从查询或表达式返回的结果中获取一个或多个时间序列,并检查是否有任何序列匹配阈值条件。
-
Threshold: 从查询或表达式返回的结果中获取一个或多个时间序列,并检查是否有任何序列匹配阈值条件。
告警条件设置
-
设置数据采集周期;
-
设置异常情况告警行为。
告警详情
-
告警名称:针对错误名称或错误码命名;
-
所属文件:即该告警归属于哪个Dashboard,统一使用 monitor;
-
告警分组:按业务组/数据源组进行设置;
-
告警详情:对应告警信息中的 {{.annotations}} 字段,可对告警进行详细描述。
标签管理
用于在告警消息中展示,对应告警信息中的 {{.alerts[0].labels}} 字段。
标签设计
标签给告警信息管理带来很大的灵活性,可以将标签作为告警补充信息的一部分,合理的设计标签,让告警管理更便捷。
基于告警 PrometheusAlert 中告警模板设计,现设计以下几个标签:
-
busigroup:项目/业务组(用于后续实现分组告警) (必填)
-
project:项目名称,进一步区分告警来着哪个项目 (必填)
-
level:告警级别,便于技术人员做出应急响应 (必填)
-
instance:告警主机,即项目所部署的主机,便于定位到故障机器 (选填)
PrometheusAlert 告警模板(更多参考):
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}
{{if eq $v.status "resolved"}}
告警名称:☀️ [{{$v.labels.alertname}}]({{$var}}) 恢复
告警级别:{{$v.labels.level}}
开始时间:{{$v.startsAt}}
结束时间:{{GetCSTtime ""}}
告警主机:{{$v.labels.instance}}
{{else}}
告警名称:⛈ [{{$v.labels.alertname}}]({{$var}}) 触发
告警级别:{{$v.labels.level}}
开始时间:{{GetCSTtime ""}}
告警主机:{{$v.labels.instance}}
告警信息:{{$v.annotations.description}}
告警详情:[点击查看]({{$v.generatorURL}})
{{end}}
{{ end }}
告警通知
Grafana 可以通过不同的分发策略将告警发送给不同的联系人。
告警联系人(Contact points)
添加告警联系人。
-
告警联系人名称:业务组-告警渠道(eg:busigroup-fs)
-
告警联系人类型:Webhook
-
告警联系人url:http://alert.xxxx.com/prometheusalert?type=fs&tpl=grafana-fs&fsurl=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxx&at=all
,替换 飞书webhook 地址(对应链接中fsurl字段,at=all 通知中@所有人)
-
告警通知测试:Test——Predefind(预设信息)或 custom(自定义信息)
告警分发(Notification policies)
通过标签可以实现告警分发。
-
Matching labels:标签匹配,需要匹配告警规则中的某个标签,默认使用 busigroup 。
-
Contact point:选择当前busigroup对应的告警要发送到的联系人
告警展示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)