本文介绍如何在ARMS告警管理中接入自建Prometheus的告警事件。
背景信息
开源Prometheus支持将报警上报到Alertmanager中,通过配置Promethues.yaml文件中的<alertmanager_config>可以将报警上报到云端的报警中心,更多信息,请参考[alertmanager_config]。
ARMS告警管理提供了与开源完全兼容的Alertmanager报警通知能力,通过集成Prometheus可以将自建Prometheus报警上报到ARMS告警管理中。
步骤一:创建集成并接入自建Prometheus
- 登录ARMS控制台,在左侧导航栏选择。
- 在告警集成页签单击Prometheus。
- 在新建Prometheus集成对话框输入Prometheus集成的名称、描述和告警事件自动恢复时间,然后单击保存。
说明 告警事件自动恢复时间:当告警事件在设置的时间内都没有再触发,告警事件将会自动恢复。
- 根据不同的Prometheus实例选择接入Prometheus的方法,然后单击确定。
使用Prometheus-Operator管理的Prometheus实例
- 在本地创建arms-alertmanager-config.yaml文件,然后将以下内容粘贴到创建的文件中。
- scheme: https
bearer_token: ******
static_configs:
- targets: ['alerts.aliyuncs.com']
说明 请在控制台获取bearer_token
的值。
- 通过arms-alertmanager-config.yaml文件创建名为arms-am-config的secret。
kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yaml
- 在本地创建prometheus-patch.yaml文件,然后将以下内容粘贴到创建的文件中。
spec:
additionalAlertManagerConfigs:
key: arms-alertmanager-config.yaml
name: arms-am-config
- 执行以下命令获取Prometheus对象。
kubectl get prometheus
返回示例:
NAME VERSION REPLCAS AGE
prometheus-operator-160879-prometheus v2.18.2 1 4d1h
- 执行以下命令将prometheus-patch.yaml文件更新到Prometheus对象中。
kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge
其他方式自行搭建的Prometheus实例
- 修改prometheus.yaml配置文件。
此处以2.35版本Prometheus为例添加配置如下,更多版本的配置格式,请参见Prometheus官方文档。
alerting:
alertmanagers:
- api_version: v1
authorization:
type: Bearer
credentials: ${token}
scheme: https
static_configs:
- targets: ["alerts.aliyuncs.com"]
说明 请在控制台获取bearer_token
的值。
- 在浏览器中访问Prometheus的配置页面,检查prometheus.yaml文件是否已修改。
(可选)步骤二:编辑集成
ARMS告警管理预设了自建Prometheus告警源与ARMS告警管理之间字段的映射,您也可以根据需要在编辑集成页面新增或修改字段的映射关系。
- 在告警集成页签单击目标集成右侧操作列的编辑。
- 在事件映射区域左侧单击发送测试数据。
- 在发送测试数据对话框,输入第三方告警源的JSON格式的告警内容,然后单击发送。
说明
- 如果显示上传成功,但未生成事件,请根据原始数据配置事件映射规则!,表示告警源与ARMS告警事件的字段没有映射,实际发送数据会被保存在左侧记录框中,以便配置映射时可以直接选取对应告警源字段。
- 如果显示上传成功!,则表明对应的告警内容已上报至告警事件历史页面。更多信息,请参见查看告警事件历史。
- 在发送测试数据对话框单击关闭。
- 在事件映射区域左侧单击并展开需要建立映射的告警数据。
- 在事件映射区域右侧配置告警源字段与ARMS告警的映射。
- 可选:在选择根节点区域选择是否使用批处理。
当告警数据存在数组节点时,可以指定目标数组节点作为根节点,将对应根节点下的数据进行批处理。
选择使用批处理后,选择需要批处理的数组节点作为根节点。
说明 当告警数据存在多个数组节点时,ARMS告警管理仅支持选择其中一个数组节点进行批处理。
- 在将源字段映射到目标字段区域将告警源字段映射到ARMS告警字段上。
单击映射图标,可以修改字段映射方式。
- 直接:告警源指定字段直接映射为ARMS中对应的告警字段。
- 串联:将多个告警源字段通过指定分隔符串联为一个字段,然后将这一个字段映射为ARMS中对应的告警字段。分隔符仅支持特殊字符。
- 条件:当告警字段值满足指定条件后,设置的字段才会映射到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告警管理支持预览
事件映射区域中的历史事件数据的去重分组结果,您可根据需要调整去重字段。
- 在编辑集成页面的事件去重区域选择需要去重的字段。
当选择的字段的值相同时,对应的多个事件将会合并为一个告警通知。
- 单击去重测试,可以预览去重后的告警分组。
说明 去重测试针对的是事件映射左侧区域中上传的最近10条测试数据。
- 配置完成后,单击保存。
查看告警事件
- 在控制台左侧导航栏选择。
- 在告警事件历史页面单击目标事件,可以查看告警事件的详细信息。更多信息,请参见查看告警事件历史。
管理集成
在页面的告警集成页签,对于已经创建的集成,您可以进行以下操作:
- 查看集成:如果您需要查看集成的详细信息,单击目标集成所在行,在集成详情页面查看集成的详细信息。
- 更新密钥:如果您需要修改集成的密钥,在目标集成右侧操作列选择,在弹出的对话框中单击确认。
- 编辑:如果您需要修改集成信息,在目标集成右侧操作列单击编辑,在集成详情页面修改集成信息,然后单击保存。
- 启用或禁用:如果您需要启用或禁用目标集成,在目标集成右侧操作列单击禁用或启用。
- 删除:如果您需要删除集成,在目标集成右侧操作列单击删除,在弹出的对话框中单击确认。
- 添加事件流:如果您需要为指定集成添加对应的事件处理流,在目标集成右侧操作列单击添加事件流。具体操作,请参见事件处理流。
- 新建通知策略:如果您需要为指定集成添加对应的通知策略,在目标集成右侧操作列单击新建通知策略。具体操作,请参见通知策略。
后续步骤
您可以通过设置通知策略将上报的告警事件生成告警并发送告警通知,具体操作,请参见通知策略。经过通知策略分派后生成的告警可以在告警发送历史页面查看告警的详细信息,更多信息,请参见查看告警发送历史。