Интеграция с Grafana — оповещения об инфраструктуре

Отправляйте оповещения Grafana в Echobell через вебхук и получайте мгновенные push-уведомления или звонки. Пошаговая настройка с шаблонами оповещений.


Grafana — популярное решение с открытым исходным кодом для аналитики и мониторинга; тысячи организаций используют его для визуализации метрик, логов и трейсов. Подключив Grafana к Echobell, вы будете получать мгновенные уведомления, когда метрики запускают оповещения — при высокой загрузке CPU, нехватке памяти, отказавших сервисах или любом другом отслеживаемом условии.

Это подробное руководство проведёт вас через настройку оповещений Grafana в Echobell — от базовой конфигурации до продвинутых стратегий управления оповещениями.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Аккаунт Echobell хотя бы с одним созданным каналом (начните здесь)
  • Доступ к экземпляру Grafana (рекомендуется версия 8.0 или новее, для наилучшей совместимости — 9.0+)
  • Права на настройку уведомлений об оповещениях в Grafana (обычно нужна роль Admin или Editor)
  • Базовое понимание дашбордов и метрик Grafana
  • Знание вашей инфраструктуры мониторинга и требований к оповещениям

Обзор настройки

Интеграция состоит из пяти основных шагов и обычно занимает 10–15 минут:

  1. Создайте канал Echobell — отдельный канал для оповещений Grafana
  2. Настройте шаблоны уведомлений — задайте, как оповещения будут выглядеть на устройстве
  3. Получите URL вебхука — уникальный адрес вебхука для вашего канала
  4. Настройте точку контакта в Grafana — чтобы Grafana отправляла оповещения в Echobell
  5. Создайте правила оповещений в Grafana — определите, какие условия запускают уведомления

После настройки оповещения идут из Grafana на ваше устройство автоматически и в реальном времени.

Пошаговое руководство

Создайте канал Echobell

  1. Откройте приложение Echobell
  2. Создайте новый канал (например, «Оповещения Grafana»)
  3. Выберите заметный цвет, чтобы канал было легко узнавать

Настройте шаблоны уведомлений

Настройте шаблоны, которые будут правильно форматировать оповещения Grafana:

Шаблон заголовка:

{{alertName}} - {{status}}

Шаблон тела:

🔔 Alert: {{alertName}}
📊 Metric: {{metric}}
📈 Value: {{value}}
⏰ Time: {{time}}
ℹ️ Message: {{message}}

Эти шаблоны рассчитаны на структуру payload оповещений Grafana.

Получите URL вебхука

  1. В настройках канала найдите раздел Триггеры
  2. Скопируйте предложенный URL вебхука
  3. Храните этот URL в секрете — он будет использоваться в конфигурации Grafana

Настройте точку контакта Grafana

  1. В Grafana откройте AlertingContact points
  2. Нажмите New contact point
  3. Задайте следующие параметры:
    • Name: «Echobell»
    • Тип: «Webhook»
    • URL: URL вашего вебхука Echobell
    • HTTP-метод: POST
    • Тип содержимого: application/json
  4. Настройте шаблон сообщения:
{
  "alertName": "{{ .alertName }}",
  "status": "{{ .status }}",
  "metric": "{{ .metric }}",
  "value": "{{ .value }}",
  "time": "{{ .time }}",
  "message": "{{ .message }}",
  "externalLink": "{{ .dashboardURL }}"
}

Создайте правила оповещений

  1. Перейдите в AlertingAlert rules
  2. Создайте новое правило оповещения или откройте существующее
  3. В настройках правила:
    • Задайте подходящие условия для ваших метрик
    • Выберите точку контакта «Echobell»
    • Настройте критерии вычисления оповещения

Проверка интеграции

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

  1. Создайте тестовое правило оповещения с условием, которое сработает быстро
  2. Дождитесь выполнения условия
  3. Проверьте уведомление об оповещении в приложении Echobell
  4. Убедитесь, что все переменные оповещения отображаются корректно
  5. Нажмите на уведомление, чтобы открыть связанный дашборд 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 для точек контакта

Управление жизненным циклом оповещений

Поддерживайте порядок в оповещениях:

  1. Регулярный пересмотр — раз в квартал проверяйте оповещения и удаляйте устаревшие правила
  2. Документируйте оповещения — добавляйте описания, объясняющие, зачем нужно каждое оповещение
  3. Отслеживайте историю — смотрите, какие оповещения срабатывают чаще всего
  4. Подстраивайте пороги — опирайтесь на исторические данные и долю ложных срабатываний
  5. Архивируйте старые оповещения — отключайте, но сохраняйте правила для выводимых из эксплуатации сервисов
  6. Ведите версионирование — используйте 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.

Устранение неполадок

Если оповещения не приходят, пройдите по этим шагам диагностики:

Вебхук не запускает уведомления

  1. Проверьте, что URL вебхука скопирован правильно

    • Откройте канал Echobell → Триггеры → Webhook
    • Скопируйте URL целиком, вместе с https://hook.echobell.one/t/
    • Убедитесь, что при вставке в Grafana не добавились лишние пробелы или символы
  2. Проверьте, что канал активен

    • Откройте приложение Echobell
    • Перейдите в канал с оповещениями Grafana
    • Убедитесь, что он не был случайно удалён или архивирован
  3. Убедитесь, что есть активные подписчики

    • Чтобы уведомления приходили, на канал должен быть подписан хотя бы один человек
    • Проверьте список подписок канала
    • Убедитесь, что ваша собственная подписка активна
  4. Проверьте настройку точки контакта в Grafana

    • Откройте в Grafana Alerting → Contact points
    • Откройте вашу точку контакта Echobell
    • Убедитесь, что URL совпадает с вебхуком канала
    • Проверьте, что HTTP Method установлен в POST
    • Убедитесь, что Content-Type — application/json
  5. Проверьте настройку правила оповещения в Grafana

    • Перейдите в Alerting → Alert rules
    • Откройте правило, которое должно срабатывать
    • Убедитесь, что правило связано с вашей точкой контакта Echobell
    • Проверьте, что notification policy направляет оповещение в нужную точку контакта
  6. Посмотрите историю оповещений в Grafana

    • Откройте Alerting → Alert rules
    • Нажмите на правило → Show history
    • Убедитесь, что оповещение действительно срабатывает (а не висит в состоянии pending)
    • Проверьте, нет ли ошибок вычисления

Оповещения срабатывают, но не доходят

  1. Проверьте вебхук напрямую

    curl -X POST https://hook.echobell.one/t/<channel-token> \
      -H "Content-Type: application/json" \
      -d '{"alertName": "Test", "status": "firing"}'

    Если уведомление от этого запроса приходит, а от Grafana — нет, проблема в конфигурации Grafana.

  2. Проверьте notification policies в Grafana

    • Откройте Alerting → Notification policies
    • Убедитесь, что метки правила совпадают с правилами маршрутизации политики
    • Проверьте тайминги (время ожидания при группировке, интервалы повтора)
  3. Просмотрите логи Grafana

    • Поищите в логах Grafana ошибки доставки вебхука
    • Проверьте HTTP-коды ответа (должен быть 200)
    • Разберитесь с ошибками таймаута и соединения

Уведомления отображаются неправильно

  1. Переменные шаблона не совпадают с payload Grafana

    • Grafana отправляет конкретные имена полей: .alertName, .status и другие
    • Убедитесь, что переменные шаблона соответствуют структуре payload
    • Нажмите кнопку «Test» в Grafana, чтобы увидеть реальный payload
  2. В уведомлениях не хватает информации

    • Некоторые переменные Grafana могут быть пустыми — это зависит от настройки оповещения
    • Добавьте в шаблоны запасные значения: {{alertName || "Unknown Alert"}}
    • Список доступных переменных шаблона смотрите в документации Grafana
  3. Ошибки разбора JSON

    • Проверьте, что шаблон сообщения Grafana — валидный JSON
    • Поищите неэкранированные кавычки и спецсимволы
    • Проверьте структуру payload онлайн-валидатором JSON

Проблемы со временем доставки

  1. Оповещения приходят с задержкой

    • Проверьте сетевое подключение
    • Убедитесь, что Grafana может достучаться до серверов Echobell
    • Посмотрите интервал вычисления в Grafana (он может давать задержку)
    • Проверьте настройки таймингов в notification policy
  2. Дублирующиеся уведомления

    • Проверьте настройки интервала повтора в notification policies
    • Посмотрите, не срабатывает ли несколько правил на одно и то же условие
    • Убедитесь, что для канала настроена только одна точка контакта
  3. Уведомления в тихие часы

    • Режимы Фокусирования в iOS могут влиять на доставку уведомлений
    • Срочные и звонковые уведомления способны обходить некоторые режимы Фокусирования
    • Проверьте настройки уведомлений на устройстве

Проблема осталась?

Если вы попробовали всё перечисленное, а проблема не решилась:

  1. Включите отладочное логирование Grafana

    • Добавьте в grafana.ini секцию [log] со значением level = debug
    • Посмотрите в логах попытки доставки вебхука и ответы на них
  2. Используйте встроенную проверку Grafana

    • В настройках точки контакта нажмите «Test», чтобы отправить пробное оповещение
    • Так проще понять, где проблема: в правилах или в доставке
  3. Попробуйте другое правило оповещения

    • Создайте простое тестовое правило с условием, которое точно сработает
    • Если тест проходит, а боевые правила — нет, проблема в настройке правил
  4. Обратитесь в поддержку

    • Загляните в центр поддержки
    • Напишите на echobell@weelone.com и укажите:
      • версию Grafana
      • пример payload оповещения (уберите чувствительные данные)
      • URL вебхука (токен скройте)
      • что вы уже пробовали
      • ожидаемое и фактическое поведение

Связанная документация и ресурсы

Документация Echobell

Ресурсы Grafana

Похожие интеграции

Статьи в блоге

Дальнейшие шаги

Теперь, когда Grafana подключена к Echobell:

  1. Отточите оповещения — подстройте пороги под реальные показатели
  2. Заведите дополнительные каналы — по отдельному каналу на каждый уровень серьёзности
  3. Изучите другие интеграции — подключите к Echobell больше инструментов (все интеграции)
  4. Подключите команду — добавьте коллег в каналы с оповещениями
  5. Опишите свою настройку — составьте runbook для реакции на конкретные оповещения
  6. Оценивайте эффективность оповещений — следите за долей ложных срабатываний и временем реакции

Готовы подключить больше систем? Загляните в полное руководство по интеграциям — там собраны другие популярные инструменты и платформы мониторинга.