Fernwartung Download starten

Proxmox Notification-System: Matcher, Targets, SMTP, Gotify und Webhooks

ProxmoxMonitoringVirtualisierung
Proxmox Notification-System: Matcher, Targets, SMTP, Gotify und Webhooks

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-TypBeschreibungSeit
SMTPE-Mail über konfigurierten SMTP-ServerPVE 8.1
GotifyPush-Notifications an Gotify-ServerPVE 8.1
WebhookHTTP(S)-Request an beliebige EndpunktePVE 8.3
SendmailKlassischer Versand über lokalen MTALegacy

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:

VariableBeschreibung
{{ 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:

TypAuslöserTypische Severity
vzdumpBackup-Jobs (erfolgreich, fehlgeschlagen, Warnung)info / warning / error
replicationReplikations-Jobswarning / error
fencingHA-Fencing-Eventserror
package-updatesVerfügbare Updatesinfo
systemSystemereignisse (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:

  1. SMTP-Target anlegen (ersetzt sendmail)
  2. Matcher für bestehende Benachrichtigungen erstellen
  3. Testen, dass alle Benachrichtigungen ankommen
  4. 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:

IT-Beratung gewünscht?

Kontaktieren Sie uns für eine unverbindliche Beratung zu Proxmox, OPNsense, TrueNAS und mehr.

Jetzt Kontakt aufnehmen