菜单
Grafana Cloud Enterprise 开源

配置用于告警的 MQTT 通知器

使用 Grafana Alerting - MQTT 集成,在告警触发时将通知发送到 MQTT Broker。

步骤

要配置用于告警的 MQTT 集成,请完成以下步骤。

  1. 在左侧菜单中,点击 Alerts & IRM,然后点击 Alerting

  2. Contact Points 选项卡上,点击 + Add contact point

  3. 输入联系点的描述性名称。

  4. 从集成列表中,选择 MQTT

  5. Broker URL 字段中输入你的 broker URL。支持 tcp, ssl, mqtt, mqtts, ws, wss 方案。例如:tcp://127.0.0.1:1883

  6. Topic 字段中输入 MQTT 主题名称。

  7. Optional MQTT settings 中,根据需要指定 MQTT 集成的附加设置。

  8. 点击 Test 测试你的集成是否正常工作。

    ** 仅适用于 Grafana Alertmanager。**

    测试告警通知应发送到 MQTT Broker。

  9. 点击 Save contact point。

集成默认以 JSON 格式发送数据。你可以在 Optional MQTT settings 部分使用 Message format 字段进行更改。支持两种格式:

  • JSON:以 JSON 格式发送告警通知。
  • Text:以纯文本格式发送渲染后的告警通知消息。

MQTT JSON 有效载荷

如果在 Optional MQTT settings 中选择了 JSON 消息格式,则有效载荷将按以下结构发送。

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"
}

有效载荷字段

每个通知有效载荷包含以下字段。

类型描述
receiverstring联系点的名称
statusstring告警的当前状态,firing (触发) 或 resolved (已解决)
orgIdnumber与有效载荷相关的组织的 ID
alerts告警实例数组正在触发的告警
groupLabelsobject用于分组的标签,字符串键到字符串值的映射
commonLabelsobject所有告警共有的标签,字符串键到字符串值的映射
commonAnnotationsobject所有告警共有的注释,字符串键到字符串值的映射
externalURLstring发送此 Webhook 的 Grafana 实例的外部 URL
versionstring有效载荷版本
groupKeystring用于分组的键
messagestring渲染后的告警消息

告警实例

alerts 数组中的每个告警实例具有以下字段。

类型描述
statusstring告警的当前状态,firing (触发) 或 resolved (已解决)
labelsobject此告警的一部分标签,字符串键到字符串值的映射
annotationsobject此告警的一部分注释,字符串键到字符串值的映射
startsAtstring告警的开始时间
endsAtstring告警的结束时间,未解决时的默认值为 0001-01-01T00:00:00Z
valuesobject触发当前状态的值
generatorURLstringGrafana UI 中告警规则的 URL
fingerprintstring标签的指纹,具有相同标签的告警将具有相同的指纹
silenceURLstringGrafana UI 中静默告警规则的 URL
dashboardURLstring如果告警具有 Dashboard UID 注释,则指向 Grafana 仪表盘的链接
panelURLstring如果告警具有 Panel ID 注释,则指向面板的链接
imageURLstring与生成此通知的规则关联的面板截图 URL

注意

告警规则不再与仪表盘耦合。与仪表盘相关的字段 dashboardIdpanelId 已被移除。