In diesem Dokument wird beschrieben, wie Sie Benachrichtigungskanäle mithilfe von Clientbibliotheken oder der Google Cloud CLI erstellen und verwalten. Beide Methoden rufen die Cloud Monitoring API auf. Cloud Monitoring verwendet Benachrichtigungskanäle, um Sie oder Ihr Bereitschaftsteam zu benachrichtigen, wenn die Bedingung einer Benachrichtigungsrichtlinie erfüllt wird. Es gibt mehrere verfügbare Kanaltypen. Jeder Typ wird in einem Benachrichtigungskanal-Deskriptor beschrieben. Ein Benachrichtigungskanal eines bestimmten Typs ist eine Instanz des Deskriptors für diesen Typ. Ihre Benachrichtigungsrichtlinien enthalten Verweise auf die Benachrichtigungskanäle, die als Benachrichtigungspfade verwendet werden können.
Ein Benachrichtigungskanal muss vorhanden sein, bevor er in einer Benachrichtigungsrichtlinie verwendet werden kann. Die Benachrichtigungskanal-Deskriptoren werden Ihnen zur Verfügung gestellt. Allerdings müssen Sie die Kanäle erstellen, bevor sie verwendet werden können.
Informationen zum Konfigurieren von Benachrichtigungskanälen mithilfe der Google Cloud Console finden Sie unter Benachrichtigungskanäle erstellen und verwalten.
Die in diesem Dokument verwendeten Codebeispiele wurden aus dem Beispiel der API für die Benachrichtigungsrichtlinie extrahiert, die unter Beispiel: Sicherung und Wiederherstellung beschrieben wird.
Informationen zur API
Die Ressource NotificationChannel
unterstützt Vorgänge, mit denen Sie Ihre Benachrichtigungskanäle verwalten können. Außerdem werden Vorgänge zum Verwalten des Felds verificationStatus
eines Kanals unterstützt:
- Einen Bestätigungscode senden
- Einen Code generieren, mit dem der Verifizierungsstatus eines verifizierten Kanals auf andere identische Kanäle in demselben oder einem neuen Projekt kopiert wird
- Den Kanal anhand des von den beiden vorherigen Vorgängen erstellten Codes verifizieren
Weitere Informationen finden Sie in den Referenzdokumenten zu notificationChannels
.
Hinweise
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Monitoring NotificationChannel Editor (roles/monitoring.notificationChannelEditor
) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen und Konfigurieren von Benachrichtigungskanälen mit der Cloud Monitoring API benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Weitere Informationen zu Cloud Monitoring-Rollen finden Sie unter Zugriff mit Identity and Access Management steuern.
Benachrichtigungskanaltypen auflisten
Monitoring bietet eine Reihe von integrierten Benachrichtigungskanaltypen. Die einzelnen Typen werden in NotificationChannelDescriptor
beschrieben.
Diese Deskriptoren haben ein type
-Feld. Der Wert dieses Felds fungiert beim Erstellen von Instanzen dieses Kanaltyps als Kennzeichnung dafür. Geben Sie den folgenden Befehl ein, um eine Liste der Kanaltypen abzurufen, die Sie mit der Cloud Monitoring API oder der Google Cloud CLI erstellen können:
$ gcloud beta monitoring channel-descriptors list --format='value(type)'
campfire
email
google_chat
hipchat
pagerduty
pubsub
slack
sms
webhook_basicauth
webhook_tokenauth
Weitere Informationen zu Benachrichtigungskanälen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.
Wenn Ihr bevorzugter Benachrichtigungskanal nicht unterstützt wird, können Sie eine Pipeline erstellen, über die Ihre Benachrichtigungen an Pub/Sub gesendet werden. Ein Python-Beispiel mit Flask finden Sie unter Benutzerdefinierte Benachrichtigungen mit Cloud Monitoring und Cloud Run erstellen. Weitere Beispiele finden Sie im Git-Repository für cloud-alerting-notification-forwarding.
Mit der Methode notificationChannelDescriptors.list
können Sie alle Kanaldeskriptoren in einem Google Cloud-Projekt abrufen.
Die abgerufenen Deskriptoren sind schreibgeschützt.
Wenn Sie nach einem bestimmten Deskriptor suchen und dessen Namen kennen, können Sie die Methode notificationChannelDescriptors.get
verwenden, um nur diesen Kanaldeskriptor abzurufen. Der Name eines Kanaldeskriptors hat das Format projects/[PROJECT_ID]/notificationChannelDescriptors/[CHANNEL_TYPE]
. [CHANNEL_TYPE]
muss einem der oben aufgeführten Typen entsprechen, zum Beispiel:
projects/[PROJECT_ID]/notificationChannelDescriptors/email
gcloud
Mit dem Befehl gcloud beta monitoring channel-descriptors list
können Sie alle Deskriptoren der Benachrichtigungskanäle in einem Google Cloud-Projekt auflisten:
gcloud beta monitoring channel-descriptors list
Bei Erfolg liefert der list
-Befehl eine Liste aller Kanalbeschreibungen im angegebenen Projekt. Der Kanaldeskriptor email
wird in der Liste zum Beispiel so angezeigt:
--- description: A channel that sends notifications via email. displayName: Email labels: - description: An address to send email. key: email_address name: projects/[PROJECT_ID]/notificationChannelDescriptors/email type: email ---
Alle Kanaldeskriptoren enthalten folgende Felder:
name
: Der vollständig qualifizierte Ressourcenname des Kanaldeskriptorstype
: Der Teil des Namens, der den Typ des Kanals angibtdisplayName
: Eine Beschreibung des Feldstype
zu Anzeigezweckendescription
: Eine kurze Beschreibung des Kanalslabels
: Eine Reihe von Feldern, die für einen Kanaltyp spezifisch sind. Jeder Kanaltyp hat seine eigenen Labels.
Wenn ein Kanal erstellt wird, erhält er außerdem ein enabled
-Feld mit dem Wert true
.
Wenn Sie hingegen einen einzelnen Kanaldeskriptor abrufen möchten, verwenden Sie stattdessen gcloud beta monitoring
channel-descriptors describe
und geben Sie den Namen des Kanaldeskriptors an. Sie müssen den vollständig qualifizierten Namen nicht angeben. Mit beiden Befehlen wird beispielsweise die obige Liste zurückgegeben:
gcloud beta monitoring channel-descriptors describe email
gcloud beta monitoring channel-descriptors describe projects/[PROJECT_ID]/notificationChannelDescriptors/email
Weitere Informationen finden Sie in den Referenzen gcloud beta monitoring channel-descriptors
list
und describe
. Der Befehl describe
entspricht der Methode notificationChannelDescriptors.get
in der API.
Benachrichtigungskanal erstellen
Sie können Benachrichtigungskanäle für Ihre Google Cloud-Projekte mithilfe der Google Cloud CLI aus JSON- oder YAML-Dateien und programmgesteuert erstellen.
Sie müssen in seinem Deskriptor Werte für die Felder angeben, um einen Benachrichtigungskanal zu erstellen. Die meisten davon, wie type
, sind in allen Deskriptoren von Benachrichtigungskanälen üblich. Siehe notificationChannelDescriptors
.
Jeder Deskriptor verfügt auch über eine Reihe von Labels, die sich je nach Deskriptor unterscheiden. Wenn Sie den Satz Labels für einen bestimmten Deskriptor ansehen möchten, rufen Sie den Deskriptor mit dem Befehl gcloud beta monitoring channel-descriptors describe
ab, der unter Typen von Benachrichtigungskanälen auflisten beschrieben wird.
Wenn Sie beispielsweise den Kanaldeskriptor email
abrufen, wird ein einzelnes Label angezeigt:
labels: - description: An address to send email. key: email_address
Der Kanaldeskriptor pubsub
enthält auch ein einzelnes Label, das das Pub/Sub-Thema identifiziert. Kanäle können jedoch mehrere Labels enthalten. Der Kanaldeskriptor slack
hat beispielsweise zwei Labels:
labels: - description: A permanent authentication token provided by Slack. This field is obfuscated by returning only a few characters of the key when fetched. key: auth_token - description: The Slack channel to which to post notifications. key: channel_name
Beim Abrufen des Kanaldeskriptors webhook_basicauth
werden mehrere Labels angezeigt:
labels: - description: The password. The field is obfuscated when the channel is fetched. key: password - description: The public URL to which to publish the webhook. key: url - description: The username. key: username
Unabhängig davon, ob Sie einen neuen Kanal programmatisch oder über die Befehlszeile erstellen, muss der Wert von type
in Ihrer Spezifikation mit dem Feld type
im entsprechenden Deskriptor des Benachrichtigungskanals übereinstimmen. Erforderliche Labelschlüssel müssen auch mit denen im Kanaldeskriptor übereinstimmen.
Einige Labels entsprechen Anmeldedaten, die zur Authentifizierung beim Dienstanbieter verwendet werden. Wenn Sie einen Kanal erstellen, müssen Sie die Werte für diese Labels vom Dienstanbieter beziehen. Es kann sein, dass Sie zum Abrufen der Anmeldedaten eine API-Schlüsselerstellungsseite auf der Website des Dienstanbieters aufrufen oder einen OAuth-Anmeldungsablauf mit dem Anbieter vereinbaren müssen. Wie Sie solche Anmeldedaten abrufen können, hängt vom jeweiligen Dienstanbieter ab.
Das folgende Beispiel zeigt die Spezifikation eines neuen pubsub
-Benachrichtigungskanals in JSON:
{ "type": "pubsub", "displayName": "Notifications", "description": "Pub/Sub channel for notifications", "labels": { "topic": "projects/[PROJECT_ID]/topics/notificationTopic" }, }
Der type
-Wert (pubsub
) und der einzelne Labelschlüssel (topic
) entsprechen den Feldern type
und labels.key
des betreffenden Kanaldeskriptors.
Kanäle sind standardmäßig aktiviert. Wenn Sie einen inaktiven Kanal erstellen möchten, können Sie das Feld enabled
mit dem Wert false
einschließen.
Die folgenden Beispiele veranschaulichen das Erstellen von Benachrichtigungskanälen.
gcloud
Verwenden Sie den Befehl gcloud beta monitoring
channels create
, um einen Benachrichtigungskanal in einem Google Cloud-Projekt zu erstellen. Zum Laden des Kanals aus einer Datei verwenden Sie das Flag --channel-content-from-file
, um die Datei anzugeben.
Im folgenden Beispiel wird ein neuer Pub/Sub-Kanal aus der pubsub-channel.json
-Datei erstellt:
gcloud beta monitoring channels create --channel-content-from-file="pubsub-channel.json"
Bei Erfolg gibt dieser Befehl den Namen des neuen Kanals zurück, zum Beispiel:
Created notification channel [projects/[PROJECT_ID]/notificationChannels/1355376463305411567].
Weitere Informationen finden Sie in der Referenz gcloud beta monitoring channels create
.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Beispiel: Slack-Benachrichtigungskanal erstellen
So konfigurieren Sie einen Benachrichtigungskanal für eine Slack-App:
Konfigurieren Sie Ihre Slack-App:
- Wenn Sie noch keine Slack-App haben, folgen Sie der Slack-Referenzdokumentation, um eine zu erstellen und in Ihrem Arbeitsbereich zu installieren.
- Konfigurieren Sie Ihre Slack-App mit OAuth-Bereichen für
chat:write
undchat:write.public
. - Kopieren Sie das OAuth-Token des Bot-Nutzers der App.
Erstellen Sie eine Datei, in der die Konfiguration Ihres Benachrichtigungskanals definiert ist. Fügen Sie ein Label ein, bei dem der Schlüssel
auth_token
den Wert des OAuth-Tokens des Bot-Nutzers Ihrer Slack-App hat. Beispiel:{ "description": "A Slack notification channel", "displayName": "Slack", "type": "slack", "enabled": true, "labels": { "auth_token": "OAUTH_TOKEN_VALUE", "channel_name": "SLACK_CHANNEL_NAME" } }
Führen Sie den folgenden Befehl aus, um den Benachrichtigungskanal zu erstellen:
gcloud beta monitoring channels create --channel-content-from-file="FILE_NAME"
Benachrichtigungskanäle in einem Projekt auflisten
Mit der Methode notificationChannels.list
können Sie alle Benachrichtigungskanäle in einem Google Cloud-Projekt abrufen. Diese Methode unterstützt auch die Optionen filter
und orderBy
zum Eingrenzen und Sortieren der Ergebnisse. Weitere Informationen finden Sie unter Sortieren und Filtern.
Wenn Sie einen bestimmten Kanal suchen und dessen Namen kennen, können Sie mit der Methode notificationChannels.get
gezielt diesen Kanal abrufen. Der Name eines Kanals hat das Format projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
, z. B.:
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Wenn Sie einen Kanal abrufen, werden aus Sicherheitsgründen unter Umständen vertrauliche Werte wie Authentifizierungstoken und API-Schlüssel verschleiert. Wenn Sie einen neuen Kanal durch Kopieren eines vorhandenen erstellen, müssen alle verschleierten Werte korrigiert werden.
gcloud
Wenn Sie alle Benachrichtigungskanäle in einem Google Cloud-Projekt auflisten möchten, verwenden Sie den Befehl gcloud beta monitoring channels list
:
gcloud beta monitoring channels list
Bei Erfolg liefert der list
-Befehl eine Liste aller Kanäle im angegebenen Projekt. Der obige Befehl könnte beispielsweise eine Liste mit den folgenden Einträgen zurückgeben:
--- description: E-mail channel created by gcloud as a test displayName: test e-mail channel enabled: false labels: email_address: user@example.com name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: email --- description: Pub/Sub channel for notifications displayName: Notifications enabled: true labels: topic: projects/[PROJECT_ID]/topics/notificationTopic name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567 type: pubsub
Wenn Sie hingegen einen einzelnen Kanal abrufen möchten, verwenden Sie stattdessen gcloud beta monitoring
channels describe
und geben Sie den Namen des Kanals an.
Dieser Befehl gibt beispielsweise den oben angezeigten Pub/Sub-Kanal zurück:
gcloud beta monitoring channels describe projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Weitere Informationen finden Sie in den Referenzen gcloud beta monitoring channels list
und describe
. Der Befehl describe
entspricht der Methode notificationChannels.get
in der API.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Benachrichtigungskanal aus einem Projekt löschen
Sie können einen Benachrichtigungskanal aus einem Google Cloud-Projekt löschen. Verwenden Sie dazu die Methode notificationChannels.delete
und geben Sie dabei den Namen des zu löschenden Benachrichtigungskanals an. Er entspricht dem Wert des Felds name
und nicht dem displayName
in der Instanz NotificationChannel
.
Der Name eines Kanals hat das Format projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
, z. B.:
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Wenn versucht wird, einen Kanal zu löschen, auf den von einer Benachrichtigungsrichtlinie verwiesen wird, wird er standardmäßig nicht gelöscht. Wenn Sie das Entfernen von Verweisen aus Benachrichtigungsrichtlinien erzwingen und den Kanal löschen möchten, setzen Sie die Option force
auf true
. Dadurch wird der Kanal automatisch aus allen Verweisrichtlinien entfernt.
gcloud
Verwenden Sie zum Löschen eines Benachrichtigungskanals gcloud beta monitoring channels
delete
und geben Sie den Namen des zu löschenden Kanals an. Mit dem folgenden Befehl wird beispielsweise der in einem anderen Beispiel erstellte Kanal email
gelöscht:
gcloud beta monitoring channels delete projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Weitere Informationen finden Sie in der Referenz gcloud beta monitoring channels delete
.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Benachrichtigungskanal ändern
Verwenden Sie zum Ändern eines Benachrichtigungskanals die Methode notificationChannels.patch
(in der REST API).
In anderen API-Implementierungen und der Google Cloud CLI wird dies als update
anstelle von patch
bezeichnet.
Ein Updatevorgang kann den vorhandenen Kanal vollständig ersetzen oder eine Teilmenge von Feldern ändern. Zum Beispiel können Sie den Kanal aktivieren und deaktivieren. Das Deaktivieren eines Kanals verhindert die Zustellung von Benachrichtigungen an den Kanal. Das Deaktivieren eines Kanals ist in der Regel unkomplizierter als das Entfernen des Kanals aus den Benachrichtigungsrichtlinien, die auf den Kanal verweisen, wenn die Änderung vorübergehend sein soll.
gcloud
Wenn Sie einen deaktivierten Benachrichtigungskanal aktivieren möchten, verwenden Sie den Befehl gcloud beta monitoring channels update
und geben Sie das Flag --enabled
an. Mit dem folgenden Befehl wird der Benachrichtigungskanal email
, der in einem vorstehenden Beispiel im deaktivierten Status erstellt wurde, aktiviert:
gcloud beta monitoring channels update projects/[PROJECT_ID]/notificationChannels/1355376463305411567 --enabled
Wenn Sie eine Richtlinie deaktivieren möchten, verwenden Sie denselben Befehl und geben Sie das Flag --no-enabled
an.
Weitere Informationen finden Sie in der Referenz zu gcloud beta monitoring channels update
. Der Befehl update
entspricht der Methode notificationChannels.patch
in der REST API.
C#
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Monitoring Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Logs für Benachrichtigungskanäle ansehen
Im Log-Explorer können Sie Fehler für Benachrichtigungskanäle aufrufen:
-
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Geben Sie die Abfrage ein und führen Sie sie aus. Informationen zu Abfragen, die sich speziell auf Fehler bei Benachrichtigungskanälen beziehen, finden Sie unter Cloud Monitoring-Abfragen.