Benachrichtigungen¶
TCM365 bietet ein Multi-Channel-Benachrichtigungssystem, das Alerts und Statusmeldungen über vier Kanäle zustellt: E-Mail (SMTP), Microsoft Teams, Slack und Webhooks. Benachrichtigungen werden durch Systemereignisse wie Drift-Erkennung, Snapshot-Abschluss und Compliance-Änderungen ausgelöst.
Übersicht¶
Das Benachrichtigungssystem basiert auf zwei Kern-Entities: NotificationConfig
(Kanal-Konfiguration) und NotificationLog (Zustellungsverfolgung). Der
NotificationService verarbeitet Nachrichtenformatierung, Zustellung und Retry-Logik
über alle Kanäle.
Kernfunktionen¶
- Vier Benachrichtigungskanäle: E-Mail, Teams, Slack, Webhooks
- Konfigurierbare Per-Tenant-Benachrichtigungspraeferenzen
- Template-basierte Benachrichtigungsinhalte
- Zustellungsverfolgung mit Erfolg/Fehler-Protokollierung
- Event-gesteuerte Trigger für automatisiertes Alerting
- Retry-Logik für fehlgeschlagene Zustellungen
- Multi-Empfänger-Unterstützung für E-Mail-Benachrichtigungen
Benachrichtigungskanäle¶
E-Mail (SMTP)¶
E-Mail-Benachrichtigungen werden via SMTP gesendet und unterstützen HTML-formatierte Nachrichten mit eingebetteten Datentabellen und Aktionslinks.
Konfiguration:
{
"channel": "email",
"enabled": true,
"config": {
"recipients": ["admin@organisation.de", "security@organisation.de"],
"ccRecipients": ["compliance@organisation.de"],
"subjectPrefix": "[TCM365]"
}
}
Umgebungsvariablen:
| Variable | Beschreibung | Beispiel |
|---|---|---|
SMTP_HOST |
SMTP-Server-Hostname | smtp.office365.com |
SMTP_PORT |
SMTP-Server-Port | 587 |
SMTP_USERNAME |
SMTP-Authentifizierungsbenutzername | notifications@org.com |
SMTP_PASSWORD |
SMTP-Authentifizierungspasswort | (verschlüsselt) |
SMTP_FROM_EMAIL |
Absender-E-Mail-Adresse | tcm@org.com |
SMTP_FROM_NAME |
Absender-Anzeigename | TCM365 Notifications |
Microsoft Teams¶
Teams-Benachrichtigungen werden über Incoming Webhook Connectors zugestellt und erscheinen als Adaptive Card-Nachrichten im konfigurierten Teams Channel.
Konfiguration:
{
"channel": "teams",
"enabled": true,
"config": {
"webhookUrl": "https://outlook.office.com/webhook/...",
"cardTitle": "TCM365 Alert"
}
}
Einrichtung:
- Ziel-Teams-Channel öffnen
- Zu Channel-Einstellungen navigieren und Connectors (oder Workflows) wählen
- Incoming Webhook Connector hinzufügen
- Webhook URL kopieren
- Webhook URL in TCM365 Benachrichtigungseinstellungen konfigurieren
Slack¶
Slack-Benachrichtigungen verwenden Incoming Webhooks um Nachrichten mit Block Kit-Formatierung in konfigurierte Slack-Channels zu senden.
Konfiguration:
{
"channel": "slack",
"enabled": true,
"config": {
"webhookUrl": "https://hooks.slack.com/services/T.../B.../...",
"channelOverride": "#security-alerts",
"username": "TCM365 Bot",
"iconEmoji": ":shield:"
}
}
Webhooks (Benutzerdefiniert)¶
Generische Webhook-Benachrichtigungen senden JSON-Payloads an benutzerdefinierte HTTP-Endpoints und ermöglichen Integration mit jedem System, das HTTP POST-Anfragen empfangen kann.
Konfiguration:
{
"channel": "webhook",
"enabled": true,
"config": {
"url": "https://api.example.com/tcm365-events",
"method": "POST",
"headers": {
"Authorization": "Bearer <token>",
"X-Custom-Header": "TCM365"
},
"secret": "webhook-signing-secret"
}
}
Funktionen:
- Benutzerdefinierte HTTP-Header für Authentifizierung
- HMAC-SHA256 Payload-Signierung für Webhook-Verifizierung
- Konfigurierbarer HTTP-Methode (POST, PUT)
- Retry mit exponentiellem Backoff
Trigger Events¶
Benachrichtigungen können für folgende Systemereignisse konfiguriert werden:
| Event | Beschreibung | Standard-Kanäle |
|---|---|---|
drift.detected |
Konfigurationsdrift durch Monitor erkannt | Alle Kanäle |
drift.resolved |
Drift-Record als behoben markiert | |
snapshot.completed |
Snapshot-Erfassung erfolgreich abgeschlossen | E-Mail, Webhook |
snapshot.failed |
Snapshot-Erfassung fehlgeschlagen | Alle Kanäle |
compliance.score_changed |
Compliance-Score signifikant geändert | E-Mail, Teams |
compliance.threshold_breach |
Compliance-Score unter Schwellenwert gefallen | Alle Kanäle |
rollback.completed |
Rollback-Operation abgeschlossen | Alle Kanäle |
rollback.failed |
Rollback-Operation fehlgeschlagen | Alle Kanäle |
incident.created |
Neuer Incident erstellt | Alle Kanäle |
incident.deadline_approaching |
NIS2-Meldefrist naehert sich | Alle Kanäle |
anomaly.detected |
Anomalie-Erkennung ausgelöst | E-Mail, Teams, Slack |
probe.failed |
Custom Probe-Ausführung fehlgeschlagen | E-Mail, Webhook |
workflow.completed |
Geplanter Workflow abgeschlossen | |
workflow.failed |
Geplanter Workflow fehlgeschlagen | Alle Kanäle |
Event-Filterung¶
Jede Benachrichtigungskonfiguration kann filtern, welche Events Benachrichtigungen auslösen:
{
"channel": "teams",
"enabled": true,
"events": ["drift.detected", "compliance.threshold_breach", "incident.created"],
"severityFilter": ["high", "critical"],
"config": {
"webhookUrl": "https://..."
}
}
Retry-Logik¶
Fehlgeschlagene Benachrichtigungszustellungen werden mit exponentiellem Backoff wiederholt:
| Versuch | Verzögerung | Gesamtwartezeit |
|---|---|---|
| 1. Retry | 30 Sekunden | 30s |
| 2. Retry | 2 Minuten | 2m 30s |
| 3. Retry | 10 Minuten | 12m 30s |
| Letzter Versuch | 30 Minuten | 42m 30s |
Nach 4 fehlgeschlagenen Versuchen wird die Benachrichtigung als dauerhaft fehlgeschlagen
markiert und im NotificationLog mit Fehlerdetails protokolliert.
API-Endpoints¶
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET |
/api/v1/notifications/configs |
Benachrichtigungskonfigurationen auflisten |
POST |
/api/v1/notifications/configs |
Benachrichtigungskonfiguration erstellen |
GET |
/api/v1/notifications/configs/{id} |
Konfigurationsdetails abrufen |
PUT |
/api/v1/notifications/configs/{id} |
Konfiguration aktualisieren |
DELETE |
/api/v1/notifications/configs/{id} |
Konfiguration löschen |
POST |
/api/v1/notifications/configs/{id}/test |
Testbenachrichtigung senden |
GET |
/api/v1/notifications/logs |
Zustellungsprotokolle auflisten |
GET |
/api/v1/notifications/logs/{id} |
Protokolldetails abrufen |
Best Practices¶
- Mehrere Kanäle konfigurieren -- Mindestens zwei Kanäle für kritische Alerts zur Zustellungssicherung
- Nach Severity filtern -- Nur High/Critical-Events an Teams/Slack routen um Benachrichtigungsmuedigkeit zu vermeiden
- Vor Produktion testen -- Immer Testbenachrichtigung nach Konfiguration senden zur Konnektivitaetspruefung
- Webhooks für Automatisierung -- Integration mit SIEM, Ticketing oder Automatisierungssystemen via Webhooks
- Zustellungsprotokolle prüfen -- Periodisch Benachrichtigungsprotokolle auf fehlgeschlagene Zustellungen prüfen
- Tenant-spezifische Konfigurationen -- Tenant-spezifische Benachrichtigungspraeferenzen für Multi-Tenant-Umgebungen
- Webhook Secrets sichern -- HMAC-Signierung für Webhook-Endpoints zur Nachrichtenauthentizitaetspruefung