Zum Inhalt springen

Notification-Konnektor

Der Notification-Konnektor stellt Payloads als Nachrichten an externe Kanäle zu. Der Nachrichtenkörper ist entweder die als JSON gemarshallte Payload oder ein aus einem Go-text/template gerenderter String.

Konnektor-Typ: MeddleNotification

Unterstützte Kanäle: slack, teams, email, microsoft365, webhook

  • channel (erforderlich): Einer von slack, teams, email, microsoft365, webhook
  • template: Optionaler Go-text/template-String. Payload-Felder sind als {{ .field }} zugänglich. Wenn leer, wird die Payload als JSON codiert.
  • webhookUrl: Ziel-URL (vom webhook-Kanal verwendet)
  • slackConfig: Slack-spezifische Optionen
  • teamsConfig: Teams-spezifische Optionen
  • emailConfig: SMTP-E-Mail-Optionen
  • microsoft365Config: Microsoft Graph API-Optionen
{
"type": "MeddleNotification",
"config": {
"channel": "slack",
"template": "Temperatur-Alarm: {{ .temperature }}°C an Sensor {{ .sensor_id }}",
"slackConfig": {
"botToken": "xoxb-...",
"channel": "#alerts"
}
}
}

slackConfig-Felder:

  • botToken (erforderlich): Slack-Bot-User-OAuth-Token
  • channel (erforderlich): Kanal-ID oder -Name (z.B. #alerts)
{
"type": "MeddleNotification",
"config": {
"channel": "teams",
"template": "Maschine {{ .machine_id }} gestoppt. Status: {{ .status }}",
"teamsConfig": {
"webhookUrl": "https://outlook.office.com/webhook/..."
}
}
}

teamsConfig-Felder:

  • webhookUrl (erforderlich): Eingehende Webhook-URL, die in Teams konfiguriert ist
{
"type": "MeddleNotification",
"config": {
"channel": "email",
"template": "Alarm von Sensor {{ .sensor_id }}: {{ .message }}",
"emailConfig": {
"smtpHost": "smtp.example.com",
"smtpPort": 587,
"from": "alerts@example.com",
"to": ["ops@example.com", "manager@example.com"],
"username": "alerts@example.com",
"password": "app-specific-password"
}
}
}

emailConfig-Felder:

  • smtpHost (erforderlich), smtpPort (erforderlich)
  • from (erforderlich, muss eine gültige E-Mail sein)
  • to (erforderlich, min 1 Empfänger)
  • username, password: Optionale SMTP-Authentifizierung

Sendet E-Mails über Microsoft Graph unter Verwendung von OAuth2-Client-Credentials. Erfordert eine Azure AD-App-Registrierung mit der Mail.Send-Anwendungsberechtigung (Admin-zugestimmt).

{
"type": "MeddleNotification",
"config": {
"channel": "microsoft365",
"template": "Produktion auf Linie {{ .line_id }} angehalten",
"microsoft365Config": {
"tenantId": "00000000-0000-0000-0000-000000000000",
"clientId": "11111111-1111-1111-1111-111111111111",
"authMethod": "secret",
"clientSecret": "your-client-secret",
"fromAddress": "alerts@yourtenant.onmicrosoft.com",
"to": ["ops@yourtenant.onmicrosoft.com"],
"subject": "Production Alert",
"saveToSentItems": true
}
}
}

microsoft365Config-Felder:

  • tenantId (erforderlich), clientId (erforderlich)
  • authMethod: secret (Standard) oder certificate
  • clientSecret: Erforderlich, wenn authMethod secret ist
  • certificate: Erforderlich, wenn authMethod certificate ist. Geben Sie entweder certificateFile + privateKeyFile (PEM) oder pfxFile (+ optional pfxPassword) an.
  • fromAddress (erforderlich, muss eine gültige E-Mail sein, die einem lizenzierten Postfach entspricht)
  • to (erforderlich, min 1 Empfänger)
  • subject: E-Mail-Betreff (Standard Meddle Notification)
  • saveToSentItems: Bei true wird die Nachricht im Ordner “Gesendete Elemente” des Postfachs gespeichert
{
"type": "MeddleNotification",
"config": {
"channel": "webhook",
"webhookUrl": "https://hooks.example.com/incoming",
"template": "{{ .machine_id }}: {{ .status }}"
}
}

Sendet einen JSON-Body { "message": "...", "data": { ...payload... } } an webhookUrl.

Templates verwenden die Go-text/template-Syntax. Häufige Muster:

Temperatur: {{ .temperature }}°C
{{ if gt .pressure 100.0 }}Druck HOCH{{ end }}
Sensor {{ .sensor_id }} meldete {{ .status }} um {{ .timestamp }}

Wenn kein Template konfiguriert ist, wird die vollständige Payload als JSON codiert als Nachricht verwendet.

  1. Bediener-Benachrichtigungen bei Schwellenwertüberschreitungen
  2. Vorfall-Routing zu On-Call-Kanälen über Slack oder Teams
  3. Audit-Logging über Webhook an ein SIEM oder einen HTTP-Endpunkt
  4. Unternehmens-E-Mail-Alarme mit Microsoft 365-OAuth (kein SMTP-Passwort erforderlich)
  • Verwenden Sie Templates, um Nachrichten kurz, menschenlesbar und umsetzbar zu halten
  • Platzieren Sie Trigger oder Rate Limiter vorgelagert, um zu vermeiden, dass Kanäle überflutet werden
  • Bevorzugen Sie für Microsoft 365 die Zertifikat-Auth in der Produktion; rotieren Sie Secrets regelmäßig
  • Verwenden Sie einen Webhook-Kanal beim Senden an interne Systeme, die keine spezifische Provider-Integration benötigen
  • Alert - Zustandsbehaftete Alarmierung mit Dauer und Cooldown
  • Trigger - Benachrichtigungen an einer Bedingung blockieren
  • Rate Limiter - Benachrichtigungsfrequenz begrenzen