Slack¶
Setup¶
1. Create Slack app¶
api.slack.com → Create New App → From Scratch.
Name: „Vesana Alerts".
2. Activate Incoming Webhooks¶
App settings → Incoming Webhooks → toggle „Activate Incoming Webhooks".
3. Generate webhook URL¶
Add New Webhook to Workspace → pick channel → Allow.
Slack shows a URL like https://hooks.slack.com/services/T.../B.../....
4. Configure in Vesana¶
/notification-channels → New channel → type Slack:
| Field | Value |
|---|---|
| Name | „Slack #alerts" |
| Webhook URL | from step 3 |
| Severity filter | only CRIT / WARN+ / all |
| Recovery notifications | yes / no |
Format¶
Vesana sends structured Slack messages with:
- Severity color (red/yellow/green as attachment color)
- Host name and service name as header
- Plugin output as body
- Buttons:
- Ack — direct acknowledge without browser
- Open host — deep link
🔴 CRITICAL — web01.acme.local — Disk /var
─────────────────────────────────────────
Disk usage 96.4% (Threshold 95%)
─────────────────────────────────────────
[Ack] [Open host]
─────────────────────────────────────────
Tenant: Acme · Profile: Linux Web Server
Interactive actions¶
For „Ack" to work directly from Slack, Slack needs a callback endpoint:
- Activate Interactivity & Shortcuts in the Slack app
- Request URL:
https://your-domain.tld/api/v1/integrations/slack/interaction - Set the signing secret from the Slack app in the Vesana channel
Without signing secret, integration is read-only (buttons just open the browser).
Multiple channels¶
A Slack channel per severity is common:
#alerts-critical— CRIT only#alerts-warn— WARN+#alerts-recovery— recovery notifications
Alert rules reference the appropriate channels.
Threading¶
No threading currently — each alert is its own message. With grouping (see Alert rules), the group is sent as one message block.
Next¶
- Notification channels
- Teams — analogous setup