Notifications
Send alerts to Google Chat, Discord, Slack, Teams, Telegram, PagerDuty, a webhook, or email.
Lookout sends every alert and recovery to every notifier you configure under notifiers in /etc/lookout/config.yaml. Configure as many as you like; they all fire in parallel.
With no notifier configured, alerts print to stdout and land in the systemd journal (journalctl -u lookout -f) — handy for testing or for hosts that forward the journal elsewhere.
After editing the config, restart the service:
sudo systemctl restart lookout
Webhook URLs and tokens are redacted in Lookout's logs, so they aren't printed on send failures.
Chat webhooks
Google Chat, Discord, Slack, and Microsoft Teams each take a single incoming webhook URL.
notifiers:
google_chat:
webhook_url: "https://chat.googleapis.com/v1/spaces/XXX/messages?key=...&token=..."
discord:
webhook_url: "https://discord.com/api/webhooks/XXX/YYY"
slack:
webhook_url: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
teams:
webhook_url: "https://example.webhook.office.com/..."
Create the webhook in the target app:
- Discord — Server settings → Integrations → Webhooks → New Webhook.
- Google Chat — Space → Apps & integrations → Manage webhooks → Add webhook.
- Slack — Create an Incoming Webhook for the channel.
- Teams — Add an Incoming Webhook connector to the channel.
Telegram
notifiers:
telegram:
bot_token: "123456:ABC..."
chat_id: "987654321"
Create a bot with @BotFather to get the bot_token, then use the numeric chat_id of the user, group, or channel to alert.
PagerDuty
notifiers:
pagerduty:
integration_key: "pagerduty-events-api-v2-key"
Use an Events API v2 integration key. Lookout maps its warning / critical severity onto the PagerDuty event severity.
Email (SMTP)
notifiers:
email:
host: "smtp.example.com"
port: 587
implicit_tls: false # true for implicit TLS (usually port 465)
username: ""
password: ""
from: "lookout@example.com"
to:
- "you@example.com"
Generic webhook
For anything else, point Lookout at your own endpoint. It receives a structured JSON payload with the alert status, severity, title, metric, value, threshold, unit, hostname, color, and the rendered text.
notifiers:
webhook:
webhook_url: "https://example.com/hooks/lookout"
Alert format
Every channel receives the same content (chat channels get it as text, rich channels as a colored card):
🔴 CRITICAL — High memory usage
Host: my-server
Metric: memory.used_percent
Value: 91.43% (threshold 85.00%)
🔴 CRITICAL / 🟡 WARNING while firing, ✅ RESOLVED when it clears. See Alerts for the lifecycle.