Automatyzacja analizy alertów w DevOps z pomocą AI i protokołu MCP
Specjaliści DevOps często spędzają godziny na ręcznym rozkładaniu alertów z Slacka, Grafany i Alertmanagera, szczególnie w złożonej infrastrukturze z Kubernetesem, VictoriaMetrics, Loki i wieloma chmurami. Ręczna analiza wymaga trzymania w głowie szczegółów 10+ środowisk, baz danych i stosu monitoringu. Rozwiązanie — agent PoC oparty na n8n, zintegrowany z AI poprzez serwery MCP (Model Control Protocol), dostarczający pełny kontekst alertu, gotowe komendy i rekomendacje.
Agent otrzymuje dostęp read-only do infrastruktury: vmetrics do zapytań PromQL, loki do logów, k8s-mcp do zasobów Kubernetes, yandex-cloud-toolkit, argocd-mcp i alertmanager-mcp. Dzięki temu może analizować metryki, logi, stany podów i wyciszenia bez ryzyka zmian.
Realizacja PoC na n8n z integracjami MCP
Do prototypu wybrano n8n jako platformę low-code do workflowów. Uruchomiono serwery MCP: alertmanager-mcp, vmetrics-mcp, yandex-tool-kit, k8s-mcp. Workflow jest generowany przez AI, z uwzględnieniem specyfiki środowisk (Yandex Cloud, AWS, DigitalOcean).
Pierwsze testy z Gemini ujawniły problemy: błędne podpisy, wielokrotne wywołania MCP. Przejście na Claude z trybem thinking rozwiązało kwestie halucynacji i pętli. Ostateczny prompt określa środowisko, datę, narzędzia i ścisłą sekwencję działań.
Kluczowe elementy promptu:
- Aktualne środowisko z cloud_id, folder_id, etykietą klastra.
- Narzędzia: vmetrics (zapytania instant/range z -30m..now), loki (-30m/-1h), k8s_mcp (kontekst z tabeli), yandex-cloud-toolkit (tylko Compute/VPC/IAM/YDB/S3).
- Alertmanager: get_silences, post_silence (JSON z matcherami, daty ISO), delete_silence.
Standardowy protokół badania alertów
Agent stosuje typowy plan:
- vmetrics — metryki (restarty, pamięć, CPU, wolne serwery).
- Tabela danych — kubeconfig_context dla K8s.
- k8s_mcp — pods_log (previous=true) lub pods_get.
- argocd_mcp — get_application po etykietach.
- loki — tylko jeśli brak przyczyny w logach podów.
Ograniczenia wywołań:
- Nie więcej niż 2 powtórne wywołania tego samego narzędzia.
- Pusty wynik 2 razy — przerwać.
- Błąd 422 (zbyt wiele punktów) — przełączyć na zapytanie instant.
- Kryteria stopu: OOMKilled/Killed/Error w logach, restarty >0 z powodem, 5+ wywołań.
Etykiety z alertu (labelsRaw) używane dokładnie: project/cluster tylko jeśli obecne, bez wymyślania.
Obsługa komend i wyciszeń
Komendy @bot po polsku/angielsku:
- "silence 2h" / "wycisz na 4 godziny" — post_silence (domyślnie 2h, matcher po alertname).
- "unsilence" / "odwycisz" — delete_silences po alertname.
- "reanalyze" — pełna analiza.
Kolejność dla wyciszenia:
- get_silences() — sprawdzić istniejące.
- Jeśli są — podać ID/endsAt.
- Brak — post_silence (startsAt=now, endsAt=+duration, ISO Z).
Format odpowiedzi w Slack mrkdwn:
- Severity: 🔴/🟡/🟢 (po etykiecie, nie obniżać).
- _Diagnoza:_ przyczyna.
- _Co znaleziono:_ liczby (restarty | exitCode | limit | log).
- _Zrób:_ numerowana lista kroków.
Co ważne
- Protokół MCP zapewnia bezpieczny dostęp read-only AI do infrastruktury bez niestandardowych API.
- Tryb thinking w Claude zapobiega pętlom i halucynacjom przy pracy z narzędziami.
- Ścisłe kryteria stopu minimalizują wywołania, skupiając się na root cause (OOM, CrashLoopBackOff).
- Integracja z n8n pozwala generować workflowy AI, przyspieszając rozwój.
- Obsługa wielu chmur i środowisk K8s poprzez mapowanie kontekstu.
— Editorial Team
Brak komentarzy.