Use the Grafana Alerting - MQTT integration to send notifications to an MQTT broker when your alerts are firing.
Procedure
To configure the MQTT integration for Alerting, complete the following steps.
In the left-side menu, click Alerts & IRM and then Alerting.
On the Contact Points tab, click + Add contact point.
Enter a descriptive name for the contact point.
From the Integration list, select MQTT.
Enter your broker URL in the Broker URL field. Supports tcp, ssl, mqtt, mqtts, ws, wss schemes. For example: tcp://127.0.0.1:1883.
Enter the MQTT topic name in the Topic field.
In Optional MQTT settings, specify additional settings for the MQTT integration if needed.
Click Test to check that your integration works.
** For Grafana Alertmanager only.**
A test alert notification should be sent to the MQTT broker.
Click Save contact point.
The integration sends data in JSON format by default. You can change that using Message format field in the Optional MQTT settings section. There are two supported formats:
JSON: Sends the alert notification in JSON format.
Text: Sends the rendered alert notification message in plain text format.
MQTT JSON payload
If the JSON message format is selected in Optional MQTT settings, the payload is sent in the following structure.
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"}
Payload fields
Each notification payload contains the following fields.