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

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

ISPSystem

Вы можете настроить уведомление пользователей о состоянии виртуальных машин (ВМ) и узлов кластера. 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.
Спасибо за ваш отзыв!
Была ли полезна статья?
Уточните, почему:

статья не соответствует названию

статью сложно понять

в статье нет ответа на мой вопрос

рекомендации из статьи не помогли

другая причина

Расскажите, что вам не понравилось в статье: