Документация VMmanager 6 (администратор)

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

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

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

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


Telegram

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

  1. Перейдите в AlertingNotification channels.

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

    Обратите внимание!

    Не рекомендуем использовать эту опцию, так как создание изображения создаёт большую нагрузку на докер-контейнер с Grafana.

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

    Обратите внимание!

    Напоминания не могут отправляться чаще, чем сами уведомления.

  9. Укажите настройки Telegram:
    1. BOT API Token — токен Telegram-бота.
    2. Chat ID — id чата в Telegram.
  10. Нажмите Send Test для отправки тестового сообщения.
  11. Нажмите 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 — пользователи Slack, на которых нужно сослаться в сообщении. Вы можете указать имена пользователей через запятую. Например, "@peter,@john,@paul".
  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
       Пояснения к формату

      function — функция для расчёта параметра. Возможные значения:

      • avg() — среднее значение;
      • min() — минимальное значение;
      • max() — максимальное значение;
      • sum() — сумма всех значений;
      • count() — количество значений;
      • last() — последнее значение;
      • median() — среднее значение по медиане;
      • diff() — разница между значениями;
      • percent_diff() — разница между значениями в процентах;
      • count_non_null() — количество значений, отличных от null;

      id — идентификатор очереди. Значение по умолчанию для первого графика — A, для второго — B и т.д. Вы можете посмотреть идентификатор в разделе (Queries);

      start_time — время, с которого нужно вести расчёт. Параметр start_time задаётся относительно текущего времени. Например, 15m — за 15 минут до текущего времени;

      end_time — время, до которого нужно вести расчёт. Параметр end_time задаётся относительно текущего времени в формате now-<time>. Например, now-5m — за 5 минут до текущего времени;

      condition — условие. Возможные значения:

      • IS ABOVE — больше;
      • IS BELOW — ниже;
      • IS OUTSIDE RANGE — вне диапазона;
      • IS WITHIN RANGE — в диапазоне;
      • HAS NO VALUE — отсутствуют значения;

      value — значение или диапазон

      Пример условия
      WHEN avg() OF query(A, 15m, now) IS ABOVE 90
       Пояснения к примеру

      Условие сработает, если за последние 15 минут среднее значение данных из очереди А превысило 90.

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

      Пример условия
      WHEN avg() OF query(A, 15m, now) IS ABOVE 90
      AND max() OF query(A, 15m, now) IS ABOVE 95
       Пояснения к примеру

      Условие сработает, если за последние 15 минут среднее значение данных из очереди А превысило 90 и максимальное превысило 95.

      Обратите внимание!

      Дополнительные условия проверяются последовательно в порядке их ввода.

    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.