Skip to content
Diese Seite wurde mit KI übersetzt und kann Ungenauigkeiten enthalten. Hilf mit, sie auf GitHub zu verbessern.

Benachrichtigungszentrale ​

Die Benachrichtigungszentrale abonniert den internen Ereignisbus von Gately und sendet nach Ihren Regeln Ereignisse wie DDNS-Änderungen, ablaufende Zertifikate, WAF-Blockierungen und Prozessausfälle an Webhook, Telegram, Bark, ntfy, Gotify, Pushover, Discord, Slack, ServerChan, PushPlus, WeCom, DingTalk, Feishu und E-Mail. Die Verwaltung finden Sie in der Seitenleiste unter der Gruppe „System“ → „Benachrichtigungen“.

Funktionsweise ​

  1. Jedes Modul veröffentlicht bei Statusänderungen Ereignisse auf dem prozessinternen Ereignisbus. Das Veröffentlichen blockiert nie die Geschäftslogik.
  2. Erhält die Benachrichtigungszentrale ein Ereignis, prüft sie die Regeln nacheinander: Die Regel ist aktiviert, die Ereignisstufe ist nicht niedriger als die Mindeststufe der Regel, und der Ereignistyp passt zur Ereignisliste der Regel.
  3. Nachdem eine passende Regel die Deduplizierung per Ruhezeit passiert hat, wird die Nachricht an die in der Regel gewählten, aktivierten Kanäle zugestellt. Passt ein Ereignis auf mehrere Regeln, wird an jeden Kanal nur einmal gesendet.
  4. Das Ergebnis jeder Zustellung (Erfolg oder Fehlergrund) wird in „Letzte Zustellungen“ geschrieben, das die letzten 200 Einträge im Arbeitsspeicher hält. Fehler werden zusätzlich ins Modul-Log geschrieben.

Eine einzelne Zustellung läuft nach 45 Sekunden in ein Timeout.

Kanäle ​

Klicken Sie auf „Kanal hinzufügen“, wählen Sie einen Typ und füllen Sie die Felder aus. Jeder Kanal hat einen Namen (Pflicht), eine Bemerkung und einen Aktivierungsschalter. Geheime Felder werden nach dem Speichern nicht erneut angezeigt; lassen Sie sie beim Bearbeiten leer, bleibt der ursprüngliche Wert erhalten.

TypPflichtfelderOptionale Felder
WebhookAnfrage-URLAnfragemethode (Standard GET; GET, POST, PUT oder PATCH), Header (je Zeile ein Key: Value), Body, Erfolgs-Abgleichstext, Timeout (Sekunden, Standard 20), Zertifikatsprüfung überspringen
TelegramBot-Token, Chat-IDAPI-URL (leer lassen für https://api.telegram.org)
BarkDevice KeyServer-URL (leer lassen für https://api.day.app)
WeComBot-URLKeine
DingTalkBot-URLSignatur-Secret (eintragen, wenn beim Bot „Signatur“ aktiviert ist)
FeishuBot-URLSignatur-Secret (eintragen, wenn beim Bot „Signaturprüfung“ aktiviert ist)
E-MailServer, Empfänger sowie mindestens eines von Absender oder BenutzernameVerschlüsselung, Port, Benutzername, Passwort
ntfyTopicServer-URL (leer lassen für https://ntfy.sh), Zugriffstoken
GotifyServer-URL, App-TokenKeine
PushoverApp-Token, User KeyKeine
DiscordWebhook-URLKeine
SlackWebhook-URLKeine
ServerChanSendKeyKeine
PushPlusTokenKeine

URL-Felder brauchen eine vollständige Adresse, die mit http:// oder https:// beginnt.

Template-Variablen für Webhooks ​

In Anfrage-URL und Body lassen sich die folgenden Variablen verwenden, geschrieben als Variablenname in geschweiften Klammern (die Form mit dem Präfix # wird ebenfalls akzeptiert):

VariableInhalt
titleTitel in der Form [Gately] Ereignistitel
messageAusführliche Beschreibung des Ereignisses
textVollständiger Text einschließlich Beschreibung, Quelle, Stufe und Zeit
typeEreignistyp, etwa ddns.changed
sourceEreignisquelle
levelStufe: info, warn oder error
timeZeit im Format RFC 3339

Zusätzliche Felder, die ein Ereignis mitführt (etwa ip und container), lassen sich ebenfalls als Variablen nutzen. Kollidiert ein Name mit der Tabelle oben, hat die Tabelle Vorrang. Variablenwerte in der URL werden URL-escaped.

E-Mail ​

VerschlüsselungWertStandardport
STARTTLSstarttls587
SSL/TLStls465
Keinenone25

Bei Port 0 wird der Standardport der gewählten Verschlüsselung verwendet. Mehrere Empfänger können Sie kommagetrennt eingeben. E-Mails werden als UTF-8-Klartext gesendet. PLAIN-Authentifizierung wird verwendet, wenn der Server AUTH unterstützt und ein Benutzername gesetzt ist; ist der Absender leer, wird der Benutzername verwendet.

Signaturen und Antwortcodes ​

  • DingTalk: Ist ein Signatur-Secret gesetzt, tragen Anfragen automatisch timestamp und sign.
  • Feishu: Ist ein Signatur-Secret gesetzt, trägt der Anfragekörper automatisch timestamp und sign.
  • WeCom, DingTalk, Feishu und Bark prüfen den fachlichen Rückgabecode in der Antwort. Auch ein HTTP 200 mit fachlichem Fehler wird als fehlgeschlagene Zustellung erfasst.

Regeln ​

Klicken Sie auf „Regel hinzufügen“:

FeldBeschreibung
NamePflicht
EreignisseMindestens eines. Wählen Sie bestimmte Ereignistypen, * für alle Ereignisse oder geben Sie einen Platzhalter wie ddns.* ein. Platzhalter verwenden die Syntax von Go path.Match
Mindeststufeinfo, warn oder error; leer bedeutet info. Ereignisse unterhalb dieser Stufe werden nicht gesendet
KanäleMindestens einer
Ruhezeit (Sekunden)Innerhalb einer Regel werden Ereignisse desselben Typs aus derselben Quelle in diesem Zeitraum nur einmal gesendet, Wiederholungen werden verworfen. 0 schaltet die Deduplizierung ab
AktiviertSchalter

TIP

WAF-Blockierungen und Statusänderungen von Upstreams können häufig auftreten. Setzen Sie bei Regeln, die sie abdecken, eine Ruhezeit von 300 Sekunden oder mehr.

Regelvorlagen ​

Beim Anlegen einer Regel können Sie eine Vorlage anklicken, die Ereignisse, Stufe und Ruhezeit vorbelegt; danach wählen Sie die Kanäle und speichern:

VorlageEreignisse
Kritische AusfälleDDNS-Aktualisierung fehlgeschlagen, Zertifikatserneuerung fehlgeschlagen, Upstream ausgefallen, Kindprozess abnormal beendet, Sicherung fehlgeschlagen, Container beendet
ZertifikatsablaufZertifikat läuft bald ab, Erneuerung fehlgeschlagen (Ruhezeit 24 Stunden)
AdressänderungenDDNS-Eintrag aktualisiert, STUN-Adresse geändert
DienstzustandUpstream ausgefallen und wiederhergestellt, Container beendet, Kindprozess beendet
Sicherheit & AnmeldungenAnmeldung fehlgeschlagen, IP gesperrt, Anmeldung erfolgreich, Zugriff auf sensible Inhalte
KonfigurationsänderungenJede Konfigurationsänderung in der Verwaltungsoberfläche

Ereignistypen ​

EreignistypNameStufeAuslöser
ddns.changedDynamisches DNS: Eintrag aktualisiertInfoEine DDNS-Aufgabe hat ihren Eintrag erfolgreich aktualisiert
ddns.failedDynamisches DNS: Aktualisierung fehlgeschlagenFehlerEine DDNS-Aufgabe konnte nicht aktualisieren
stun.changedSTUN: Traversal-Adresse geändertInfoDie Traversal-Adresse einer STUN-Regel hat sich geändert
ssl.expiringZertifikat: läuft bald abWarnungWeniger als 7 Tage Gültigkeit übrig; pro Zertifikat wird höchstens alle 24 Stunden erinnert
ssl.renew_failedZertifikat: Erneuerung fehlgeschlagenFehlerAusstellung oder Erneuerung des Zertifikats ist fehlgeschlagen
waf.blockedWAF: Anfrage blockiertWarnungDie WAF hat eine Anfrage blockiert, mit den Feldern ip, host und path
upstream.downReverse Proxy: Upstream ausgefallenFehlerEin Backend eines Web-Dienstes wurde als nicht verfügbar eingestuft
upstream.upReverse Proxy: Upstream wiederhergestelltInfoEin nicht verfügbares Backend ist wieder erreichbar
docker.exitedDocker: Container beendetWarnung oder FehlerEin Container wurde mit einem Exit-Code ungleich 0 beendet (Warnung) oder wegen Speichermangels beendet (Fehler)
process.exitedKindprozess abnormal beendetFehlerEin von Gately verwalteter Kindprozess wurde abnormal beendet und wird automatisch neu gestartet; die Quelle ist der Log-Name dieses Prozesses
backup.doneSicherung: abgeschlossenInfoEine geplante oder manuelle Sicherung war für alle Ziele erfolgreich; siehe Konfigurationssicherung
backup.failedSicherung: fehlgeschlagenFehlerDas Packen der Sicherung oder das Schreiben auf irgendein Ziel ist fehlgeschlagen
auth.failedAuthentifizierung: wiederholte FehlschlägeWarnungEine Anmeldung an der Verwaltungsoberfläche ist fehlgeschlagen, mit dem Feld ip
auth.bannedAuthentifizierung: IP gesperrtWarnungWiederholte Authentifizierungsfehler bei Web-Diensten haben eine automatische Sperre ausgelöst
login.successVerwaltungsoberfläche: Anmeldung erfolgreichInfoEine Anmeldung an der Verwaltungsoberfläche war erfolgreich, mit den Feldern ip und user
audit.changeVerwaltungsoberfläche: Konfiguration geändertInfoJede ändernde Aktion in der Verwaltungsoberfläche, mit den Feldern actor, ip, method und path; siehe Audit und Konfigurationsverlauf
audit.accessVerwaltungsoberfläche: Zugriff auf sensible InhalteWarnungHerunterladen von Sicherungen, Diagnosepaketen oder privaten Zertifikatsschlüsseln, Öffnen eines Terminals und Ähnliches; Felder wie oben
notify.testTestbenachrichtigungInfoWird von der Schaltfläche „Testen“ des Kanals erzeugt und nimmt nicht am Regelabgleich teil

Test senden ​

Die Schaltfläche „Testen“ auf der Kanalkarte sendet eine Nachricht mit dem Titel „Testbenachrichtigung“ direkt an diesen Kanal. Sie umgeht die Regeln und funktioniert auch bei einem nicht aktivierten Kanal. Bei Erfolg erscheint „Testbenachrichtigung gesendet“, bei einem Fehler der konkrete Fehler. Testergebnisse erscheinen ebenfalls in „Letzte Zustellungen“, mit „Test“ in der Regelspalte.

Die zugehörige API ist POST /api/notify/channels/{key}/test, aufrufbar mit dem Scope notify:write eines API-Tokens.

Veröffentlicht unter der Apache-2.0-Lizenz.