1. Einführung
Eventarc vereinfacht die Verbindung von Google Cloud-Diensten mit Ereignissen aus einer Vielzahl von Quellen. Damit können Sie ereignisgesteuerte Architekturen erstellen, in denen Mikrodienste lose miteinander verknüpft und verteilt sind. Außerdem übernimmt er die Ereignisaufnahme, -bereitstellung, -sicherheit, -autorisierung und -behebung für Sie, was die Agilität der Entwickler und die Ausfallsicherheit von Anwendungen verbessert.
Datadog ist eine Monitoring- und Sicherheitsplattform für Cloud-Anwendungen. Es führt End-to-End-Traces, -Messwerte und -Logs zusammen, um Ihre Anwendungen, Infrastruktur und Dienste von Drittanbietern zu beobachten.
In diesem ersten Codelab erfahren Sie, wie Sie mit Eventarc eine einfache Datadog-Monitoring-Benachrichtigung an Google Cloud weiterleiten.
Lerninhalte
- So ermitteln Sie den Datadog-Anbieter.
- Hier erfahren Sie, wie Sie einen Kanal für den Datadog-Anbieter einrichten.
- Hier erfahren Sie, wie Sie einen Workflow zum Protokollieren von Ereignissen erstellen.
- So erstellen Sie einen Eventarc-Trigger mit dem Kanal.
- So erstellen Sie einen Datadog-Monitor.
- So testen Sie den Datadog-Monitor, den Eventarc-Trigger und den Workflow.
2. Einrichtung und Anforderungen
Umgebung für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.
- Der Projektname ist der Anzeigename für die Projektteilnehmer. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und ist unveränderlich. Sie kann nach dem Festlegen nicht mehr geändert werden. Die Cloud Console generiert automatisch einen eindeutigen String. ist Ihnen meist egal, was es ist. In den meisten Codelabs musst du auf die Projekt-ID verweisen, die üblicherweise als
PROJECT_ID
gekennzeichnet ist. Wenn Ihnen die generierte ID nicht gefällt, können Sie eine weitere zufällige ID erstellen. Alternativ können Sie einen eigenen verwenden und nachsehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information gibt es noch einen dritten Wert, die Projektnummer, die von manchen APIs verwendet wird. Weitere Informationen zu allen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Dieses Codelab sollte ohne großen Aufwand betrieben werden. Wenn Sie Ressourcen herunterfahren möchten, um über diese Anleitung hinaus keine Kosten zu verursachen, können Sie die von Ihnen erstellten Ressourcen oder das gesamte Projekt löschen. Neue Google Cloud-Nutzer haben Anspruch auf eine kostenlose Testversion von 300$.
Cloud Shell starten
Sie können Google Cloud zwar von Ihrem Laptop aus aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:
Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment. Wenn er abgeschlossen ist, sollten Sie in etwa Folgendes sehen:
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, wodurch die Netzwerkleistung und Authentifizierung erheblich verbessert werden. Alle Arbeiten in diesem Codelab können in einem Browser erledigt werden. Sie müssen nichts installieren.
gcloud einrichten
Legen Sie in Cloud Shell Ihre Projekt-ID fest und speichern Sie sie als Variable PROJECT_ID
.
Legen Sie außerdem die Variable REGION
auf us-central1
fest. Dies ist die Region, in der Sie später Ressourcen erstellen.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
APIs aktivieren
Aktivieren Sie alle erforderlichen Dienste:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Datadog-Anbieter kennenlernen
Ein Eventarc-Anbieter ist ein Dienst oder eine Entität, die Ereignisse direkt an Google Cloud senden und dann an Ihr Projekt weiterleiten kann. Drittanbieter wie Datadog sind Nicht-Google Cloud-Anbieter, die über Eventarc in Google Cloud eingebunden sind.
Führen Sie in Cloud Shell den folgenden Befehl aus, um die Liste von Google Cloud und Drittanbietern aufzurufen:
gcloud eventarc providers list
Hier sind Google Cloud und Drittanbieter sowie die Standorte aufgeführt, an denen sie verfügbar sind:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Mit dem folgenden Befehl können Sie die Liste auf Drittanbieter beschränken:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Datadog sollte in der Liste angezeigt werden:
NAME: datadog LOCATION: us-central1
Sie können den Datadog-Anbieter auch beschreiben, um die unterstützten Ereignisse zu sehen:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Kanal einrichten
Sie müssen einen Kanal einrichten, um Ihr Projekt in einen Anbieter einzubinden. Dazu gehört das Erstellen eines Kanals, das Abrufen von Kanaldetails und das Senden dieser Details an den Anbieter. Sobald der Anbieter die Verbindung mit dem Kanal initialisiert hat, kann er Ereignisse an Ihr Projekt senden.
Kanal erstellen
Sie können mit gcloud
einen Kanal für den Datadog-Anbieter erstellen:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Sie können ihn auch in der Google Cloud Console auf der Eventarc-Seite im Bereich „Channels“ erstellen:
Kanaldetails abrufen
Nachdem der Kanal erstellt wurde, rufen Sie die Details des Kanals von gcloud
ab:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Die Ausgabe sollte in etwa so aussehen:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Analog können Sie den Kanal in der Google Cloud Console sehen:
Der Kanalstatus gibt den Status des Kanals an. Mögliche Werte:
PENDING
: Der Kanal wurde erstellt und es ist ein Aktivierungstoken verfügbar, um eine Verbindung mit dem Anbieter herzustellen. Um den Status des Kanals vonPENDING
inACTIVE
zu ändern, muss das Token an den Anbieter weitergegeben werden und zur Verbindung des Kanals innerhalb von 24 Stunden nach der Erstellung des Kanals verwendet werden.ACTIVE
: Der Kanal wurde mit dem Anbieter verbunden. EinACTIVE
-Kanal ist bereit, Ereignisse vom Anbieter zu empfangen und weiterzuleiten.INACTIVE
: Der Kanal kann weder Ereignisse empfangen noch reaktiviert werden. Der Anbieter ist entweder von diesem Kanal getrennt oder das Kanalaktivierungstoken ist abgelaufen und der Anbieter ist nicht verbunden. Um eine Verbindung zu einem Anbieter wiederherzustellen, müssen Sie einen neuen Kanal für den Anbieter erstellen.
Ein Aktivierungstoken ist ein einmaliges, zeitlich begrenztes Token, mit dem eine Verbindung zwischen einem Anbieter und dem Projekt eines Abonnenten hergestellt wird. Das Token kann nur von einem bestimmten Anbieter verwendet werden, der bei der Kanalerstellung ausgewählt wurde. Das Token ist nach der Erstellung des Kanals 24 Stunden lang gültig. Nach 24 Stunden wird der Kanal zu INACTIVE
.
Kanaldetails an den Anbieter senden
Sie müssen die folgenden Kanaldetails an den Datadog-Anbieter senden:
- Kanalname (z. B.
projects/project-id/locations/us-central1/channels/datadog-channel
) - Aktivierungstoken (z. B.
so5g4Kdasda7y2MSasdaGn8njB2
)
Melden Sie sich in Datadog an, rufen Sie die Seite „Integrationen“ auf und prüfen Sie, ob die Google Eventarc-Integration installiert ist:
Geben Sie im Konfigurationsabschnitt von Google Eventarc den vollständigen Kanalnamen und das Aktivierungstoken ein:
Der Kanal sollte jetzt in der Liste der Kanäle zu sehen sein und nach einigen Sekunden auch in der Google Cloud Console aktiv sein:
Jetzt kannst du den Kanal verwenden.
5. Workflow erstellen
Sie benötigen ein Ziel in Google Cloud, um Ereignisse vom Anbieter zu empfangen. Eventarc unterstützt eine Reihe von Ereigniszielen wie Cloud Run, Workflows und Kubernetes-Dienste. Stellen Sie in diesem Fall einen Workflow bereit, um die empfangenen Ereignisse einfach zu protokollieren.
Erstellen Sie eine workflow-datadog1.yaml
-Datei mit folgendem Inhalt:
main: params: [event] steps: - logStep: call: sys.log args: data: ${event}
Der Workflow empfängt ein Ereignis als Parameter. Dieses Ereignis stammt aus dem Datadog-Monitoring über Eventarc. Nach dem Empfang des Ereignisses wird es im Workflow einfach protokolliert.
Stellen Sie den Workflow bereit:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Der Workflow wurde bereitgestellt, wird aber noch nicht ausgeführt. Sie wird von einem Eventarc-Trigger ausgeführt, wenn eine Datadog-Benachrichtigung empfangen wird.
6. Eventarc-Trigger erstellen
Sie können jetzt Ereignisse vom Datadog-Anbieter über einen Eventarc-Trigger mit Workflows verbinden.
Dienstkonto konfigurieren
Zum Erstellen eines Triggers benötigen Sie ein Dienstkonto mit der Rolle eventarc.eventReceiver
. Sie können entweder ein dediziertes Dienstkonto erstellen oder das Compute-Standarddienstkonto verwenden.
Verwenden Sie der Einfachheit halber das Compute-Standarddienstkonto und gewähren Sie die Rolle eventarc.eventReceiver
:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role roles/eventarc.eventReceiver
Trigger erstellen
Erstellen Sie einen Trigger mit dem Datadog-Kanal, dem Ereignistyp und einem Workflowziel:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sie können sich die Trigger auflisten lassen, um zu sehen, ob der neu erstellte Trigger aktiv ist:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Datadog-Monitor erstellen
Sie erstellen nun einen Datadog-Monitor und verbinden ihn mit Eventarc.
Es ist ein Monitor vom Typ „Hello World“ mit Standardwerten. Sie lösen es manuell aus, um die Monitoring-Benachrichtigungen zu generieren, die wiederum ein Eventarc-Ereignis in Google Cloud generieren.
Melden Sie sich bei Datadog an, um einen Monitor in Datadog zu erstellen. Bewegen Sie den Mauszeiger im Hauptmenü auf Monitors
und klicken Sie im Untermenü auf New Monitor
. Es gibt viele Monitortypen. Wählen Sie den Monitortyp Metric
aus.
Übernehmen Sie auf der Seite New Monitor
die Standardwerte für die Schritte 1 und 2.
- Legen Sie in Schritt 3
Alert threshold
auf „1“ fest. - Legen Sie in Schritt 4
Test monitor for Eventarc
als Monitornamen undNotify your team
auf@eventarc_<your-project-id>_<your-region>_<your-channel-name>
fest.
Lassen Sie die Monitorseite für den nächsten Schritt geöffnet, in dem Sie den Monitor testen können.
8. Überwachung und Trigger testen
Zum Testen des Datadog-Monitors und des Eventarc-Triggers lösen Sie den Monitor manuell aus.
Klicken Sie unten auf der Seite zur Monitorerstellung auf die Schaltfläche Test Notifications
:
Klicken Sie dann auf die Schaltfläche Run Test
:
Dadurch sollte der Statusübergang im Monitor simuliert und ein Eventarc-Ereignis ausgelöst werden.
Prüfen Sie den Workflow „workflow-datadog1
“. Es sollte eine neue Ausführung angezeigt werden:
Überprüfen Sie die Details der Ausführung. Sie sollten den aus der Monitoring-Benachrichtigung generierten Datadog-Ereignistyp datadog.v1.alert
in der Eingabe des Workflows und auch in den Logs sehen:
9. Glückwunsch
Glückwunsch, du hast das Codelab abgeschlossen. Im zweiten Codelab erfahren Sie, wie Sie mit Workflows auf Datadog-Monitoring-Benachrichtigungen reagieren.
Behandelte Themen
- So ermitteln Sie den Datadog-Anbieter.
- Hier erfahren Sie, wie Sie einen Kanal für den Datadog-Anbieter einrichten.
- Hier erfahren Sie, wie Sie einen Workflow zum Protokollieren von Ereignissen erstellen.
- So erstellen Sie einen Eventarc-Trigger mit dem Kanal.
- So erstellen Sie einen Datadog-Monitor.
- So testen Sie den Datadog-Monitor, den Eventarc-Trigger und den Workflow.