Вы можете настроить уведомление пользователей о состоянии виртуальных машин (ВМ) и узлов кластера. Grafana позволяет отправлять уведомления по электронной почте и/или в различные мессенджеры (например, Slack или Telegram).
Статья содержит инструкции по настройке уведомлений для платформы VMmanager. В текущей версии платформа использует Grafana v6.7.4.
Инструкции для актуальной версии Grafana см. в официальной документации.
Каналы уведомлений
Telegram
Для настройки канала уведомлений в Telegram:
- Создайте Telegram-бота по инструкции из статьи Отправка уведомлений в Telegram. Сохраните значение токена для бота.
- Перейдите в Alerting → Notification channels.
- Нажмите Add channel (New Channel).
- В поле Name укажите название уведомления. Например, Telegram notify.
- В поле Type выберите тип уведомлений — Telegram.
- Включите опцию Default (send on all alerts), чтобы использовать этот метод для всех уведомлений.
-
Включите опцию Include image, чтобы добавить в уведомление изображение дашборда.
Не рекомендуем использовать эту опцию, так как создание изображения создаёт большую нагрузку на докер-контейнер с Grafana. - Включите опцию Disable Resolve Message, чтобы не получать сообщения об устранении проблемы, по которой отправлялись уведомления.
-
Включите опцию Send Reminders, чтобы получать напоминания о созданном уведомлении и укажите периодичность отправки в параметре Send reminder every. Например, 15m — для отправки каждые 15 минут.
Напоминания не могут отправляться чаще, чем сами уведомления. - Укажите настройки Telegram:
- BOT API Token — токен Telegram-бота.
-
Chat ID — id чата в Telegram.
Чтобы узнать id чата, добавьте в чат бота @getmyid_bot.
- Нажмите Send Test для отправки тестового сообщения.
- Нажмите Save чтобы сохранить настройки.
Пример настроек
Slack
Для настройки канала уведомлений в Slack:
- Перейдите в Alerting → Notification channels.
- Нажмите Add channel (New Channel).
- В поле Name укажите название уведомления. Например, Slack notify.
- В поле Type выберите тип уведомлений — Slack.
- Включите опцию Default (send on all alerts), чтобы использовать этот метод для всех уведомлений.
-
Включите опцию Include image, чтобы добавить в уведомление изображение дашборда.
Не рекомендуем использовать эту опцию, так как создание изображения создаёт большую нагрузку на докер-контейнер с Grafana. - Включите опцию Disable Resolve Message, чтобы не получать сообщения об устранении проблемы, по которой отправлялись уведомления.
-
Включите опцию Send Reminders, чтобы получать напоминания о созданном уведомлении и укажите периодичность отправки в параметре Send reminder every. Например, 15m — для отправки каждые 15 минут.
Напоминания не могут отправляться чаще, чем сами уведомления. - Укажите настройки Slack:
- Url — URL-адрес Slack для входящих вебхуков (webhooks). Подробнее см. в официальной документации Slack.
- Recipient — получатель сообщения. Введите название канала в формате #channel_name или имя пользователя в формате @username.
- Username — имя отправителя уведомления.
- Icon emoji — емодзи для иконки отправителя уведомления. Например, :exclamation:.
- Icon URL — URL с изображением для иконки отправителя уведомления.
- Mention Users — id пользователей Slack, на которых нужно сослаться в сообщении. Вы можете указать имена пользователей через запятую.
- Mention Groups — группы Slack, на которые нужно сослаться в сообщении.
- Mention Channel — кому из участников канала отправить уведомление:
- Disabled — не отправлять уведомление;
- Every active channel member — всем активным участникам;
- Every channel member — всем участникам.
- Token — токен бота для использования API-функции Slack file.upload. Для работы функции укажите получателя сообщения в поле Recepient.
- Нажмите Send Test для отправки тестового сообщения.
- Нажмите Save чтобы сохранить настройки.
Пример настроек
Параметры уведомлений
Чтобы настроить правила для отправки уведомлений:
- Нажмите на заголовок графика → Edit.
- Нажмите → Create alert.
- Укажите параметры уведомления:
- Name — произвольное имя уведомления.
- Evaluate every — частота уведомления. Например, 5m для уведомления каждые пять минут или 1h для уведомления каждый час.
- For — время, которое Grafana выжидает после наступления порогового значения параметра. Например, 15m для ожидания 15 минут.
-
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. - If no data or all values are null — статус уведомления в случае, если данные отсутствуют или имеют значения null. Возможные значения: Alerting, No Data, Keep Last State, OK;
- If execution error or timeout — статус уведомления в случае, если во время его выполнения возникла ошибка. Возможные значения: Alerting, Keep Last State.
- Выберите каналы уведомления в поле Send to.
- Введите текст уведомления в поле Message.
- Cохраните настройки: в верхнем правом меню нажмите значок → введите комментарий → кнопка Save.