Настройка уведомлений MQTT

Используйте интеграцию MQTT в точках контакта, чтобы отправлять уведомления об оповещениях в ваш брокер MQTT.

Настройка MQTT для точки контакта

Чтобы создать точку контакта с интеграцией MQTT, выполните следующие шаги.

  1. Перейдите в Alerts & IRM -> Alerting -> Notification configuration, затем выберите вкладку Contact points.
  2. Нажмите + Add contact point.
  3. Введите имя точки контакта.
  4. В списке Integration выберите MQTT.
  5. Введите URL вашего брокера в поле Broker URL. Поддерживаются схемы tcp, ssl, mqtt, mqtts, ws, wss. Например: tcp://127.0.0.1:1883.
  6. Введите имя топика MQTT в поле Topic.
  7. (Необязательно) Настройте дополнительные настройки.
  8. Нажмите Save contact point.

Подробнее о точках контакта, включая их тестирование и включение уведомлений, см. в разделе Настройка точек контакта.

Обязательные настройки

Опция Описание
Broker URL URL брокера MQTT. Это поле защищено от изменения в Grafana Cloud.
Topic Топик, в который будет отправлено сообщение.

Необязательные настройки

Опция Описание
Message format Если задано json (по умолчанию), уведомительное сообщение использует полезную нагрузку JSON по умолчанию.
Если задано text, уведомительное сообщение полностью настраиваемо.
Message Зависит от опции Message format.
В формате json определяет только поле message полезной нагрузки JSON по умолчанию.
В формате text определяет всю пользовательскую полезную нагрузку.
Это поле поддерживает шаблоны уведомлений.
Client ID Идентификатор клиента, используемый при подключении к брокеру MQTT. Если пусто, используется случайный идентификатор клиента.
Username Имя пользователя, используемое при подключении к брокеру MQTT.
Password Пароль, используемый при подключении к брокеру MQTT.
QoS Качество обслуживания, используемое при отправке сообщения. Варианты: At most once, At least once и Exactly once.
Retain Если задано true, сообщение будет сохранено брокером.
TLS Параметры конфигурации TLS, включая сертификат CA, клиентский сертификат и клиентский ключ, а также отключение проверки сертификата.
Disable resolved message Включите эту опцию, чтобы предотвратить уведомления при разрешении оповещения.

Полезная нагрузка JSON по умолчанию

Если опция Message format равна 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"
}

Тело

Если опция Message format равна json (значение по умолчанию), полезная нагрузка содержит следующие поля.

Ключ Тип Описание
receiver string Имя точки контакта
status string Текущий статус оповещения, firing или resolved
orgId number ID организации, связанной с полезной нагрузкой
alerts array of alerts Оповещения, которые срабатывают
groupLabels object Метки, используемые для группировки, карта строковых ключей в строковые значения
commonLabels object Метки, общие для всех оповещений, карта строковых ключей в строковые значения
commonAnnotations object Аннотации, общие для всех оповещений, карта строковых ключей в строковые значения
externalURL string Внешний URL экземпляра Grafana, отправляющего этот webhook
version string Версия полезной нагрузки
groupKey string Ключ, используемый для группировки
message string Пользовательское сообщение, настроенное в Message (Optional Settings).
Поддерживает шаблоны уведомлений; вывод форматируется как строка.

Note

При использовании Message format json настраиваемо только поле message полезной нагрузки JSON, и его вывод форматируется как строка.

Чтобы настроить всю полезную нагрузку в текстовом или JSON-формате, используйте формат text и определите пользовательскую полезную нагрузку.

Объект Alert

Объект Alert представляет оповещение, включённое в группу уведомлений, как предоставлено полем alerts.

Warning

[ru] DOCS_SHARED: "docs/grafana/latest/alerting/configure-notifications/manage-contact-points/integrations/configure-mqtt.ru.md" ("/hugo/content/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/integrations/configure-mqtt.ru.md:177:1") shared directory "docs/grafana/latest/shared" not found

Пользовательская полезная нагрузка

Когда вы задаёте опцию Message format как text, вы можете настроить всю полезную нагрузку сообщения MQTT.

В этом режиме опция Message определяет всю полезную нагрузку. Она поддерживает шаблоны уведомлений и может генерировать уведомительные сообщения в виде простого текста, JSON или любого пользовательского формата.

Примеры шаблонов, создающих сообщения в виде простого текста или JSON, см. в разделе примеры шаблонов уведомлений.