Automatizace analýzy alertů v DevOps pomocí AI a protokolu MCP
Specialisté na DevOps často tráví hodiny rozborem alertů ze Slacku, Grafana a Alertmanageru, zvláště v složité infrastruktuře s Kubernetes, VictoriaMetrics, Loki a více cloudy. Manuální analýza vyžaduje držení v paměti detailů 10+ prostředí, databází a monitorovacího stacku. Řešení je PoC agent na bázi n8n, integrovaný s AI přes MCP servery (Model Control Protocol), který poskytuje plný kontext alertu, připravené příkazy a doporučení.
Agent získává read-only přístup k infrastruktuře: vmetrics pro PromQL dotazy, loki pro logy, k8s-mcp pro Kubernetes zdroje, yandex-cloud-toolkit, argocd-mcp a alertmanager-mcp. To umožňuje analyzovat metriky, logy, stavy podů a silence bez rizika změn.
Implementace PoC na n8n s MCP integracemi
Pro prototyp byl vybrán n8n jako low-code platforma pro workflow. Byly spuštěny MCP servery: alertmanager-mcp, vmetrics-mcp, yandex-tool-kit, k8s-mcp. Workflow generuje AI s ohledem na specifiku prostředí (Yandex Cloud, AWS, DigitalOcean).
První testy s Gemini ukázaly problémy: chybné popisy, vícenásobné volání MCP. Přechod na Claude s thinking mode vyřešil halucinace a cykly. Finální prompt definuje prostředí, datum, nástroje a striktní sekvenci akcí.
Klíčové prvky promptu:
- Aktuální prostředí s cloud_id, folder_id, cluster label.
- Nástroje: vmetrics (instant/range dotazy s -30m..now), loki (-30m/-1h), k8s_mcp (kontext z tabulky), yandex-cloud-toolkit (pouze Compute/VPC/IAM/YDB/S3).
- Alertmanager: get_silences, post_silence (JSON s matchers, ISO datum), delete_silence.
Standardní protokol vyšetřování alertů
Agent následuje typický plán:
- vmetrics — metriky (restarts, memory, CPU, free_servers).
- Data table — kubeconfig_context pro K8s.
- k8s_mcp — pods_log (previous=true) nebo pods_get.
- argocd_mcp — get_application podle labelů.
- loki — pouze při absenci příčiny v pod-logách.
Omezení volání:
- Ne více než 2 opakovaná volání jednoho nástroje.
- Prázdná odpověď 2x — ukončit.
- Chyba 422 (too many points) — přepnout na instant dotaz.
- Stop kritéria: OOMKilled/Killed/Error v logách, restarts >0 s reason, 5+ volání.
Labely z alertu (labelsRaw) se používají přesně: project/cluster pouze pokud existují, bez vymyšlení.
Zpracování příkazů a silence
@bot-příkazy v češtině/angličtině:
- "silence 2h" / "ztlumit na 4 hodiny" — post_silence (default 2h, matcher podle alertname).
- "unsilence" / "odtlumit" — delete_silences podle alertname.
- "reanalyze" — plná analýza.
Postup pro silence:
- get_silences() — zkontrolovat existující.
- Pokud existují — oznámit ID/endsAt.
- Ne — post_silence (startsAt=now, endsAt=+duration, ISO Z).
Formát odpovědi v Slack mrkdwn:
- Severity: 🔴/🟡/🟢 (podle label, nesnižovat).
- _Diagnóza:_ příčina.
- _Co našel:_ čísla (restarts | exitCode | limit | log).
- _Udělat:_ číslovaný seznam kroků.
Co je důležité
- MCP protokol zajišťuje bezpečný read-only přístup AI k infrastruktuře bez custom API.
- Thinking mode v Claude zabraňuje cyklům a halucinacím při práci s nástroji.
- Striktní stop kritéria minimalizují volání, zaměřují se na root cause (OOM, CrashLoopBackOff).
- Integrace s n8n umožňuje generovat workflow AI, zrychluje vývoj.
- Podpora více cloudů a K8s prostředí přes context mapping.
— Editorial Team
Zatím žádné komentáře.