In diesem Dokument finden Sie Informationen zur Behebung von Problemen mit der Autorisierung und den Anmeldedaten des Ops-Agents 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. Informationen zu Anmeldedaten finden Sie unter Ops-Agent autorisieren. Informationen zum Verifizieren von Anmeldedaten finden Sie unter Compute Engine-Anmeldedaten verifizieren.
Wenn Sie Anmeldedaten mit privatem Schlüssel für Ihre Compute Engine-Instanz verwenden, sind die Anmeldedaten möglicherweise ungültig oder vom falschen Projekt. Informationen zu Anmeldedaten finden Sie unter 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 bezieht sich das Feld project_id
auf Ihr Google Cloud-Projekt, client_email
auf das Dienstkonto des Projekts und private_key_id
auf den privaten Schlüssel im Dienstkonto. 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. Es sollte mindestens die Rollen
roles/monitoring.metricWriter
(Monitoring-Messwert-Autor) für die Messwerterfassung undroles/logging.logWriter
(Logautor) zum Schreiben von Logs haben. - 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 Messwertumfang aus.
- Identifizieren Sie das Projekt, das die betreffenden Compute Engine-Ressourcen enthält, und öffnen Sie die 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 führen Sie dann die Schritte unter Dienstkonto erstellen aus:
Klicken Sie auf die folgende Schaltfläche und wählen Sie Ihr Google Cloud-Projekt aus:
Dienstkonto erstellen und Schlüssel herunterladen
Mit der vorherigen Schaltfläche wird das Erstellen und Herunterladen eines Schlüssels für das agentenspezifische Dienstkonto auf Ihr lokales System automatisiert. Falls notwendig, wird dabei auch das erforderliche Dienstkonto erstellt und dafür gesorgt, dass es die richtigen Berechtigungen hat. Agent-spezifische Dienstkonten haben einen ähnlichen Namen wie
stackdriver-1234@PROJECT_ID.iam.gserviceaccount.com
. Sie werden über den Abschluss dieser Aktionen in einem Dialogfeld wie diesem informiert:
-
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 Privaten Schlüssel in die Instanz kopieren.
- 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.