Интеграция с Grafana — оповещения об инфраструктуре
Отправляйте оповещения Grafana в Echobell через вебхук и получайте мгновенные push-уведомления или звонки. Пошаговая настройка с шаблонами оповещений.
Grafana — популярное решение с открытым исходным кодом для аналитики и мониторинга; тысячи организаций используют его для визуализации метрик, логов и трейсов. Подключив Grafana к Echobell, вы будете получать мгновенные уведомления, когда метрики запускают оповещения — при высокой загрузке CPU, нехватке памяти, отказавших сервисах или любом другом отслеживаемом условии.
Это подробное руководство проведёт вас через настройку оповещений Grafana в Echobell — от базовой конфигурации до продвинутых стратегий управления оповещениями.
Предварительные требования
Перед началом убедитесь, что у вас есть:
- Аккаунт Echobell хотя бы с одним созданным каналом (начните здесь)
- Доступ к экземпляру Grafana (рекомендуется версия 8.0 или новее, для наилучшей совместимости — 9.0+)
- Права на настройку уведомлений об оповещениях в Grafana (обычно нужна роль Admin или Editor)
- Базовое понимание дашбордов и метрик Grafana
- Знание вашей инфраструктуры мониторинга и требований к оповещениям
Обзор настройки
Интеграция состоит из пяти основных шагов и обычно занимает 10–15 минут:
- Создайте канал Echobell — отдельный канал для оповещений Grafana
- Настройте шаблоны уведомлений — задайте, как оповещения будут выглядеть на устройстве
- Получите URL вебхука — уникальный адрес вебхука для вашего канала
- Настройте точку контакта в Grafana — чтобы Grafana отправляла оповещения в Echobell
- Создайте правила оповещений в Grafana — определите, какие условия запускают уведомления
После настройки оповещения идут из Grafana на ваше устройство автоматически и в реальном времени.
Пошаговое руководство
Создайте канал Echobell
- Откройте приложение Echobell
- Создайте новый канал (например, «Оповещения Grafana»)
- Выберите заметный цвет, чтобы канал было легко узнавать
Настройте шаблоны уведомлений
Настройте шаблоны, которые будут правильно форматировать оповещения Grafana:
Шаблон заголовка:
{{alertName}} - {{status}}
Шаблон тела:
🔔 Alert: {{alertName}}
📊 Metric: {{metric}}
📈 Value: {{value}}
⏰ Time: {{time}}
ℹ️ Message: {{message}}
Эти шаблоны рассчитаны на структуру payload оповещений Grafana.
Получите URL вебхука
- В настройках канала найдите раздел Триггеры
- Скопируйте предложенный URL вебхука
- Храните этот URL в секрете — он будет использоваться в конфигурации Grafana
Настройте точку контакта Grafana
- В Grafana откройте Alerting → Contact points
- Нажмите New contact point
- Задайте следующие параметры:
- Name: «Echobell»
- Тип: «Webhook»
- URL: URL вашего вебхука Echobell
- HTTP-метод: POST
- Тип содержимого: application/json
- Настройте шаблон сообщения:
{
"alertName": "{{ .alertName }}",
"status": "{{ .status }}",
"metric": "{{ .metric }}",
"value": "{{ .value }}",
"time": "{{ .time }}",
"message": "{{ .message }}",
"externalLink": "{{ .dashboardURL }}"
}Создайте правила оповещений
- Перейдите в Alerting → Alert rules
- Создайте новое правило оповещения или откройте существующее
- В настройках правила:
- Задайте подходящие условия для ваших метрик
- Выберите точку контакта «Echobell»
- Настройте критерии вычисления оповещения
Проверка интеграции
Чтобы проверить настройку:
- Создайте тестовое правило оповещения с условием, которое сработает быстро
- Дождитесь выполнения условия
- Проверьте уведомление об оповещении в приложении Echobell
- Убедитесь, что все переменные оповещения отображаются корректно
- Нажмите на уведомление, чтобы открыть связанный дашборд Grafana
Типы уведомлений об оповещениях
Подписываясь на канал с оповещениями Grafana, настройте следующие типы уведомлений:
- Срочное — для неотложных критических системных оповещений и экстренных уведомлений
- Звонок — для серьёзных сбоев, критических превышений порогов и экстренных оповещений
- Обычное — для стандартных информационных и рутинных уведомлений
Лучшие практики управления оповещениями
Организация шаблонов оповещений
Держите шаблоны оповещений понятными и единообразными во всех каналах:
Title: {{alertName}} - {{status}}
Body:
Server: {{instance}}
Metric: {{metric}}
Current: {{value}}
Threshold: {{threshold}}
- Используйте структурированное форматирование — раскладывайте информацию по понятным меткам
- Включайте критически важные данные — имя метрики, значение, порог, затронутую систему
- Не злоупотребляйте эмодзи — 🚨 для критических, ⚠️ для предупреждений, ✅ для решённых
- Держите заголовки короткими — стремитесь к 5–8 словам, которые сразу передают суть проблемы
- Тестируйте шаблоны — отправьте тестовые оповещения и проверьте форматирование до внедрения
Настройка критических оповещений
Задавайте адекватные пороги, чтобы не возникала усталость от уведомлений:
- Не перебарщивайте с оповещениями — ставьте пороги на уровне, требующем действий, а не на уровне «просто любопытно»
- Используйте гистерезис — разные пороги для срабатывания и для восстановления
- Группируйте связанные оповещения — объединяйте близкие условия в одно правило
- Подбирайте интервалы вычисления — баланс между скоростью реакции и уровнем шума
- Учитывайте временные окна — проверяйте условие несколько раз, прежде чем отправлять оповещение
Пример стратегии порогов:
# Bad: Alert at 50% CPU (too sensitive)
cpu_usage > 50
# Better: Alert at 80% for 5 minutes
avg_over_time(cpu_usage[5m]) > 80
# Best: Progressive alerts
# Warning at 70% sustained, Critical at 90%
Давайте оповещениям осмысленные имена
Название оповещения должно сразу сообщать:
- Что отслеживается (CPU, память, диск)
- Где это происходит (production, staging, конкретный инстанс)
- Почему это важно (сервис для пользователей, критичная база данных)
Хорошие примеры:
- «Продакшен-база данных — высокая загрузка пула соединений»
- «API Gateway — деградация времени ответа»
- «Worker-нода 3 — критически мало места на диске»
Избегайте:
- «Оповещение 1», «Тестовое оповещение», «Высокая загрузка CPU»
Добавляйте достаточный контекст
Текст оповещения должен отвечать на вопросы:
- Что случилось? Конкретное сработавшее условие
- Где? Какая система, сервис или инстанс
- Насколько всё плохо? Текущее значение против порога
- Когда? Время оповещения
- Что дальше? Ссылка на нужный дашборд или runbook
Настройте уровни приоритета
Используйте типы уведомлений Echobell осознанно:
- Обычное: информационные оповещения, уведомления о восстановлении, несрочные предупреждения
- Срочное: важные оповещения, на которые нужно отреагировать в течение нескольких часов
- Звонок: критические проблемы на продакшене, требующие немедленной реакции
Сопоставьте уровни серьёзности Grafana с типами уведомлений:
Critical + Production → Calling
High + Production → Time Sensitive
Medium → Time Sensitive
Low → Normal
Info/Resolved → Normal
Безопасность оповещений
Защитите свою инфраструктуру мониторинга:
- Держите URL вебхуков в секрете — они дают возможность отправлять уведомления без аутентификации
- Используйте переменные окружения — не зашивайте URL в файлы provisioning Grafana
- Периодически меняйте вебхуки — особенно когда из команды уходят люди
- Следите за доставкой вебхуков — отслеживайте неудачные доставки и разбирайте аномалии
- Проверяйте конфигурации оповещений — регулярно смотрите, у кого есть доступ к их изменению
- Проверяйте источники оповещений — используйте встроенную аутентификацию Grafana для точек контакта
Управление жизненным циклом оповещений
Поддерживайте порядок в оповещениях:
- Регулярный пересмотр — раз в квартал проверяйте оповещения и удаляйте устаревшие правила
- Документируйте оповещения — добавляйте описания, объясняющие, зачем нужно каждое оповещение
- Отслеживайте историю — смотрите, какие оповещения срабатывают чаще всего
- Подстраивайте пороги — опирайтесь на исторические данные и долю ложных срабатываний
- Архивируйте старые оповещения — отключайте, но сохраняйте правила для выводимых из эксплуатации сервисов
- Ведите версионирование — используйте provisioning Grafana, чтобы отслеживать изменения оповещений
Что учесть для производительности
- Избегайте штормов оповещений — настройте группировку и тайминги
- Используйте notification policies — направляйте разные уровни серьёзности в подходящие каналы
- Задайте интервалы ожидания и повтора — чтобы не приходили дубли
- Группируйте похожие оповещения — агрегация снижает объём уведомлений
- Учитывайте время суток — используйте условия для фильтрации по рабочим часам
Примеры из практики
Оповещение о высокой загрузке CPU
Title: {{instance}} CPU Critical
Body: CPU usage: {{cpu_percent}}%
Duration: {{duration}}
Time: {{time}}
Dashboard: {{dashboard_url}}
Нехватка памяти
Title: Memory Warning - {{hostname}}
Body: Available: {{available_mb}}MB ({{percent_free}}%)
Threshold: {{threshold_mb}}MB
Action: Check memory-intensive processes
Сервис недоступен
Title: 🚨 {{service_name}} Unreachable
Body: Health check failed
Last success: {{last_successful_check}}
Impact: {{affected_users}} users affected
Runbook: {{runbook_url}}
Типичные сценарии
Мониторинг инфраструктуры
- Пороги использования CPU, памяти и диска
- Пропускная способность сети и потери пакетов
- Доступность сервисов и health-проверки
- Состояние контейнеров и подов
Производительность приложений
- Деградация времени ответа
- Рост доли ошибок
- Исчерпание пула соединений с базой данных
- Глубина очереди и отставание обработки
Бизнес-метрики
- Аномалии в объёме транзакций
- Падение выручки в минуту
- Изменения числа активных пользователей
- Приближение к лимитам API
Мониторинг безопасности
- Неудачные попытки аутентификации
- Необычные шаблоны доступа
- Предупреждения об истечении сертификатов
- Нарушения правил файрвола
Больше стратегий интеграции — в статье о звонковых уведомлениях Grafana.
Устранение неполадок
Если оповещения не приходят, пройдите по этим шагам диагностики:
Вебхук не запускает уведомления
-
Проверьте, что URL вебхука скопирован правильно
- Откройте канал Echobell → Триггеры → Webhook
- Скопируйте URL целиком, вместе с
https://hook.echobell.one/t/ - Убедитесь, что при вставке в Grafana не добавились лишние пробелы или символы
-
Проверьте, что канал активен
- Откройте приложение Echobell
- Перейдите в канал с оповещениями Grafana
- Убедитесь, что он не был случайно удалён или архивирован
-
Убедитесь, что есть активные подписчики
- Чтобы уведомления приходили, на канал должен быть подписан хотя бы один человек
- Проверьте список подписок канала
- Убедитесь, что ваша собственная подписка активна
-
Проверьте настройку точки контакта в Grafana
- Откройте в Grafana Alerting → Contact points
- Откройте вашу точку контакта Echobell
- Убедитесь, что URL совпадает с вебхуком канала
- Проверьте, что HTTP Method установлен в POST
- Убедитесь, что Content-Type — application/json
-
Проверьте настройку правила оповещения в Grafana
- Перейдите в Alerting → Alert rules
- Откройте правило, которое должно срабатывать
- Убедитесь, что правило связано с вашей точкой контакта Echobell
- Проверьте, что notification policy направляет оповещение в нужную точку контакта
-
Посмотрите историю оповещений в Grafana
- Откройте Alerting → Alert rules
- Нажмите на правило → Show history
- Убедитесь, что оповещение действительно срабатывает (а не висит в состоянии pending)
- Проверьте, нет ли ошибок вычисления
Оповещения срабатывают, но не доходят
-
Проверьте вебхук напрямую
curl -X POST https://hook.echobell.one/t/<channel-token> \ -H "Content-Type: application/json" \ -d '{"alertName": "Test", "status": "firing"}'Если уведомление от этого запроса приходит, а от Grafana — нет, проблема в конфигурации Grafana.
-
Проверьте notification policies в Grafana
- Откройте Alerting → Notification policies
- Убедитесь, что метки правила совпадают с правилами маршрутизации политики
- Проверьте тайминги (время ожидания при группировке, интервалы повтора)
-
Просмотрите логи Grafana
- Поищите в логах Grafana ошибки доставки вебхука
- Проверьте HTTP-коды ответа (должен быть 200)
- Разберитесь с ошибками таймаута и соединения
Уведомления отображаются неправильно
-
Переменные шаблона не совпадают с payload Grafana
- Grafana отправляет конкретные имена полей:
.alertName,.statusи другие - Убедитесь, что переменные шаблона соответствуют структуре payload
- Нажмите кнопку «Test» в Grafana, чтобы увидеть реальный payload
- Grafana отправляет конкретные имена полей:
-
В уведомлениях не хватает информации
- Некоторые переменные Grafana могут быть пустыми — это зависит от настройки оповещения
- Добавьте в шаблоны запасные значения:
{{alertName || "Unknown Alert"}} - Список доступных переменных шаблона смотрите в документации Grafana
-
Ошибки разбора JSON
- Проверьте, что шаблон сообщения Grafana — валидный JSON
- Поищите неэкранированные кавычки и спецсимволы
- Проверьте структуру payload онлайн-валидатором JSON
Проблемы со временем доставки
-
Оповещения приходят с задержкой
- Проверьте сетевое подключение
- Убедитесь, что Grafana может достучаться до серверов Echobell
- Посмотрите интервал вычисления в Grafana (он может давать задержку)
- Проверьте настройки таймингов в notification policy
-
Дублирующиеся уведомления
- Проверьте настройки интервала повтора в notification policies
- Посмотрите, не срабатывает ли несколько правил на одно и то же условие
- Убедитесь, что для канала настроена только одна точка контакта
-
Уведомления в тихие часы
- Режимы Фокусирования в iOS могут влиять на доставку уведомлений
- Срочные и звонковые уведомления способны обходить некоторые режимы Фокусирования
- Проверьте настройки уведомлений на устройстве
Проблема осталась?
Если вы попробовали всё перечисленное, а проблема не решилась:
-
Включите отладочное логирование Grafana
- Добавьте в grafana.ini секцию
[log]со значениемlevel = debug - Посмотрите в логах попытки доставки вебхука и ответы на них
- Добавьте в grafana.ini секцию
-
Используйте встроенную проверку Grafana
- В настройках точки контакта нажмите «Test», чтобы отправить пробное оповещение
- Так проще понять, где проблема: в правилах или в доставке
-
Попробуйте другое правило оповещения
- Создайте простое тестовое правило с условием, которое точно сработает
- Если тест проходит, а боевые правила — нет, проблема в настройке правил
-
Обратитесь в поддержку
- Загляните в центр поддержки
- Напишите на echobell@weelone.com и укажите:
- версию Grafana
- пример payload оповещения (уберите чувствительные данные)
- URL вебхука (токен скройте)
- что вы уже пробовали
- ожидаемое и фактическое поведение
Связанная документация и ресурсы
Документация Echobell
- Руководство по интеграции через вебхук — подробно о работе вебхуков
- Система шаблонов — синтаксис шаблонов уведомлений
- Условия — фильтрация оповещений по критериям
- Типы уведомлений — приоритеты оповещений
- Начало работы — основы Echobell и первая настройка
Ресурсы Grafana
- Документация Grafana Alerting — официальное руководство по оповещениям Grafana
- Contact points — настройка точек контакта в Grafana
- Notification policies — маршрутизация и группировка оповещений
- Alert rules — создание правил оповещений и работа с ними
Похожие интеграции
- Интеграция с Prometheus — оповещения напрямую из Prometheus
- Uptime Kuma — мониторинг доступности сайтов
- GitHub Actions — оповещения о сбоях в CI/CD
- Home Assistant — уведомления из умного дома
Статьи в блоге
- Звонковые уведомления для оповещений Grafana — продвинутые стратегии интеграции с Grafana
- Не пропускайте сбои GitHub Actions — лучшие практики оповещений в CI/CD
- Уведомления по временным окнам через условия UTC — фильтрация по рабочим часам
Дальнейшие шаги
Теперь, когда Grafana подключена к Echobell:
- Отточите оповещения — подстройте пороги под реальные показатели
- Заведите дополнительные каналы — по отдельному каналу на каждый уровень серьёзности
- Изучите другие интеграции — подключите к Echobell больше инструментов (все интеграции)
- Подключите команду — добавьте коллег в каналы с оповещениями
- Опишите свою настройку — составьте runbook для реакции на конкретные оповещения
- Оценивайте эффективность оповещений — следите за долей ложных срабатываний и временем реакции
Готовы подключить больше систем? Загляните в полное руководство по интеграциям — там собраны другие популярные инструменты и платформы мониторинга.