Alertmanager¶
Connect your Prometheus Alertmanager so its alerts flow into KubeManta's activity feed and alert history, and optionally trigger automatic investigation by the AI copilot.
What it gives you¶
- Centralized alert view — Alertmanager firings appear in the alert history on KubeManta's Alerts page, tagged Alertmanager, and in the Activity feed alongside cluster events
- Alert history — searchable, sortable, persisted in KubeManta (by default for 180 days)
- AI auto-investigation — when a critical alert fires (Pro + AI enabled), KubeManta can automatically diagnose the issue and deliver the diagnosis to your alert integrations (enable it in Admin → AI → Alert diagnosis)
Tier: Free (ingestion + view); Pro (auto-investigation)
Prerequisites¶
- Alertmanager running — already deployed and firing alerts. We'll add KubeManta as a receiver.
- Network path — Alertmanager must reach KubeManta's webhook URL (typically
https://kubemanta.example.com/api/agent/integrations/alertmanager/webhookfor internet-facing, or an internal hostname if on the same network). - A receiver secret — a strong shared value you choose and enter in KubeManta, so only your Alertmanager can deliver alerts. Until one is saved, the webhook refuses every request.
Configure in KubeManta¶
Step 1 — Generate a receiver secret¶
In KubeManta:
- In the sidebar, click Admin (gear icon).
- Open the Observability tab.
- Open the Alertmanager tab.
- Enter a strong Receiver Secret of your choosing (you'll give it to Alertmanager next).
- Your webhook URL is displayed — copy that too. It already includes the secret as
?token=; Alertmanager can use that URL as-is, or send the secret as anAuthorization: Bearerheader instead. - Click Save.
Both the secret and URL are stored encrypted at rest.
Step 2 — Configure Alertmanager to send to KubeManta¶
In your Alertmanager config:
receivers:
- name: kubemanta
webhook_configs:
- url: https://kubemanta.example.com/api/agent/integrations/alertmanager/webhook
send_resolved: false
Add the secret as a header by replacing the simple url: above with:
receivers:
- name: kubemanta
webhook_configs:
- url: https://kubemanta.example.com/api/agent/integrations/alertmanager/webhook
send_resolved: false
headers:
Authorization: "Bearer YOUR_RECEIVER_SECRET"
Or, if your Alertmanager version supports query parameters in the webhook URL, append the token:
receivers:
- name: kubemanta
webhook_configs:
- url: https://kubemanta.example.com/api/agent/integrations/alertmanager/webhook?token=YOUR_RECEIVER_SECRET
send_resolved: false
Step 3 — Route alerts to the receiver¶
Add a route in your Alertmanager config to send the alerts you care about to KubeManta:
global:
resolve_timeout: 5m
route:
receiver: default
routes:
- receiver: kubemanta
match:
severity: "critical" # Send only critical alerts, or remove match to send all
Reload Alertmanager:
kubectl rollout restart -n monitoring statefulset/alertmanager
# or: amtool config routes (to reload without restarting)
Verify¶
Quick check in the UI¶
- Click Activity in the sidebar (or Overview → scroll to activity feed).
- You should see a Filters section with an alert-count indicator.
- If an alert just fired in Alertmanager, it should appear in the feed within seconds.
Test with amtool¶
If you have amtool installed, send a test alert:
Then refresh the KubeManta Activity feed — you should see it appear.
Check KubeManta logs¶
Look for messages confirming the webhook was received.
Expected states¶
| State | Meaning | Next step |
|---|---|---|
| No alerts in Activity feed | Either no alerts have fired, or Alertmanager hasn't reached KubeManta yet | Fire a test alert with amtool, or check logs for webhook errors |
| Alerts appear in the feed | Success! | (Optional) Enable AI auto-investigation if you have Pro + AI |
| Alerts appear but seem stale | Alertmanager may be sending old firings due to grouping or timing | Check your Alertmanager config's group_wait / group_interval |
Auto-investigation (optional, Pro + AI)¶
When you have a Pro license and AI enabled, KubeManta can automatically investigate critical alerts:
- Turn it on in Admin → AI → Alert diagnosis ("Send an AI diagnosis after each alert"), choosing the minimum severity. It needs Pro and a configured AI provider; it is off by default.
- The read-only diagnosis is delivered to your configured alert integrations.
- Turn the same switch off to stop it.
Troubleshooting¶
Alerts not appearing in KubeManta¶
Is Alertmanager actually firing alerts?
If none, fire a test:
Is the webhook URL reachable from Alertmanager? - For in-cluster Alertmanager: can it reach KubeManta's cluster IP / service DNS? - For external Alertmanager: can it reach your KubeManta hostname over HTTPS?
Try a test webhook POST:
curl -X POST \
-H "Authorization: Bearer YOUR_RECEIVER_SECRET" \
-H "Content-Type: application/json" \
-d '{"alerts":[{"labels":{"alertname":"TestAlert","severity":"critical"},"status":"firing"}]}' \
https://kubemanta.example.com/api/agent/integrations/alertmanager/webhook
Check KubeManta logs for webhook errors:
"Webhook signature invalid" or "unauthorized" error¶
Did you copy the secret correctly? Double-check it character-for-character in the Authorization header.
Is the secret still the same? If you regenerated the secret in KubeManta, update Alertmanager's config with the new one.
Alerts are duplicated in the feed¶
Alertmanager re-sends a firing alert every repeat_interval (and on group changes), and KubeManta records each delivery as a separate row; it does not de-duplicate Alertmanager deliveries. Tune group_interval and repeat_interval on the KubeManta route to control the volume.
Related¶
- Activity & Audit — the full audit trail + export
- Alerts feature — KubeManta's own rules engine
- Observability connector — network security + webhook setup details
- Install → Network access — ensure Alertmanager can reach your KubeManta hostname