配置用于告警的 MQTT 通知器
使用 Grafana Alerting - MQTT 集成,在告警触发时将通知发送到 MQTT Broker。
步骤
要配置用于告警的 MQTT 集成,请完成以下步骤。
在左侧菜单中,点击 Alerts & IRM,然后点击 Alerting。
在 Contact Points 选项卡上,点击 + Add contact point。
输入联系点的描述性名称。
从集成列表中,选择 MQTT。
在 Broker URL 字段中输入你的 broker URL。支持
tcp
,ssl
,mqtt
,mqtts
,ws
,wss
方案。例如:tcp://127.0.0.1:1883
。在 Topic 字段中输入 MQTT 主题名称。
在 Optional MQTT settings 中,根据需要指定 MQTT 集成的附加设置。
点击 Test 测试你的集成是否正常工作。
** 仅适用于 Grafana Alertmanager。**
测试告警通知应发送到 MQTT Broker。
点击 Save contact point。
集成默认以 JSON 格式发送数据。你可以在 Optional MQTT settings 部分使用 Message format 字段进行更改。支持两种格式:
- JSON:以 JSON 格式发送告警通知。
- Text:以纯文本格式发送渲染后的告警通知消息。
MQTT JSON 有效载荷
如果在 Optional MQTT settings 中选择了 JSON 消息格式,则有效载荷将按以下结构发送。
{
"receiver": "My MQTT integration",
"status": "firing",
"orgId": 1,
"alerts": [
{
"status": "firing",
"labels": {
"alertname": "High memory usage",
"team": "blue",
"zone": "us-1"
},
"annotations": {
"description": "The system has high memory usage",
"runbook_url": "https://myrunbook.com/runbook/1234",
"summary": "This alert was triggered for zone us-1"
},
"startsAt": "2021-10-12T09:51:03.157076+02:00",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "https://play.grafana.org/alerting/1afz29v7z/edit",
"fingerprint": "c6eadffa33fcdf37",
"silenceURL": "https://play.grafana.org/alerting/silence/new?alertmanager=grafana&matchers=alertname%3DT2%2Cteam%3Dblue%2Czone%3Dus-1",
"dashboardURL": "",
"panelURL": "",
"values": {
"B": 44.23943737541908,
"C": 1
}
},
{
"status": "firing",
"labels": {
"alertname": "High CPU usage",
"team": "blue",
"zone": "eu-1"
},
"annotations": {
"description": "The system has high CPU usage",
"runbook_url": "https://myrunbook.com/runbook/1234",
"summary": "This alert was triggered for zone eu-1"
},
"startsAt": "2021-10-12T09:56:03.157076+02:00",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "https://play.grafana.org/alerting/d1rdpdv7k/edit",
"fingerprint": "bc97ff14869b13e3",
"silenceURL": "https://play.grafana.org/alerting/silence/new?alertmanager=grafana&matchers=alertname%3DT1%2Cteam%3Dblue%2Czone%3Deu-1",
"dashboardURL": "",
"panelURL": "",
"values": {
"B": 44.23943737541908,
"C": 1
}
}
],
"groupLabels": {},
"commonLabels": {
"team": "blue"
},
"commonAnnotations": {},
"externalURL": "https://play.grafana.org/",
"version": "1",
"groupKey": "{}:{}",
"message": "**Firing**\n\nLabels:\n - alertname = T2\n - team = blue\n - zone = us-1\nAnnotations:\n - description = This is the alert rule checking the second system\n - runbook_url = https://myrunbook.com\n - summary = This is my summary\nSource: https://play.grafana.org/alerting/1afz29v7z/edit\nSilence: https://play.grafana.org/alerting/silence/new?alertmanager=grafana&matchers=alertname%3DT2%2Cteam%3Dblue%2Czone%3Dus-1\n\nLabels:\n - alertname = T1\n - team = blue\n - zone = eu-1\nAnnotations:\nSource: https://play.grafana.org/alerting/d1rdpdv7k/edit\nSilence: https://play.grafana.org/alerting/silence/new?alertmanager=grafana&matchers=alertname%3DT1%2Cteam%3Dblue%2Czone%3Deu-1\n"
}
有效载荷字段
每个通知有效载荷包含以下字段。
键 | 类型 | 描述 |
---|---|---|
receiver | string | 联系点的名称 |
status | string | 告警的当前状态,firing (触发) 或 resolved (已解决) |
orgId | number | 与有效载荷相关的组织的 ID |
alerts | 告警实例数组 | 正在触发的告警 |
groupLabels | object | 用于分组的标签,字符串键到字符串值的映射 |
commonLabels | object | 所有告警共有的标签,字符串键到字符串值的映射 |
commonAnnotations | object | 所有告警共有的注释,字符串键到字符串值的映射 |
externalURL | string | 发送此 Webhook 的 Grafana 实例的外部 URL |
version | string | 有效载荷版本 |
groupKey | string | 用于分组的键 |
message | string | 渲染后的告警消息 |
告警实例
alerts
数组中的每个告警实例具有以下字段。
键 | 类型 | 描述 |
---|---|---|
status | string | 告警的当前状态,firing (触发) 或 resolved (已解决) |
labels | object | 此告警的一部分标签,字符串键到字符串值的映射 |
annotations | object | 此告警的一部分注释,字符串键到字符串值的映射 |
startsAt | string | 告警的开始时间 |
endsAt | string | 告警的结束时间,未解决时的默认值为 0001-01-01T00:00:00Z |
values | object | 触发当前状态的值 |
generatorURL | string | Grafana UI 中告警规则的 URL |
fingerprint | string | 标签的指纹,具有相同标签的告警将具有相同的指纹 |
silenceURL | string | Grafana UI 中静默告警规则的 URL |
dashboardURL | string | 如果告警具有 Dashboard UID 注释,则指向 Grafana 仪表盘的链接 |
panelURL | string | 如果告警具有 Panel ID 注释,则指向面板的链接 |
imageURL | string | 与生成此通知的规则关联的面板截图 URL |
注意
告警规则不再与仪表盘耦合。与仪表盘相关的字段
dashboardId
和panelId
已被移除。