Dieses Dokument enthält Informationen zur Fehlerbehebung beim Ops-Agent Autorisierungs- und Anmeldedaten auf Ihren Compute Engine-VM-Instanzen.
Wenn der Ops Agent Zugriffs- oder Autorisierungsfehler meldet oder wenn er scheinbar normal ausgeführt wird, Sie aber keine Daten erhalten oder die Benachrichtigungsrichtlinien nicht ordnungsgemäß funktionieren, prüfen Sie, ob die Anmeldedaten für Ihre VM-Instanz korrekt sind und auf das richtige Projekt verweisen.
Wenn Sie eine Compute Engine-VM-Instanz mit Standardanmeldedaten ohne privaten Schlüssel verwenden, ist es unwahrscheinlich, dass Daten an das falsche Projekt gesendet werden. Es kann aber sein, dass Ihre Anmeldedaten ungültig sind. Für Informationen zu Anmeldedaten, Siehe Ops-Agent autorisieren. Informationen zum Verifizieren von Anmeldedaten finden Sie unter Compute Engine-Anmeldedaten verifizieren.
Bei Verwendung eines privaten Schlüssels Anmeldedaten auf Ihrer Compute Engine-Instanz, dann ungültig sein oder aus dem falschen Projekt stammen. Informationen zu Anmeldedaten Siehe Ops-Agent autorisieren. Informationen zum Verifizieren von Anmeldedaten finden Sie unter Anmeldedaten mit privatem Schlüssel verifizieren.
Anmeldedaten für Compute Engine prüfen
Prüfen Sie in der Cloud Console auf der Compute Engine-Seite VM-Instanzen, ob Ihre Compute Engine-VM-Instanz die erforderlichen Anmeldedaten für den Ops-Agent hat. Die Anmeldedaten werden in der Regel dem Standarddienstkonto aller neuen Compute Engine-VM-Instanzen hinzugefügt, können aber beim Erstellen einer Instanz überschrieben werden.
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.
- Verwenden Sie als Google Cloud-Projekt das Projekt, das mit Ihrer Compute Engine-VM-Instanz verknüpft ist. Wenn Sie beispielsweise die Eingabeaufforderung Abrechnung aktivieren erhalten, enthält das aktuelle Projekt keine Compute Engine-VM-Instanzen.
- Klicken Sie auf der Seite VM-Instanzen auf den Namen Ihrer VM-Instanz. Daraufhin wird die Seite mit den Details Ihrer Instanz eingeblendet.
- Sehen Sie sich auf der Seite VM-Instanzdetails den Abschnitt Zugriffsbereiche für Cloud API an:
- Wenn "Uneingeschränkten Zugriff auf alle Cloud-APIs zulassen" angezeigt wird, haben Sie gültige Anmeldedaten.
- Wenn neben Stackdriver Monitoring API, einem älteren Namen für die Cloud Monitoring API, angezeigt wird, dass Sie die Berechtigung Nur Schreibzugriff oder Uneingeschränkt haben, haben Sie die erforderlichen Anmeldedaten.
- Andernfalls hat das Standarddienstkonto Ihrer Instanz nicht die nötigen Anmeldedaten für den Agent. Damit Sie den Agent auf Ihrer Instanz verwenden können, müssen Sie dem Dienstkonto Anmeldedaten mit privatem Schlüssel hinzufügen. Eine Anleitung finden Sie unter Anmeldedaten hinzufügen.
Wenn Sie die erforderlichen Standardanmeldedaten haben, fahren Sie mit Unter Linux installieren oder Unter Windows installieren fort.
Anmeldedaten mit privatem Schlüssel prüfen
Zur Bestätigung, dass auf Ihrer VM-Instanz gültige Anmeldedaten mit privatem Schlüssel vorhanden sind, prüfen Sie zuerst, ob sich die Datei mit den Anmeldedaten am erwarteten Speicherort befindet. Bestätigen Sie anschließend, dass die Informationen in der Datei mit den Anmeldedaten gültig sind. Bisher gültige Anmeldedaten können Sie in der Google Cloud Console unter IAM & Verwaltung > Dienstkonten widerrufen. Wenn keine gültigen Anmeldedaten vorhanden sind, ersetzen Sie wie unter Anmeldedaten hinzufügen beschrieben die bestehenden Anmeldedaten oder fügen Sie neue hinzu.
Sind die Anmeldedaten vorhanden?
Führen Sie zur Prüfung, ob auf Ihrer Instanz Anmeldedaten mit privatem Schlüssel für das Dienstkonto vorhanden sind, die folgenden Linux-Befehle darauf aus:
sudo cat $GOOGLE_APPLICATION_CREDENTIALS
sudo cat /etc/google/auth/application_default_credentials.json
Wenn mit einem der Befehle eine Datei mit folgendem Inhalt aufgerufen wird, verfügt Ihre Instanz unter Umständen über gültige Anmeldedaten mit privatem Schlüssel. Wenn beide Befehle eine Datei zurückgeben, wird die Datei mit der Bezeichnung GOOGLE_APPLICATION_CREDENTIALS
verwendet.
{
"type": "service_account",
"project_id": "{your-project-id}",
"private_key_id": "{your-private-key-id}",
"private_key": "{your-private-key}",
"client_email": "{your-project-number}-{your-key}@developer.gserviceaccount.com",
"client_id": "{your-client-id}",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "{x509-cert-url}",
"client_x509_cert_url": "{client-x509-cert-url}"
}
Wenn keine Datei mit Anmeldedaten vorhanden ist, fahren Sie unter Anmeldedaten hinzufügen fort.
Sind die Anmeldedaten gültig?
In der Datei mit den Anmeldedaten enthält das Feld project_id
Ihr Google Cloud-Projekt.
client_email
identifiziert das Dienstkonto im Projekt,
und private_key_id
identifiziert
den privaten Schlüssel
im Dienstkonto ab. Passen Sie diese Informationen an die Angaben in der Google Cloud Console unter IAM & Verwaltung > Dienstkonten an.
Die Datei mit den Anmeldedaten ist ungültig, wenn eine der folgenden Bedingungen zutrifft:
- Sie prüfen eine Compute Engine-VM-Instanz, aber das Google Cloud-Projekt in der Datei mit den Anmeldedaten ist nicht das Projekt, in dem Ihre Instanz enthalten ist.
- Das aufgeführte Dienstkonto existiert nicht. Es wurde möglicherweise gelöscht.
- Für das aufgeführte Dienstkonto sind nicht die richtigen Rollen aktiviert. Er sollte
haben mindestens
roles/monitoring.metricWriter
(Monitoring-Messwert-Autor) für Messwerterfassung undroles/logging.logWriter
(Logautor) für das Schreiben von Protokollen. - Der private Schlüssel existiert nicht. Er wurde möglicherweise widerrufen.
Wenn das Dienstkonto in Ordnung ist, aber der private Schlüssel widerrufen wurde, können Sie einen neuen privaten Schlüssel erstellen und in Ihre Instanz kopieren. Erstellen Sie andernfalls ein neues Dienstkonto, wie im folgenden Abschnitt Neue Anmeldedaten generieren beschrieben.
Neue Anmeldedaten generieren
Wenn die Anmeldedaten nicht gültig sind, führen Sie folgende Schritte aus:
- Erstellen Sie für jedes verbundene Projekt mit Instanzen, die mit einem privaten Schlüssel autorisiert werden müssen – Compute Engine-Instanzen, die ohne den Zugriffs-Bereich
https://www.googleapis.com/auth/monitoring.write
erstellt wurden– ein Dienstkonto und generieren Sie einen privaten Schlüssel, falls noch nicht vorhanden. Führen Sie die- Schritte unten aus:
-
Öffnen Sie in der Google Cloud Console die Seite settingsEinstellungen.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wählen Sie den Tab Netric-Bereich aus.
- Identifizieren Sie das Projekt, das die Compute Engine-Ressourcen enthält. und navigieren Sie zur Google Cloud Console:
- Rufen Sie in der Google Cloud Console die Seite IAM-Dienstkonten auf, wählen Sie Ihr Google Cloud-Projekt aus, erstellen Sie ein neues Dienstkonto und generieren Sie dann einen neuen privaten Schlüssel dafür.
Um diese Schritte auszuführen, tun Sie eines der folgenden:
Rufen Sie die Seite IAM-Dienstkonten auf. wählen Sie Ihr Google Cloud-Projekt aus und folgen dann der Anleitung in <ph type="x-smartling-placeholder"></ph> Erstellen Sie ein Dienstkonto:
Klicken Sie auf die folgende Schaltfläche und wählen Sie Google Cloud-Projekt:
<ph type="x-smartling-placeholder"></ph> Dienstkonto erstellen und Schlüssel herunterladen
Mit der Schaltfläche „Zurück“ wird der Erstellungsprozess für und einen Schlüssel auf Ihr lokales System für die Agent-spezifisches Dienstkonto. Falls notwendig, wird dabei auch das erforderliche Dienstkonto erstellt und dafür gesorgt, dass es die richtigen Berechtigungen hat. Agent-spezifische Dienstkonten haben eine Name ähnlich wie
stackdriver-1234@PROJECT_ID.iam.gserviceaccount.com
Sie werden über den Abschluss dieser Aktionen mit einem Dialogfeld ähnlich dem folgenden aus:
-
Ersetzen Sie den privaten Schlüssel für die Instanzen, die zum betreffenden Dienstkonto gehören.
- Ersetzen Sie unter Linux den privaten Schlüssel in
/etc/google/auth/application_default_credentials.json
. - Ersetzen Sie unter Linux den privaten Schlüssel in
C:\ProgramData\Google\Auth\application_default_credentials.json
. Weitere Informationen finden Sie unter <ph type="x-smartling-placeholder"></ph> Kopieren Sie den privaten Schlüssel in Ihre Instanz.
- Ersetzen Sie unter Linux den privaten Schlüssel in
Agent neu starten
- Führen Sie unter Linux
sudo service stackdriver-agent restart
aus. - Öffnen Sie unter Windows die Dienstverwaltungskonsole und starten Sie den Dienst
Cloud Monitoring
neu.
- Führen Sie unter Linux
Wenn Sie mehrere Projekte haben, die neue private Schlüssel benötigen, wiederholen Sie diesen Vorgang für jedes einzelne.
Wie Sie prüfen, ob der private Schlüssel korrekt ist, erfahren Sie unter Sind die Anmeldedaten vorhanden? Beispiele:
- Lesen Sie die JSON-Datei mit dem privaten Schlüssel auf der Instanz. Beispiel (unter Linux):
sudo cat /etc/google/auth/application_default_credentials.json
- Achten Sie darauf, dass der Wert von
project_id
mit dem Wert des überwachten Projekts übereinstimmt, für das Sie gerade Anmeldedaten generiert haben.