Slack¶
Setup¶
1. Slack-App erstellen¶
api.slack.com → Create New App → From Scratch.
Name: „Vesana Alerts".
2. Incoming Webhooks aktivieren¶
App-Settings → Incoming Webhooks → Toggle „Activate Incoming Webhooks".
3. Webhook-URL erzeugen¶
Add New Webhook to Workspace → Channel auswählen → Allow.
Slack zeigt eine URL der Form https://hooks.slack.com/services/T.../B.../....
4. In Vesana hinterlegen¶
/notification-channels → Neuer Channel → Typ Slack:
| Feld | Wert |
|---|---|
| Name | „Slack #alerts" |
| Webhook-URL | aus Schritt 3 |
| Severity-Filter | nur CRIT / WARN+ / alle |
| Recovery-Notifications | Ja / Nein |
Format¶
Vesana schickt strukturierte Slack-Messages mit:
- Severity-Farbe (rot/gelb/grün als Attachment-Color)
- Host-Name und Service-Name als Header
- Plugin-Output als Body
- Buttons:
- Ack — direkter Acknowledge ohne Browser
- Host öffnen — Deep-Link
🔴 CRITICAL — web01.acme.local — Disk /var
─────────────────────────────────────────
Disk usage 96.4% (Threshold 95%)
─────────────────────────────────────────
[Ack] [Host öffnen]
─────────────────────────────────────────
Tenant: Acme · Profil: Linux Web Server
Interactive Actions¶
Damit „Ack" direkt aus Slack funktioniert, braucht Slack einen Endpoint zum Zurückrufen:
- Interactivity & Shortcuts in der Slack-App aktivieren
- Request-URL:
https://deine-domain.tld/api/v1/integrations/slack/interaction - Signing-Secret aus der Slack-App in Vesana-Channel hinterlegen
Ohne Signing-Secret läuft die Integration im Read-Only-Modus (Buttons öffnen nur den Browser).
Mehrere Channels¶
Ein Slack-Channel pro Severity ist üblich:
#alerts-critical— nur CRIT#alerts-warn— WARN+#alerts-recovery— Recovery-Notifications
Alert-Rules verweisen auf die passenden Channels.
Threading¶
Aktuell kein Threading — jeder Alert ist eine eigene Message. Bei Gruppierung (siehe Alert Rules) wird die Gruppe als ein Message-Block geschickt.
Anschluss¶
- Notification Channels
- Teams — analoges Setup