Bis Proxmox VE 8.0 war die Benachrichtigung ein Stiefkind: sendmail, eine E-Mail-Adresse pro Node — und Hoffnung, dass der Mailserver funktioniert. Mit PVE 8.1 hat Proxmox ein komplett neues Notification-System eingeführt, das Matcher und Targets trennt, mehrere Benachrichtigungskanäle unterstützt und granulare Filter ermöglicht. Das alte sendmail-System funktioniert weiterhin, wird aber durch die neue API nach und nach abgelöst.
Die neue Architektur: Matcher und Targets
Das Notification-System basiert auf zwei Konzepten:
Targets
Ein Target ist ein Benachrichtigungsziel — also wohin die Nachricht geht:
| Target-Typ | Beschreibung | Seit |
|---|---|---|
| SMTP | E-Mail über konfigurierten SMTP-Server | PVE 8.1 |
| Gotify | Push-Notifications an Gotify-Server | PVE 8.1 |
| Webhook | HTTP(S)-Request an beliebige Endpunkte | PVE 8.3 |
| Sendmail | Klassischer Versand über lokalen MTA | Legacy |
Matcher
Ein Matcher definiert, welche Benachrichtigungen an welches Target gehen. Matcher filtern nach:
- Severity:
info,notice,warning,error - Typ: Backup-Jobs, Replication, Fencing, Package Updates, System
- Invert Match: Negative Filter (alles außer …)
- Target: Eines oder mehrere Targets
Die Kombination aus Matchern und Targets ermöglicht präzise Steuerung: Kritische Alerts gehen an Webhook (PagerDuty), Backup-Berichte per E-Mail, und Infos an Gotify auf dem Handy des Admins.
SMTP-Target konfigurieren
Schritt 1: SMTP-Target anlegen
In der Weboberfläche unter Datacenter > Notifications > Add > SMTP:
Name: smtp-alerts
Server: mail.example.com
Port: 587
Encryption: STARTTLS
Username: proxmox-alerts@example.com
Password: ********
Mail-From: proxmox-alerts@example.com
Mail-To: admin-team@example.com
Alternativ über die Kommandozeile:
# SMTP-Target anlegen
pvesh create /cluster/notifications/endpoints/smtp \
--name smtp-alerts \
--server mail.example.com \
--port 587 \
--mode starttls \
--username proxmox-alerts@example.com \
--password 'SicheresPasswort!' \
--mailto admin-team@example.com \
--mailto-user root@pam \
--from-address proxmox-alerts@example.com
Schritt 2: SMTP-Target testen
# Test-Benachrichtigung senden
pvesh create /cluster/notifications/endpoints/smtp/smtp-alerts/test
Häufige SMTP-Probleme
Problem: “Connection refused” auf Port 587 Der SMTP-Server erfordert STARTTLS, aber die Firewall blockiert den Port. Prüfen Sie:
# Konnektivität testen
openssl s_client -connect mail.example.com:587 -starttls smtp
Problem: “Authentication failed” Bei Microsoft 365 und Google Workspace müssen App-Passwörter oder OAuth2 verwendet werden — normale Passwörter funktionieren nicht, wenn MFA aktiv ist.
Problem: E-Mails kommen im Spam an Stellen Sie sicher, dass SPF, DKIM und DMARC für die Absenderdomain korrekt konfiguriert sind.
Gotify-Integration
Gotify ist ein selbstgehosteter Push-Notification-Server — ideal für Administratoren, die Echtzeit-Benachrichtigungen auf dem Smartphone wollen, ohne auf externe Dienste angewiesen zu sein.
Gotify-Server vorbereiten
Wenn noch kein Gotify läuft, installieren Sie es als Container:
# Gotify als Docker-Container
docker run -d \
--name gotify \
-p 8080:80 \
-v /opt/gotify/data:/app/data \
gotify/server:latest
Erstellen Sie in der Gotify-Weboberfläche eine neue Anwendung und notieren Sie den Application Token.
Gotify-Target in Proxmox anlegen
Datacenter > Notifications > Add > Gotify:
Name: gotify-mobile
Server: https://gotify.example.com
Token: A1b2C3d4E5f6G7h8
Oder per CLI:
pvesh create /cluster/notifications/endpoints/gotify \
--name gotify-mobile \
--server https://gotify.example.com \
--token A1b2C3d4E5f6G7h8
Gotify-Client auf dem Smartphone
Installieren Sie die Gotify-App (Android: F-Droid/Play Store, iOS: über WebSocket-kompatible Clients) und verbinden Sie sie mit Ihrem Gotify-Server. Proxmox-Benachrichtigungen erscheinen als Push-Notifications in Echtzeit.
Webhook-Targets (ab PVE 8.3)
Webhook-Targets sind der flexibelste Benachrichtigungskanal. Sie senden HTTP(S)-Requests an beliebige Endpunkte und ermöglichen die Integration in praktisch jedes System.
Webhook-Target anlegen
Datacenter > Notifications > Add > Webhook:
Name: webhook-slack
URL: https://hooks.slack.com/services/T00/B00/xxxx
Method: POST
Headers: Content-Type: application/json
Body: { "text": "{{ title }}\n{{ message }}" }
Verfügbare Template-Variablen
Im Body des Webhooks können Sie Platzhalter verwenden:
| Variable | Beschreibung |
|---|---|
{{ title }} | Betreff der Benachrichtigung |
{{ message }} | Vollständiger Nachrichtentext |
{{ severity }} | Severity-Level (info, notice, warning, error) |
{{ timestamp }} | Zeitstempel der Benachrichtigung |
{{ fields }} | Strukturierte Felder (JSON) |
Beispiel: Slack-Webhook
{
"attachments": [
{
"color": "{% if severity == 'error' %}danger{% elif severity == 'warning' %}warning{% else %}good{% endif %}",
"title": "{{ title }}",
"text": "{{ message }}",
"footer": "Proxmox VE",
"ts": "{{ timestamp }}"
}
]
}
Beispiel: Microsoft Teams
{
"@type": "MessageCard",
"summary": "{{ title }}",
"themeColor": "{% if severity == 'error' %}FF0000{% elif severity == 'warning' %}FFA500{% else %}00FF00{% endif %}",
"title": "Proxmox Alert: {{ title }}",
"sections": [
{
"text": "{{ message }}"
}
]
}
Beispiel: PagerDuty Events API v2
{
"routing_key": "PAGERDUTY_INTEGRATION_KEY",
"event_action": "trigger",
"payload": {
"summary": "{{ title }}",
"severity": "{% if severity == 'error' %}critical{% elif severity == 'warning' %}warning{% else %}info{% endif %}",
"source": "proxmox-cluster",
"component": "pve"
}
}
Matcher konfigurieren
Matcher verbinden Benachrichtigungstypen mit Targets.
Matcher-Grundlagen
Erstellen Sie Matcher unter Datacenter > Notifications > Add > Matcher:
Name: critical-to-pagerduty
Match Severity: error
Match Field: -
Target: webhook-pagerduty
Beispiel: Backup-Berichte nur per E-Mail
pvesh create /cluster/notifications/matchers \
--name backup-reports-email \
--match-severity info,notice,warning,error \
--match-calendar "vzdump" \
--target smtp-alerts
Beispiel: Fencing-Events an alle Kanäle
pvesh create /cluster/notifications/matchers \
--name fencing-all-channels \
--match-severity error \
--match-field type=fencing \
--target smtp-alerts,gotify-mobile,webhook-pagerduty
Beispiel: Alles außer Info-Level
pvesh create /cluster/notifications/matchers \
--name no-info-noise \
--match-severity notice,warning,error \
--target gotify-mobile
Notification-Filter nach Typ
Proxmox generiert verschiedene Benachrichtigungstypen:
| Typ | Auslöser | Typische Severity |
|---|---|---|
| vzdump | Backup-Jobs (erfolgreich, fehlgeschlagen, Warnung) | info / warning / error |
| replication | Replikations-Jobs | warning / error |
| fencing | HA-Fencing-Events | error |
| package-updates | Verfügbare Updates | info |
| system | Systemereignisse (Disk-Fehler, RAM, etc.) | warning / error |
Praxis-Konfiguration
Eine bewährte Konfiguration für ein KMU mit Proxmox-Cluster:
Matcher 1 — Kritische Fehler → PagerDuty + E-Mail:
- Severity: error
- Target: webhook-pagerduty, smtp-alerts
Matcher 2 — Backup-Berichte → E-Mail:
- Typ: vzdump
- Severity: alle
- Target: smtp-alerts
Matcher 3 — Warnungen → Gotify:
- Severity: warning
- Target: gotify-mobile
Matcher 4 — Updates → E-Mail (wöchentlich):
- Typ: package-updates
- Target: smtp-alerts
Sendmail vs. neue Notification-API
Sendmail (Legacy)
Das alte System nutzt den lokalen MTA (sendmail/postfix):
# Alte Konfiguration in /etc/pve/user.cfg
user:root@pam:1:0:::root@example.com:::
Nachteile:
- Nur E-Mail als Kanal
- Konfiguration pro Node
- Keine Filter oder Matcher
- Abhängig von lokalem MTA
Neue Notification-API
Die neue API bietet:
- Multiple Kanäle (SMTP, Gotify, Webhook)
- Cluster-weite Konfiguration
- Granulare Filter mit Matchern
- Template-basierte Nachrichten
- API-basierte Verwaltung
Migration
Die Migration vom alten zum neuen System ist einfach:
- SMTP-Target anlegen (ersetzt sendmail)
- Matcher für bestehende Benachrichtigungen erstellen
- Testen, dass alle Benachrichtigungen ankommen
- Altes sendmail-Target deaktivieren
# Altes sendmail-Target deaktivieren
pvesh set /cluster/notifications/endpoints/sendmail/mail-to-root \
--disable true
Konfigurationsdateien
Die Notification-Konfiguration liegt unter /etc/pve/notifications.cfg und wird automatisch im Cluster synchronisiert:
# Konfiguration anzeigen
cat /etc/pve/notifications.cfg
Beispielinhalt:
smtp: smtp-alerts
server mail.example.com
port 587
mode starttls
username proxmox-alerts@example.com
mailto admin-team@example.com
from-address proxmox-alerts@example.com
gotify: gotify-mobile
server https://gotify.example.com
matcher: critical-errors
match-severity error
target smtp-alerts
target gotify-mobile
matcher: backup-reports
match-calendar vzdump
target smtp-alerts
Private Daten (Passwörter, Tokens) werden separat in /etc/pve/priv/notifications.cfg gespeichert — diese Datei ist nur für root lesbar.
Troubleshooting
Benachrichtigungen kommen nicht an
# Notification-System-Status prüfen
pvesh get /cluster/notifications/targets
# Test-Benachrichtigung senden
pvesh create /cluster/notifications/endpoints/smtp/smtp-alerts/test
# Journal auf Fehler prüfen
journalctl -u pvedaemon --since "1 hour ago" | grep -i notif
Doppelte Benachrichtigungen
Prüfen Sie, ob mehrere Matcher auf die gleiche Benachrichtigung zutreffen. Jeder Matcher, der matcht, sendet separat:
# Alle Matcher auflisten
pvesh get /cluster/notifications/matchers
Webhook-Fehler debuggen
# Webhook manuell testen
curl -X POST "https://hooks.slack.com/services/T00/B00/xxxx" \
-H "Content-Type: application/json" \
-d '{"text":"Proxmox Test Notification"}'
Fazit
Das neue Proxmox Notification-System ist ein großer Schritt nach vorn. Die Trennung in Matcher und Targets ermöglicht flexible, granulare Benachrichtigungen über multiple Kanäle. Wer bisher mit sendmail und einer einzigen E-Mail-Adresse gearbeitet hat, sollte die Migration zeitnah planen — der Aufwand ist gering und der Gewinn an Flexibilität und Zuverlässigkeit erheblich.
Mehr zu diesen Themen:
Weitere Artikel
Backup-Strategie für KMU: Proxmox PBS + TrueNAS als zuverlässiges Backup-Konzept
Backup-Strategie für KMU mit Proxmox PBS und TrueNAS: 3-2-1-Regel umsetzen, PBS als primäres Backup-Target, TrueNAS-Replikation als Offsite-Kopie, Retention Policies und automatisierte Restore-Tests.
TrueNAS mit MCP: KI-gestützte NAS-Verwaltung per natürlicher Sprache
TrueNAS mit MCP (Model Context Protocol) verbinden: KI-Assistenten für NAS-Verwaltung, Status-Abfragen, Snapshot-Erstellung per Chat, Sicherheitsaspekte und Zukunftsausblick.
Proxmox Cluster-Netzwerk richtig planen: Corosync, Migration, Storage und Management
Proxmox Cluster-Netzwerk designen: Corosync-Ring, Migration-Network, Storage-Network für Ceph/iSCSI, Management-VLAN, Bonding/LACP und MTU 9000 — mit Beispiel-Topologien.