本文介绍如何在ARMS告警管理中接入Grafana,使Grafana创建的告警可以上报至ARMS告警管理中。
步骤一:创建Grafana集成
- 登录ARMS控制台,在左侧导航栏选择 。
在告警集成页签,单击Grafana。
在新建Grafana集成对话框中,输入集成名称、描述,选择Grafana版本,设置告警事件自动恢复时间,然后单击保存。
说明 告警事件自动恢复时间:当告警事件在设置的时间内都没有再触发,告警事件将会自动恢复。在告警集成页签查看新建的Grafana集成并获取集成地址。
步骤二:配置Grafana告警
在Grafana页面左侧导航栏选择 。
在Notification channels页签单击New channel。
说明如果是首次创建channel,单击Add channel。
在New notification channel页面执行以下操作。
输入Name参数,自定义Grafana告警名称。
设置Type为webhook。
设置URL为步骤一获取的集成地址。
在Notification settings区域选中Default、Include image和Send reminders。选中Send reminders后需要设置同一告警的上报频率,上报频率不能超过步骤一中设置的告警事件自动恢复时间。
说明如果不选择Send reminders参数,则同一告警仅会上报一次。
单击Test,验证Grafana是否成功连接到ARMS告警管理。
连接测试通过后单击Save。
(可选)步骤三:编辑集成
ARMS告警管理预设了Grafana告警源与ARMS告警管理之间字段的映射,您也可以根据需要在编辑集成页面新增或修改字段的映射关系。
此处操作将使用以下告警源作为示例。
{
"@timestamp":"2021-09-09T12:25:09.556Z",
"orgId":0,
"host":"10.1.11.14",
"ruleName":"Test notification",
"ruleUrl":"http://localhost:8001/grafana/",
"state":"alerting",
"title":"[Alerting] Test notification",
"panelId":1,
"imageUrl":"https://grafana.com/assets/img/blog/mixed_styles.png",
"evalMatches":[
{
"metric":"High value",
"value":100,
"tags":null
},
{
"metric":"Higher Value",
"value":200,
"tags":null
}
],
"ruleId":0,
"tags":{
},
"dashboardId":1,
"message":"Someone is testing the alert notification within grafana.",
"@version":"1"
}
- 在告警集成页签单击目标集成右侧操作列的编辑。
- 在事件映射区域左侧单击发送测试数据。
在发送测试数据对话框,输入第三方告警源的JSON格式的告警内容,然后单击发送。
说明- 如果显示上传成功,但未生成事件,请根据原始数据配置事件映射规则!,表示告警源与ARMS告警事件的字段没有映射,实际发送数据会被保存在左侧记录框中,以便配置映射时可以直接选取对应告警源字段。
- 如果显示上传成功!,则表明对应的告警内容已上报至告警事件历史页面。更多信息,请参见查看告警事件历史。
- 在发送测试数据对话框单击关闭。
- 在事件映射区域左侧单击并展开需要建立映射的告警数据。
在事件映射区域右侧配置告警源字段与ARMS告警的映射。
可选:在选择根节点区域选择是否使用批处理。
当告警数据存在数组节点时,可以指定目标数组节点作为根节点,将对应根节点下的数据进行批处理。
选择使用批处理后,选择需要批处理的数组节点作为根节点。
说明当告警数据存在多个数组节点时,ARMS告警管理仅支持选择其中一个数组节点进行批处理。
例如:对于告警示例场景evalMatches数组节点下的两个
value
字段,选择evalMatches为根节点后,节点下的两个value
字段将会作为同一字段映射到ARMS的指定告警字段。选择为根节点:可以设置将数组中所有元素的
$.evalMatches[*].value
属性值迭代映射到ARMS的value
字段。不选择为根节点:可以选择将数组中的具体下标元素
$.evalMatches[0].value
或$.evalMatches[1].value
属性值迭代映射到ARMS的value
字段。
在将源字段映射到目标字段区域将告警源字段映射到ARMS告警字段上。
单击映射图标,可以修改字段映射方式。
直接:告警源指定字段直接映射为ARMS中对应的告警字段。
串联:将多个告警源字段通过指定分隔符串联为一个字段,然后将这一个字段映射为ARMS中对应的告警字段。分隔符仅支持特殊字符。
例如:可以将字段
$.host
和$.title
使用短下划线(_)串联为$.host_$.title
,然后映射到ARMS的alertname
字段上。条件:当告警字段值满足指定条件后,设置的字段才会映射到ARMS目标字段上。
映射表:设置告警源的告警等级与ARMS中的告警等级的映射,仅告警等级(severity)字段需要设置映射表。
ARMS告警字段说明:
ARMS告警字段 说明 告警名称(alertname) 自定义告警的名称。 告警等级(severity) 设置告警等级的映射字段。该字段需要设置告警等级映射表,且映射方式必须设置为直接映射。 告警描述(message) 告警事件的详细信息,用于告警通知。最多支持15000字符。 告警样本值(value) 监控指标的样本值。 告警图片(imageUrl) 指标折线图URL,用于映射Grafana指标折线图。 检查项(check) 告警检查项。例如:CPU、JVM、Application Crash、Deployment。 来源(source) 告警事件的来源。 分类(class) 告警事件的对象类型,例如:主机。 服务(service) 与业务相关的来源服务,例如:Login Service。 开始时间(startat) 事件开始时间的时间戳。 结束时间(endat) 事件结束时间的时间戳。 事件地址(generatorUrl) 事件详细信息地址。
设置事件去重。
为了减少重复数据,系统使用相关字段作为去重依据。ARMS告警管理支持预览事件映射区域中的历史事件数据的去重分组结果,您可根据需要调整去重字段。
说明事件去重仅针对未恢复状态下的事件。
在编辑集成页面的事件去重区域选择需要去重的字段。
当选择的字段的值相同时,对应的多个事件将会合并为一个告警通知。
例如:将ARMS的
metric
和ruleName
字段设置为去重键,那么Grafana告警源中Metric和RuleName相同的事件将会合并为一个事件,Metric和RuleName不同的事件仍会分为多个事件。单击去重测试,可以预览去重后的告警分组。
说明去重测试针对的是事件映射左侧区域中上传的最近10条测试数据。
配置完成后,单击保存。
查看告警事件
- 在控制台左侧导航栏选择 。
- 在告警事件历史页面单击目标事件,可以查看告警事件的详细信息。更多信息,请参见查看告警事件历史。
管理集成
在
页面的告警集成页签,对于已经创建的集成,您可以进行以下操作:- 查看集成:如果您需要查看集成的详细信息,单击目标集成所在行,在集成详情页面查看集成的详细信息。
更新密钥:如果您需要修改集成的密钥,在目标集成右侧操作列选择
,在弹出的对话框中单击确认。重要更新密钥后,请将步骤二中的URL修改为新的集成地址。
- 编辑:如果您需要修改集成信息,在目标集成右侧操作列单击编辑,在集成详情页面修改集成信息,然后单击保存。
- 启用或禁用:如果您需要启用或禁用目标集成,在目标集成右侧操作列单击禁用或启用。
- 删除:如果您需要删除集成,在目标集成右侧操作列单击删除,在弹出的对话框中单击确认。
- 添加事件流:如果您需要为指定集成添加对应的事件处理流,在目标集成右侧操作列单击添加事件流。具体操作,请参见事件处理流。
- 新建通知策略:如果您需要为指定集成添加对应的通知策略,在目标集成右侧操作列单击新建通知策略。具体操作,请参见通知策略。
后续步骤
您可以通过设置通知策略将上报的告警事件生成告警并发送告警通知,具体操作,请参见通知策略。经过通知策略分派后生成的告警可以在告警发送历史页面查看告警的详细信息,更多信息,请参见查看告警发送历史。