VMmanager

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

Вы можете настроить уведомление пользователей о состоянии виртуальных машин (ВМ) и узлов кластера. Grafana позволяет отправлять уведомления по электронной почте и/или в различные мессенджеры (например, Slack или Telegram).

Статья содержит инструкции по настройке уведомлений для платформы VMmanager. В текущей версии платформа использует Grafana v6.7.4.

Инструкции для актуальной версии Grafana см. в официальной документации.

Каналы уведомлений

Telegram

Для настройки канала уведомлений в Telegram:

  1. Создайте Telegram-бота по инструкции из статьи Отправка уведомлений в Telegram. Сохраните значение токена для бота.
  2. Перейдите в AlertingNotification channels.

  3. Нажмите Add channel (New Channel).
  4. В поле Name укажите название уведомления. Например, Telegram notify.
  5. В поле Type выберите тип уведомлений — Telegram.
  6. Включите опцию Default (send on all alerts), чтобы использовать этот метод для всех уведомлений.
  7. Включите опцию Include image, чтобы добавить в уведомление изображение дашборда.

    Не рекомендуем использовать эту опцию, так как создание изображения создаёт большую нагрузку на докер-контейнер с Grafana.
  8. Включите опцию Disable Resolve Message, чтобы не получать сообщения об устранении проблемы, по которой отправлялись уведомления.
  9. Включите опцию Send Reminders, чтобы получать напоминания о созданном уведомлении и укажите периодичность отправки в параметре Send reminder every. Например, 15m — для отправки каждые 15 минут.

    Напоминания не могут отправляться чаще, чем сами уведомления.
  10. Укажите настройки Telegram:
    1. BOT API Token — токен Telegram-бота.
    2. Chat ID — id чата в Telegram. 

      Чтобы узнать id чата, добавьте в чат бота @getmyid_bot.
  11. Нажмите Send Test для отправки тестового сообщения.
  12. Нажмите Save чтобы сохранить настройки.

Пример настроек

Slack

Для настройки канала уведомлений в Slack:

  1. Перейдите в AlertingNotification channels.
  2. Нажмите Add channel (New Channel).
  3. В поле Name укажите название уведомления. Например, Slack notify.
  4. В поле Type выберите тип уведомлений — Slack.
  5. Включите опцию Default (send on all alerts), чтобы использовать этот метод для всех уведомлений.
  6. Включите опцию Include image, чтобы добавить в уведомление изображение дашборда.

    Не рекомендуем использовать эту опцию, так как создание изображения создаёт большую нагрузку на докер-контейнер с Grafana.
  7. Включите опцию Disable Resolve Message, чтобы не получать сообщения об устранении проблемы, по которой отправлялись уведомления.
  8. Включите опцию Send Reminders, чтобы получать напоминания о созданном уведомлении и укажите периодичность отправки в параметре Send reminder every. Например, 15m — для отправки каждые 15 минут.

    Напоминания не могут отправляться чаще, чем сами уведомления.
  9. Укажите настройки Slack:
    1. Url — URL-адрес Slack для входящих вебхуков (webhooks). Подробнее см. в официальной документации Slack.
    2. Recipient — получатель сообщения. Введите название канала в формате #channel_name или имя пользователя в формате @username.
    3. Username — имя отправителя уведомления.
    4. Icon emoji — емодзи для иконки отправителя уведомления. Например, :exclamation:.
    5. Icon URL — URL с изображением для иконки отправителя уведомления.
    6. Mention Users — id пользователей Slack, на которых нужно сослаться в сообщении. Вы можете указать имена пользователей через запятую.
    7. Mention Groups — группы Slack, на которые нужно сослаться в сообщении.
    8. Mention Channel — кому из участников канала отправить уведомление:
      • Disabled — не отправлять уведомление;
      • Every active channel member — всем активным участникам;
      • Every channel member — всем участникам.
    9. Token — токен бота для использования API-функции Slack file.upload. Для работы функции укажите получателя сообщения в поле Recepient.
  10. Нажмите Send Test для отправки тестового сообщения.
  11. Нажмите Save чтобы сохранить настройки.

 

Пример настроек

Параметры уведомлений

Чтобы настроить правила для отправки уведомлений:

  1. Нажмите на заголовок графика → Edit.

  2. Нажмите Create alert.
  3. Укажите параметры уведомления:
    1. Name — произвольное имя уведомления.
    2. Evaluate every — частота уведомления. Например, 5m для уведомления каждые пять минут или 1h для уведомления каждый час.
    3. For — время, которое Grafana выжидает после наступления порогового значения параметра. Например, 15m для ожидания 15 минут.
    4. Conditions — условия для уведомления:

      Формат условия
      WHEN function OF query(id, start_time, end_time) condition value
      Пояснения к формату
      Пример условия
      WHEN avg() OF query(A, 15m, now) IS ABOVE 90
      Пояснения к примеру

      Чтобы задать дополнительное условие, нажмите . Чтобы добавить условие через логическое "И" укажите в начале условия операнд AND. Чтобы добавить условие через логическое "ИЛИ" укажите в начале условия операнд OR. Дополнительные условия проверяются последовательно в порядке их ввода.

      Пример условия
      WHEN avg() OF query(A, 15m, now) IS ABOVE 90
      AND max() OF query(A, 15m, now) IS ABOVE 95
      Пояснения к примеру
      Подробнее о формате условий см. в официальной документации Grafana.
    5. If no data or all values are null — статус уведомления в случае, если данные отсутствуют или имеют значения null. Возможные значения: Alerting, No Data, Keep Last State, OK;
    6. If execution error or timeout — статус уведомления в случае, если во время его выполнения возникла ошибка. Возможные значения: Alerting, Keep Last State.
  4. Выберите каналы уведомления в поле Send to.
  5. Введите текст уведомления в поле Message.
  6. Cохраните настройки: в верхнем правом меню нажмите значок → введите комментарий → кнопка Save.