In diesem Dokument wird beschrieben, wie Sie Benachrichtigungskanäle mithilfe von Clientbibliotheken oder der Google Cloud CLI erstellen und verwalten, die beide die Cloud Monitoring API aufrufen. Cloud Monitoring verwendet Benachrichtigungskanäle, um Sie oder Ihr Team auf Abruf zu informieren, wenn die Bedingung einer Benachrichtigungsrichtlinie erfüllt ist. 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 mit der Google Cloud Console finden Sie unter Benachrichtigungskanäle erstellen und verwalten.
Die in diesem Dokument verwendeten Codebeispiele werden aus dem Beispiel der Benachrichtigungsrichtlinien-API extrahiert, das 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. Es unterstützt auch Vorgänge zum Verwalten des Felds verificationStatus
eines Kanals:
- 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 Bearbeiter von Monitoring-Benachrichtigungskanälen (roles/monitoring.notificationChannelEditor
) für Ihr Projekt zu gewähren, um die erforderlichen Berechtigungen zum Ansehen und Konfigurieren von Benachrichtigungskanälen mithilfe der Cloud Monitoring API zu erhalten.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie 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.
Arten von Benachrichtigungskanälen 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. Mit dem folgenden Befehl können Sie die verfügbaren Kanaltypen abrufen, die allgemein unter Benachrichtigungskanäle erstellen und verwalten beschrieben werden:
$ gcloud beta monitoring channel-descriptors list --format='value(type)'
campfire
email
google_chat
hipchat
pagerduty
pubsub
slack
sms
webhook_basicauth
webhook_tokenauth
Wenn Ihr bevorzugter Benachrichtigungskanal nicht unterstützt wird, sollten Sie eine Pipeline erstellen, die Ihre Benachrichtigungen an Pub/Sub sendet. Ein Python-Beispiel, das Cold verwendet, finden Sie unter Benutzerdefinierte Benachrichtigungen mit Cloud Monitoring und Cloud Run erstellen. Weitere Beispiele finden Sie im Git-Repository für Cloud-Benachrichtigungen-Benachrichtigungen.
Verwenden Sie die Methode notificationChannelDescriptors.list
, um alle Kanaldeskriptoren in einem Google Cloud-Projekt abzurufen.
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
Verwenden Sie den Befehl gcloud beta monitoring channel-descriptors list
, um alle Benachrichtigungskanal-Deskriptoren in einem Google Cloud-Projekt aufzulisten:
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 mit der Google Cloud CLI Benachrichtigungskanäle für Ihre Google Cloud-Projekte aus JSON- oder YAML-Dateien erstellen und programmatisch 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 die Labels für einen bestimmten Deskriptor sehen möchten, rufen Sie den Deskriptor mit dem Befehl gcloud beta monitoring channel-descriptors describe
ab, der unter Arten 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. Der Erhalt von Anmeldedaten kann über eine Seite zum Generieren von API-Schlüsseln auf der Website des Anbieters oder den Abschluss eines OAuth-Anmeldevorgangs beim Anbieter erfolgen. 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-Anwendung:
- Wenn Sie noch keine Slack-Anwendung haben, folgen Sie der Slack-Referenzdokumentation, um eine zu erstellen und in Ihrem Arbeitsbereich zu installieren.
- Konfigurieren Sie die Slack-Anwendung mit OAuth-Bereichen für
chat:write
undchat:write.public
. - Kopieren Sie das OAuth-Token des Bot-Nutzers der Anwendung.
Erstellen Sie eine Datei, die die Konfiguration Ihres Benachrichtigungskanals definiert. Fügen Sie ein Label hinzu, bei dem der Schlüssel
auth_token
den Wert des OAuth-Tokens des Bot-Nutzers Ihrer Slack-Anwendung enthält. 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
Verwenden Sie die Methode notificationChannels.list
, um alle Benachrichtigungskanäle in einem Google Cloud-Projekt abzurufen. 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
Verwenden Sie den Befehl gcloud beta monitoring channels list
, um alle Benachrichtigungskanäle in einem Google Cloud-Projekt aufzulisten:
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: [email protected] 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
Verwenden Sie zum Löschen eines Benachrichtigungskanals aus einem Google Cloud-Projekt die Methode notificationChannels.delete
und geben Sie 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 Sie versuchen, einen Kanal zu löschen, auf den eine Benachrichtigungsrichtlinie verweist, wird der Kanal 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
. Mit dieser Option 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
statt 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.
Protokolle des Benachrichtigungskanals ansehen
Im Log-Explorer können Sie Fehler des Benachrichtigungskanals ansehen:
-
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 Monitoring ist.
Geben Sie Ihre Abfrage ein und führen Sie sie aus. Informationen zu Abfragen speziell für Benachrichtigungskanalfehler finden Sie unter Cloud Monitoring-Abfragen.