- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
3.4 KiB
3.4 KiB
Настройка Grafana
Создание Webhook Notification Channel
-
Открытие настроек:
- Откройте Grafana и перейдите в раздел "Alerting" → "Notification channels"
- Нажмите "New channel"
-
Настройка 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: опционально
- Сохраните настройки
-
Настройка Alert Rule:
- Создайте или откройте существующее правило алерта
- В разделе "Notifications" выберите созданный канал "Message Gateway"
- Сохраните правило
-
Тестирование:
- Создайте тестовый алерт в 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 отправляет данные в следующем формате:
{
"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 игнорируется)