# Настройка AlertManager ## Создание конфигурации AlertManager 1. **Открытие конфигурации:** - Откройте файл конфигурации AlertManager (обычно `alertmanager.yml`) - Добавьте webhook receiver: ```yaml receivers: - name: 'message-gateway' webhook_configs: - url: 'http://your-gateway-url/api/v1/alertmanager/{k8s_cluster}/{group_name}/{thread_id}' send_resolved: true http_config: bearer_token: 'optional-bearer-token' ``` 2. **Настройка Route:** - В конфигурации AlertManager добавьте route: ```yaml route: group_by: ['alertname', 'cluster', 'service'] group_wait: 10s group_interval: 10s repeat_interval: 12h receiver: 'message-gateway' routes: - match: severity: critical receiver: 'message-gateway' continue: true - match: severity: warning receiver: 'message-gateway' ``` 3. **Применение конфигурации:** - Сохраните файл конфигурации - Перезапустите AlertManager или перезагрузите конфигурацию: ```bash curl -X POST http://alertmanager:9093/-/reload ``` ## Пример конфигурации **Полный пример `alertmanager.yml`:** ```yaml global: resolve_timeout: 5m route: group_by: ['alertname', 'cluster', 'service'] group_wait: 10s group_interval: 10s repeat_interval: 12h receiver: 'message-gateway' routes: - match: severity: critical receiver: 'message-gateway' continue: true - match: severity: warning receiver: 'message-gateway' receivers: - name: 'message-gateway' webhook_configs: - url: 'http://message-gateway.example.com/api/v1/alertmanager/production/monitoring/0' send_resolved: true ``` **Пример URL для webhook:** ``` http://message-gateway.example.com/api/v1/alertmanager/production/monitoring/0 ``` Где: - `production` - имя Kubernetes кластера (используется для формирования URL к Grafana/Prometheus) - `monitoring` - имя группы из `config/groups.json` - `0` - ID треда (0 для основной группы, поддерживается только для Telegram) ## Формат данных AlertManager отправляет данные в следующем формате: ```json { "status": "firing", "externalURL": "http://alertmanager.example.com", "commonLabels": { "alertname": "HighCPUUsage", "severity": "critical", "namespace": "production", "pod": "app-deployment-7d8f9b4c5-abc123", "container": "app-container" }, "commonAnnotations": { "summary": "High CPU usage detected in production namespace", "description": "CPU usage is above 90% for 5 minutes on pod app-deployment-7d8f9b4c5-abc123", "runbook_url": "https://wiki.example.com/runbooks/high-cpu-usage" } } ``` ## Поддерживаемые статусы - `firing` - алерт сработал - `resolved` - алерт разрешен ## Примечания - Не требует авторизации (API ключ не нужен) - Если Jira включена, будет автоматически создан тикет в Jira (внутренний процесс) - В сообщении будет добавлена кнопка для перехода к тикету в Jira (если поддерживается мессенджером) - Алерты могут быть заблокированы стоп-словами (настройка в config/stop_words.txt) - URL к Grafana/Prometheus/AlertManager формируется на основе имени кластера - Thread ID поддерживается только для Telegram (для MAX/VK игнорируется)