# Настройка 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 игнорируется)