In diesem Codelab erfahren Sie, wie Sie mit Stackdriver Leistungsmesswerte und Logs für Google Cloud-Dienste und VMs überwachen und prüfen können.
In diesem Codelab
- Machen Sie sich mit der Stackdriver-Startseite vertraut.
- Dashboards und Diagramme verstehen
- Verfügbarkeitsdiagnose erstellen
- Einfache Benachrichtigungsrichtlinie erstellen
- Mit Benachrichtigungsereignissen arbeiten
- In der Loganzeige navigieren
Welche Erfahrung haben Sie mit Stackdriver?
Einrichtung der Umgebung für Selbstlernkurse
Wenn Sie noch kein Google-Konto (Gmail oder Google Apps) haben, müssen Sie eins erstellen.
Melden Sie sich in der Google Cloud Console (console.developers.google.com) an und erstellen Sie ein neues Projekt:
Denken Sie daran, dass die Projekt-ID für alle Google Cloud-Projekte ein eindeutiger Name ist. Sie wird in diesem Codelab später als PROJECT_ID
bezeichnet.
Sehr wichtig: Rufen Sie die Compute Engine-Seite auf, um die Aktivierung der Compute Engine API zu starten:
Klicken Sie dann auf „Compute“ → „Compute Engine“ → „VM-Instanzen“.
Wenn Sie dies zum ersten Mal tun, wird ein Bildschirm mit der Meldung „Compute Engine wird vorbereitet. Dies kann einige Minuten dauern.“ Sie können sich unten weiterhin in Google Cloud Shell anmelden, aber erst nach Abschluss dieses Vorgangs VMs erstellen.
Die meiste Arbeit erledigen Sie in der Google Cloud Shell, einer Befehlszeilenumgebung, die in der Cloud ausgeführt wird. Auf dieser Debian-basierten virtuellen Maschine sind alle erforderlichen Entwicklungstools installiert und sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher. Öffnen Sie Google Cloud Shell, indem Sie auf das Symbol oben rechts auf dem Bildschirm klicken:
Legen Sie abschließend mithilfe von Cloud Shell die Standardzone und die Projektkonfiguration fest:
$ gcloud config set compute/zone us-central1-b $ gcloud config set compute/region us-central
Sie können auch verschiedene Zonen auswählen. Weitere Informationen finden Sie in der Dokumentation zu Regionen und Zonen.
In diesem Abschnitt erstellen Sie Compute Engine-Instanzen, auf denen nginx+ ausgeführt wird, indem Sie Cloud Launcher verwenden. Wir benötigen diese Instanzen, um Monitoring und Benachrichtigungen zu demonstrieren. Sie können eine Compute Engine-Instanz über die grafische Konsole oder über die Befehlszeile erstellen. In diesem Lab werden Sie durch die Befehlszeilen geführt.
Legen Sie Ihre Projekt-ID mit gcloud fest:
$ gcloud config set project PROJECT_ID
Kopieren Sie den folgenden Text und fügen Sie ihn unverändert ein:
$ for i in {1..3}; do \ gcloud compute instances create "nginx-plus-$i" \ --machine-type "n1-standard-1" \ --metadata "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \ --maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \ --tags "http-server","google-cloud-marketplace" \ --image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \ --boot-disk-size "10" --boot-disk-type "pd-standard" \ --boot-disk-device-name "nginx-plus-$i"; done
Sie sehen Warnmeldungen zur Laufwerkgröße und dann die folgende Ausgabe, wenn die einzelnen VMs erstellt werden:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS nginx-plus-1 us-central1-b n1-standard-2 X.X.X.X X.X.X.X RUNNING ...
Notieren Sie sich die EXTERNAL_IP
. Das ist später wichtig.
Diese Vorgänge können einige Minuten dauern.
Standardmäßig sind in der Google Cloud Platform nur wenige Portzugriffe zulässig. Da wir bald auf Nginx zugreifen werden, aktivieren wir Port 80 in der Firewallkonfiguration:
$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server" Created [...]. NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS allow-80 default 0.0.0.0/0 tcp:80 http-server
Dadurch wird eine Firewallregel mit dem Namen „allow-80“ erstellt, die die folgenden Standardwerte hat:
- Die Liste der IP-Adressblöcke, die eingehende Verbindungen herstellen dürfen (
--source-ranges
), ist auf0.0.0.0/0
(Überall) festgelegt. - Die Liste der Instanztags, die die Gruppe von Instanzen im Netzwerk angibt, die eingehende Verbindungen akzeptieren dürfen, ist auf „none“ (keine) gesetzt. Das bedeutet, dass die Firewallregel für alle Instanzen gilt.
Führen Sie gcloud compute firewall-rules create --help
aus, um alle Standardwerte zu sehen.
Nachdem die erste Instanz erstellt wurde, können Sie testen, ob Nginx ausgeführt wird und zugänglich ist. Rufen Sie dazu http://EXTERNAL_IP/ auf. EXTERNAL_IP
ist die öffentliche IP-Adresse von nginx-plus-1. Sie sollten die Nginx-Seite sehen:
Sie können sich Ihre laufenden Instanzen auch ansehen, indem Sie Folgendes eingeben:
$ gcloud compute instances list
Google Stackdriver ist eine leistungsstarke Monitoringlösung, die verschiedene Tools zur Überwachung und Analyse Ihrer cloudbasierten Anwendungen integriert. Mit Stackdriver können Sie Leistungsmesswerte ansehen, Benachrichtigungen einrichten und empfangen, eigene benutzerdefinierte Dashboards und Messwerte hinzufügen, Logs und Traces ansehen und integrierte Dashboards einrichten – alles an einem zentralen Ort.
In den nächsten Schritten wird beschrieben, wie Sie Stackdriver aktivieren und mit der Konsole arbeiten.
Google Stackdriver befindet sich derzeit in der Betaphase und ist standardmäßig nicht für neue Projekte aktiviert. Klicken Sie dazu in der linken Navigationsleiste auf „Monitoring“ (möglicherweise müssen Sie nach unten scrollen, um diese Option zu sehen).
Klicken Sie auf dem nächsten Bildschirm auf „Überwachung aktivieren“ und warten Sie eine Minute, bis die Überwachung aktiviert ist.
Nach der Aktivierung ändern sich die Inhalte und der folgende Text wird angezeigt. Klicken Sie auf „Zum Monitoring“, um loszulegen. Sie müssen sich mit Google anmelden. Anschließend werden Sie zur Stackdriver-Konsole für Ihr Projekt weitergeleitet. Dort können Sie Überwachungsaufgaben ausführen und analysieren.
Sehen wir uns die Startseite genauer an.
- Über das obere Menü können Sie verschiedene Ansichten / Kontexte auswählen und auf alle verfügbaren Stackdriver-Aktionen zugreifen.
- Dashboards: Dies sind Dashboards mit Messwerten und Ereignissen, die überwacht werden. Anfangs sind dies vordefinierte System-Dashboards, die auf den Ressourcen in Ihrem Projekt basieren. Sie können aber auch eigene benutzerdefinierte Dashboards erstellen.
- Verfügbarkeitsdiagnosen: Diese prüfen regelmäßig die Verfügbarkeit von nutzerorientierten Ressourcen und ermöglichen Benachrichtigungen, wenn diese nicht mehr verfügbar sind.
- Gruppenliste: Gruppen werden verwendet, um Ressourcen mit gemeinsamen Attributen und Merkmalen zu gruppieren, damit sie für Aufgaben wie Monitoring und Benachrichtigungen als Gruppe oder Cluster behandelt werden können. Diese können automatisch erkannt oder benutzerdefiniert sein.
- Bereich „Vorfälle“: In diesem Bereich werden Benachrichtigungsvorfälle erfasst. Hier wird erst etwas angezeigt, wenn Sie Benachrichtigungsrichtlinien definieren.
- Das Ereignislog enthält Ereignisse, die sich auf Ihre überwachten Ressourcen beziehen, z. B. Instanzänderungen oder Vorfallereignisse.
Bevor wir uns die Diagramme ansehen, fällt auf, dass die meisten Linien nach der ersten Initialisierung der Instanz flacher geworden sind. Sehen wir uns an, ob wir einige von ihnen „entflachen“ können, indem wir auf einer der Instanzen etwas Last erzeugen.
So stellen Sie über die Cloud Shell-Befehlszeile eine SSH-Verbindung zur Instanz her:
$ gcloud compute ssh nginx-plus-1 ... Do you want to continue (Y/n)? Y ... Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): [Hit Enter] Enter same passphrase again: [Hit Enter] ... yourusername@nginx-plus-1:~$
Das war's schon. Ganz einfach. In der Produktion sollten Sie eine Passphrase eingeben. Möglicherweise werden Sie auch nicht aufgefordert, eine Passphrase hinzuzufügen.
Alternativ können Sie auch direkt über die Console eine SSH-Verbindung zur Instanz herstellen. Rufen Sie dazu Compute Engine > VM-Instanzen auf und klicken Sie auf SSH.
In the SSH window, type:
yourusername@nginx-plus-1:~$ sudo apt-get install rand yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &
Die CPU der Instanz „nginx-plus-1“ wird jetzt geladen. Wir können zum Tab „Stackdriver-Dashboard“ zurückkehren und mit der Analyse beginnen. Bevor wir jedoch zur Seite „Stackdriver-Dashboards“ zurückkehren, sollten wir den Cloud Logging-Agent installieren.
Fetch and install the script:
yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install
Achten Sie bei der Installation in der Produktion darauf, den SHA-256-Hash zu prüfen. Weitere Informationen zum Installationsprozess
Kehren Sie nun zur Google Stackdriver-Konsole zurück.
Nehmen Sie sich die Zeit, sich mit der Navigation und Verwendung von Dashboards und Diagrammen vertraut zu machen. Bewegen Sie den Mauszeiger auf die Linien im Diagramm, um zu sehen, was passiert. Sie können den Zeitraum für Diagramme ändern. Die Steuerelemente befinden sich rechts oben. Sie können jederzeit zur „Startseite“ zurückkehren, indem Sie links oben in der Konsole auf das Stackdriver-Logo klicken.
Sehen wir uns das Diagramm zur CPU-Auslastung an:
Einige Elemente im Diagramm sind:
- Die hervorgehobene Linie stellt den aktuell ausgewählten Messwert dar. In einem Diagramm können mehrere Messwerte angezeigt werden.
- Die graue horizontale Linie stellt den Zeitpunkt dar, auf den der Mauszeiger zeigt.
- Unten sehen Sie den Namen der Ressource sowie den Wert zum ausgewählten Zeitpunkt.
- Oben im Diagramm befinden sich farbige Punkte, die Ereignisse darstellen, die im Ereignisprotokoll detailliert beschrieben werden. Wenn Sie darauf klicken, wird eine Liste der Ereignisse angezeigt. Hinweis: Wenn Sie noch keine Ereignisse haben, werden möglicherweise keine angezeigt.
- Rechts oben im Diagramm befinden sich drei Steuerelemente (von links nach rechts):
- Ein-/Ausblenden einer Liste von Messwerten unter dem Diagramm umschalten
- Vollbildmodus ein-/ausschalten
- Menü mit verschiedenen Extras (Sie MÜSSEN den Röntgenmodus ausprobieren, wenn Sie ein sehr ausführliches Diagramm haben!). Die Option „Protokolle ansehen“ wird später noch erläutert.
Mit Verfügbarkeitsdiagnosen können Sie schnell den Status jeder Webseite, Instanz oder Gruppe von Ressourcen überprüfen. Jede konfigurierte Diagnose wird regelmäßig von verschiedenen weltweiten Standorten durchgeführt. Verfügbarkeitsdiagnosen können als Bedingungen für die Definitionen von Benachrichtigungsrichtlinien verwendet werden.
Wenn Sie sich Ihre Diagnosen und deren Status ansehen möchten, wählen Sie im oberen Menü Alerting > Uptime Checks (Benachrichtigungen > Verfügbarkeitsdiagnosen) aus. Abschnitte zu Verfügbarkeitsdiagnosen finden Sie auch im Google Stackdriver-Dashboard und auf Seiten, die bestimmten Ressourcen gewidmet sind. Bei Verfügbarkeitsdiagnosen, die eine Gruppe von Ressourcen abdecken, können Sie die Diagnose maximieren, um den Status der einzelnen Mitglieder der Gruppe anzuzeigen.
Wir erstellen jetzt eine Verfügbarkeitsdiagnose. So finden Sie das Widget für Verfügbarkeitsdiagnosen auf dem Stackdriver-Startbildschirm:
Ein neues Pop-up-Fenster wird angezeigt. Wir können Verfügbarkeitsdiagnosen für eine einzelne Ressource oder eine Gruppe von Ressourcen konfigurieren, benutzerdefinierte Header und Nutzlasten verwenden, Authentifizierung und andere Optionen hinzufügen. Für den Moment verwenden wir nur eine Standard-HTTP-Prüfung, mit der die automatisch erstellte Nginx-Gruppe jede Minute geprüft wird.
Verwenden Sie den Screenshot unten, um die verschiedenen Optionen auszufüllen:
Klicken Sie auf die Schaltfläche „Test“, um zu prüfen, ob Ihre Endpunkte erreichbar sind (Sie sollten drei grüne „OK“-Meldungen erhalten), und klicken Sie auf „Save“ (Speichern). Hinweis: Wenn Sie keine Bestätigungen erhalten, können Sie trotzdem mit dem Lab fortfahren, da es sich möglicherweise nur um ein Problem mit dem Timing des Test-Checks handelt.
Als Nächstes wird das Feld „Verfügbarkeitsdiagnose erstellt“ angezeigt und Sie werden gefragt, ob Sie eine Benachrichtigungsrichtlinie für diese Diagnose erstellen möchten. Das machen wir im nächsten Abschnitt. Klicken Sie noch nicht auf etwas.
Sie können Benachrichtigungsrichtlinien einrichten, um Bedingungen zu definieren, die festlegen, ob Ihre Cloud-Dienste und ‑Plattformen normal funktionieren. Cloud Monitoring bietet viele verschiedene Arten von Messwerten und Systemdiagnosen, die Sie in den Richtlinien verwenden können.
Wenn gegen die Bedingungen einer Benachrichtigungsrichtlinie verstoßen wird, wird ein Vorfall erstellt und in der Stackdriver Console im Abschnitt „Vorfälle“ angezeigt. Die Adressaten können den Erhalt der Benachrichtigung bestätigen und den Vorfall schließen, wenn er behandelt wurde.
Klicken Sie auf „Benachrichtigungsrichtlinie erstellen“ und fahren Sie mit der Konfiguration der Richtlinie fort.
Sie sollten jetzt diesen Bildschirm sehen:
Geben Sie einen Namen für die Richtlinie ein: „Verfügbarkeitsdiagnose für die nginx-Gruppe“.
Klicken Sie nun im Bereich „Benachrichtigungsmethode“ auf „Benachrichtigung hinzufügen“.
Geben Sie die mit Ihrem Google Cloud-Konto verknüpfte E-Mail-Adresse ein. Scrollen Sie zum unteren Bildschirmrand und klicken Sie auf „Richtlinie speichern“.
Kehren Sie zur Stackdriver-Startseite zurück (klicken Sie dazu oben links auf das Logo).
Die von Ihnen erstellte Verfügbarkeitsdiagnose sollte jetzt im Abschnitt „Verfügbarkeitsdiagnosen“ des Dashboards angezeigt werden. Der Status sollte jetzt grün sein.
Scrollen Sie nach unten zum Ereignisprotokoll. Dort sollte das Ereignis angezeigt werden, dass eine Benachrichtigungsrichtlinie erstellt wurde.
Jetzt wollen wir ein bisschen Chaos anrichten :)
Sehen wir uns an, was passiert, wenn wir den Nginx-Dienst beenden.
Stellen Sie über die Cloud Shell-Befehlszeile noch einmal eine SSH-Verbindung zur Instanz her:
$ gcloud compute ssh nginx-plus-1
Geben Sie Folgendes ein:
yourusername@nginx-plus-1:~$ sudo service nginx stop
Die von uns erstellte Verfügbarkeitsdiagnose sollte jetzt fehlschlagen. In diesem Fall wird ein Vorfall erstellt und eine E-Mail-Benachrichtigung an die oben eingegebene Adresse gesendet. Es dauert eine Minute, bis die Bedingung erkannt wird. Erinnern Sie sich an die Dauer von einer Minute, die Sie beim Einrichten der Verfügbarkeitsdiagnose festgelegt haben. Sehen wir uns also die Seite der Nginx-Gruppe an.
Es gibt mehrere Möglichkeiten, das Dashboard einer bestimmten Ressourcengruppe aufzurufen:
- Klicken Sie auf der Startseite auf den Namen der Gruppe. Dadurch wird zu einem Dashboard gewechselt, das speziell für die Überwachung der Ressourcen der Gruppe erstellt wurde. Sie können dieses Dashboard auch anpassen.
- Wählen Sie im Menü der obersten Ebene „Gruppen“ aus und suchen Sie dann nach Ihrer Gruppe.
Klicken Sie jetzt auf die Schaltfläche für die automatische Aktualisierung, damit Dashboards automatisch aktualisiert werden. Das Symbol wird rot.
Sie sehen jetzt ein Dashboard, das speziell für die automatisch erstellte nginx-Gruppe gilt. Auf der rechten Seite sehen Sie Grafiken mit mehreren wichtigen Messwerten für die Gruppe. Mit anderen Worten: Diese Grafiken zeigen Messwerte, die sich auf alle Ressourcen in der nginx-Gruppe beziehen (die drei nginx+-VMs, die wir zuvor erstellt haben).
Auf der linken Seite sehen Sie verschiedene Informationen zur Gruppe:
- Status des Vorfalls
- Verfügbarkeitsdiagnosen
- Ereignisprotokoll
- Eine Liste von Ressourcen (Instanzen, Volumes usw.)
Beachten Sie, dass sich diese nur auf die Gruppe beziehen. Im Ereignisprotokoll werden daher nur Ereignisse für die Gruppe aufgeführt.
Sie können auf verschiedene Ressourcen oder Untergruppen klicken, um zu den entsprechenden Dashboards zu wechseln. Wenn Sie beispielsweise auf „nginx-plus-1“ klicken, gelangen Sie zu einem Dashboard, das nur Messwerte und Prüfungen für diese Instanz enthält. Jetzt ausprobieren:
Stackdriver-Vorfälle werden geöffnet, wenn eine Reihe von Benachrichtigungsbedingungen bestimmte Kriterien erfüllt. In unserem Fall haben wir eine Benachrichtigung für die Verfügbarkeitsdiagnose von nginx festgelegt, die derzeit auf nginx-plus-1 fehlschlägt. Mithilfe von Vorfällen können Sie aktuelle Bedingungen im Blick behalten und mit anderen Teammitgliedern zusammenarbeiten, wenn Sie an Problemen arbeiten.
Quittieren wir den Vorfall und informieren wir andere Teammitglieder darüber, dass wir die Situation untersuchen:
Dadurch ändert sich der Status des Vorfalls von „Offen“ in „Bestätigt“. Die Situation dauert noch an (die Bedingungen der Benachrichtigungsrichtlinie werden weiterhin verletzt), aber Sie signalisieren den Teammitgliedern, dass Sie sich darum kümmern. Dies wird auch im Ereignisprotokoll aufgezeichnet.
Vorfälle können manuell oder automatisch behoben werden. Um Letzteres zu sehen, stellen Sie eine SSH-Verbindung zu nginx-plus-1 her und beheben Sie das Problem:
yourusername@nginx-plus-1:~$ sudo service nginx start
Das Problem wird jetzt automatisch behoben, sobald die Uptime-Prüfung wieder normal verläuft. Sie können das Problem auch selbst beheben, indem Sie das Menüelement „Beheben“ auswählen.
Cloud Logging ist eine Logging-as-a-Service-Lösung, die einen praktischen, zentralen Ort zum Ansehen und Abfragen von Logs aus verschiedenen Quellen bietet. Sie können Logs auch verwenden, um sie an andere Ziele zu exportieren (Google Cloud Storage, Google BigQuery oder Google Cloud Pub/Sub).
Um auf die Cloud Logs Viewer zuzugreifen, wählen Sie sie im Menü links in der Cloud Console aus:
Sie werden zum Log-Viewer weitergeleitet. Dort können Sie vordefinierte Abfragen verwenden oder eigene benutzerdefinierte Abfragen erstellen und speichern, einen Livestream von Logs aus mehreren Ressourcen in Ihrer Cloudbereitstellung abrufen, Messwerte aus Logs erstellen und vieles mehr.
Es gibt einige praktische Steuerelemente, mit denen Sie die relevanten Informationen schnell filtern können:
- Nach Ressourcentypen filtern
- Nach bestimmten Logtypen der ausgewählten Ressourcen filtern
- Bestimmte Logebenen filtern
- Nach bestimmten Datumsangaben filtern, um frühere Probleme zu untersuchen
- Kontinuierliches Streaming ein-/ausschalten
- Ein Suchfeld für die Text-, Label- oder Suche mit regulären Ausdrücken
Üben wir jetzt, die Suche auf bestimmte Logs einzugrenzen.
Wählen Sie in der Ressourcentypauswahl (1 im Screenshot) „Compute Engine“ –> „Alle Ressourcentypen“ aus.
Wählen Sie als Nächstes in der Logtyp-Auswahl (2 im Screenshot) „nginx-access“ aus, um alle Zugriffslogs aufzurufen.
Aktivieren Sie nun das kontinuierliche Streaming (5), um Logs in Echtzeit anzusehen. Wenn keine neuen Logs angezeigt werden, geben Sie die externe IP-Adresse einer der nginx-plus-VMs in Ihren Browser ein.
In diesem Codelab geht es nicht im Detail um Logs. Sie können sich aber später damit befassen, bevor Sie die Bereinigung durchführen. Weitere Informationen zur Navigation im Viewer Hier finden Sie das Verzeichnis der obersten Ebene für die relevante Dokumentation.
Lassen Sie uns die während des Code-Labs erstellten Computeressourcen freigeben. Führen Sie die folgenden Befehle in Cloud Shell aus:
$ for i in {1..3}; do \ gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done
Rufen Sie als Nächstes die Google Stackdriver-Konsole auf („Monitoring“ im Menü auf der linken Seite der Cloud Console) und entfernen Sie die von uns erstellten Verfügbarkeitsdiagnosen und Benachrichtigungsrichtlinien. Sie können dies über die Menüelemente der obersten Ebene „Alerting“ -> „Policies overview“ (Benachrichtigungen -> Richtlinienübersicht) und „Alerting“ -> „Uptime checks“ (Benachrichtigungen -> Verfügbarkeitsdiagnosen) tun.
Sie können jetzt Ihre cloudbasierten Anwendungen überwachen.
Behandelte Themen
- Machen Sie sich mit der Stackdriver-Startseite vertraut.
- Dashboards und Diagramme verstehen
- Verfügbarkeitsdiagnose erstellen
- Einfache Benachrichtigungsrichtlinie erstellen
- Mit Benachrichtigungsereignissen arbeiten
- In der Loganzeige navigieren
Nächste Schritte
- Erstellen Sie ein benutzerdefiniertes Dashboard.
- Informationen zu den verschiedenen Optionen beim Erstellen einer Benachrichtigungsrichtlinie
- Verschiedene Optionen für die Verwendung von Cloud Logging kennenlernen
Weitere Informationen
Feedback geben
- Bitte nehmen Sie sich einen Moment Zeit, um an unserer kurzen Umfrage teilzunehmen.