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

3.4 KiB
Raw Blame History

Настройка 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 отправляет данные в следующем формате:

{
  "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 игнорируется)