Skip to content

Slack

Vesana sends alerts to Slack through an incoming webhook. No Slack app with a callback is needed — the messages are notifications only; acknowledging happens in Vesana.

Setup

1. Create a Slack app

api.slack.com/apps → Create New App → From scratch, e.g. "Vesana Alerts".

2. Enable incoming webhooks

In the app → Incoming Webhooks → switch on "Activate Incoming Webhooks".

3. Generate the webhook URL

Add New Webhook to Workspace → pick a channel → Allow. Slack shows a URL like https://hooks.slack.com/services/T…/B…/….

4. Store it in Vesana

Alerting → Channels → New Channel → type Slack:

Field Value
Name e.g. "Slack #alerts" (required)
Tenant only selectable when creating
Webhook URL from step 3 (required; must start with https://hooks.slack.com/)
Channel Override optional, e.g. #alerts
Bot Name display name (default Vesana)
Bot Icon emoji (default :warning:)

Then Send test on the channel row. Which statuses and whether recoveries go through the channel is set in the alert rule, not on the channel.

Format

A Block Kit message:

  • header with status emoji (🔴 CRITICAL, 🟡 WARNING, 🟠 NO_DATA, ⚪ UNKNOWN, ✅ OK) and the headline
  • below it the check message
  • facts in two columns: host (with IP), check, status, since when, duration, tenant
  • the list of suppressed dependent devices, if any
  • an Open in Vesana button (link to the check)

Slack's mobile notification shows the headline and the message.

🔴 Alert: Disk /var on web01.acme.local is CRITICAL
Disk usage 96.4%
Host     web01.acme.local (10.0.0.12)      Check   Disk /var
Status   WARNING → CRITICAL                Since   2026-10-29 20:13 CET (12 min ago)
Tenant   Acme
[Open in Vesana]

If grouping is enabled in the alert rule, a combined message arrives ("Alert: 3 problems on web01") with one line per check.

Device and check texts are escaped for Slack; a device name cannot smuggle a clickable link into the message.

Multiple channels

Create one channel per Slack target (or reuse one webhook with a channel override) and pick the matching channel per level in the alert rules — e.g. CRITICAL to #alerts-critical, WARNING to #alerts-warn.

Next