Files
MessageGateway/docs/monitoring/grafana.md
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

92 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Настройка Grafana
## Создание Webhook Notification Channel
1. **Открытие настроек:**
- Откройте Grafana и перейдите в раздел "Alerting" → "Notification channels"
- Нажмите "New channel"
2. **Настройка webhook:**
- Выберите тип "Webhook"
- Заполните форму:
- **Name:** Message Gateway
- **Type:** webhook
- **URL:** `http://your-gateway-url/api/v1/grafana/{group_name}/{thread_id}`
- Где `{group_name}` - имя группы из `config/groups.json` (например, "monitoring")
- Где `{thread_id}` - ID треда (0 для основной группы, поддерживается только для Telegram)
- **HTTP Method:** POST
- **Send on all alerts:** включено
- **Include image:** опционально
- Сохраните настройки
3. **Настройка Alert Rule:**
- Создайте или откройте существующее правило алерта
- В разделе "Notifications" выберите созданный канал "Message Gateway"
- Сохраните правило
4. **Тестирование:**
- Создайте тестовый алерт в Grafana
- Проверьте, что сообщение пришло в Telegram/MAX
**Пример URL для webhook:**
```
http://message-gateway.example.com/api/v1/grafana/monitoring/0
```
## Пример конфигурации
**Notification Channel в Grafana:**
- **Name:** Message Gateway
- **Type:** Webhook
- **URL:** `http://message-gateway.example.com/api/v1/grafana/monitoring/0`
- **HTTP Method:** POST
- **Send on all alerts:** Yes
- **Include image:** No
**Alert Rule:**
- В разделе "Notifications" выберите "Message Gateway"
- Сохраните правило
## Формат данных
Grafana отправляет данные в следующем формате:
```json
{
"title": "[Alerting] High CPU Usage",
"ruleId": 674180201771804383,
"ruleName": "High CPU Usage Alert",
"state": "alerting",
"evalMatches": [
{
"value": 95.5,
"metric": "cpu_usage_percent",
"tags": {"host": "server01", "instance": "production"}
}
],
"orgId": 1,
"dashboardId": 123,
"panelId": 456,
"tags": {"severity": "critical", "environment": "production"},
"ruleUrl": "http://grafana.cism-ms.ru/alerting/list",
"message": "CPU usage is above 90% threshold for more than 5 minutes"
}
```
## Поддерживаемые состояния
- `alerting` - алерт сработал
- `ok` - алерт разрешен
- `paused` - алерт приостановлен
- `pending` - алерт в ожидании
- `no_data` - нет данных
## Примечания
- Не требует авторизации (API ключ не нужен)
- Если Jira включена, будет автоматически создан тикет в Jira (внутренний процесс)
- В сообщении будет добавлена кнопка для перехода к тикету в Jira (если поддерживается мессенджером)
- URL правила алерта будет добавлен в сообщение
- Thread ID поддерживается только для Telegram (для MAX/VK игнорируется)