---
title: "Интеграция с Grafana — оповещения об инфраструктуре"
sidebarTitle: Grafana
description: Отправляйте оповещения Grafana в Echobell через вебхук и получайте мгновенные push-уведомления или звонки. Пошаговая настройка с шаблонами оповещений.
---

import { Step, Steps } from "fumadocs-ui/components/steps";

# Интеграция с Grafana

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

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

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

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

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

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

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

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

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

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

<Steps>
<Step>
### Создайте канал Echobell

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

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

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

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

```
{{alertName}} - {{status}}
```

**Шаблон тела:**

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

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

</Step>
<Step>
### Получите URL вебхука

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

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

1. В Grafana откройте **Alerting** → **Contact points**
2. Нажмите **New contact point**
3. Задайте следующие параметры:
   - Name: «Echobell»
   - Тип: «Webhook»
   - URL: URL вашего вебхука Echobell
   - HTTP-метод: POST
   - Тип содержимого: application/json
4. Настройте шаблон сообщения:

```json
{
  "alertName": "{{ .alertName }}",
  "status": "{{ .status }}",
  "metric": "{{ .metric }}",
  "value": "{{ .value }}",
  "time": "{{ .time }}",
  "message": "{{ .message }}",
  "externalLink": "{{ .dashboardURL }}"
}
```

</Step>
<Step>
### Создайте правила оповещений

1. Перейдите в **Alerting** → **Alert rules**
2. Создайте новое правило оповещения или откройте существующее
3. В настройках правила:
   - Задайте подходящие условия для ваших метрик
   - Выберите точку контакта «Echobell»
   - Настройте критерии вычисления оповещения
</Step>
</Steps>

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

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

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

### Настройте уровни приоритета

Используйте [типы уведомлений](/docs/notification) 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** — направляйте разные уровни серьёзности в подходящие каналы
- **Задайте интервалы ожидания и повтора** — чтобы не приходили дубли
- **Группируйте похожие оповещения** — агрегация снижает объём уведомлений
- **Учитывайте время суток** — используйте [условия](/docs/conditions) для фильтрации по рабочим часам

## Примеры из практики

### Оповещение о высокой загрузке 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](/blog/grafana-call-notification).

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

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

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

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. **Проверьте вебхук напрямую**
   ```bash
   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. **Обратитесь в поддержку**
   - Загляните в [центр поддержки](/docs/support)
   - Напишите на echobell@weelone.com и укажите:
     - версию Grafana
     - пример payload оповещения (уберите чувствительные данные)
     - URL вебхука (токен скройте)
     - что вы уже пробовали
     - ожидаемое и фактическое поведение

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

### Документация Echobell
- **[Руководство по интеграции через вебхук](/docs/webhook)** — подробно о работе вебхуков
- **[Система шаблонов](/docs/template)** — синтаксис шаблонов уведомлений
- **[Условия](/docs/conditions)** — фильтрация оповещений по критериям
- **[Типы уведомлений](/docs/notification)** — приоритеты оповещений
- **[Начало работы](/docs)** — основы Echobell и первая настройка

### Ресурсы Grafana
- **[Документация Grafana Alerting](https://grafana.com/docs/grafana/latest/alerting/)** — официальное руководство по оповещениям Grafana
- **[Contact points](https://grafana.com/docs/grafana/latest/alerting/fundamentals/contact-points/)** — настройка точек контакта в Grafana
- **[Notification policies](https://grafana.com/docs/grafana/latest/alerting/fundamentals/notification-policies/)** — маршрутизация и группировка оповещений
- **[Alert rules](https://grafana.com/docs/grafana/latest/alerting/fundamentals/alert-rules/)** — создание правил оповещений и работа с ними

### Похожие интеграции
- **[Интеграция с Prometheus](/docs/developer/prometheus)** — оповещения напрямую из Prometheus
- **[Uptime Kuma](/docs/developer/uptime-kuma)** — мониторинг доступности сайтов
- **[GitHub Actions](/docs/developer/github)** — оповещения о сбоях в CI/CD
- **[Home Assistant](/docs/developer/home-assistant)** — уведомления из умного дома

### Статьи в блоге
- **[Звонковые уведомления для оповещений Grafana](/blog/grafana-call-notification)** — продвинутые стратегии интеграции с Grafana
- **[Не пропускайте сбои GitHub Actions](/blog/github-actions-notifications)** — лучшие практики оповещений в CI/CD
- **[Уведомления по временным окнам через условия UTC](/blog/time-window-notifications-using-utc-conditions)** — фильтрация по рабочим часам

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

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

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

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