Fehlerbehebung bei Anmeldedaten

Dieses Dokument enthält Informationen zur Behebung von Problemen mit der Ops-Agent-Autorisierung und den 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. Informationen zu Anmeldedaten finden Sie unter Ops-Agent autorisieren. Informationen zum Verifizieren von Anmeldedaten finden Sie unter Compute Engine-Anmeldedaten verifizieren.

  • Wenn Sie auf Ihrer Compute Engine-Instanz Anmeldedaten mit privatem Schlüssel verwenden, sind diese 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:

Zu Seite VM-Instanzen

Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine ist.

  1. 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.
  2. Klicken Sie auf der Seite VM-Instanzen auf den Namen Ihrer VM-Instanz. Daraufhin wird die Seite mit den Details Ihrer Instanz eingeblendet.
  3. 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 im Projekt und private_key_id auf den privaten Schlüssel im Dienst Konto. 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 und roles/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:

  1. 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:
    1. Rufen Sie in der Google Cloud Console die Seite  Monitoring-Einstellungen auf:

      Zu den Monitoring-Einstellungen

      Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

    2. Über den Tab Zusammenfassung Identifizieren Sie das Projekt, das die betreffenden Compute Engine-Ressourcen enthält, und öffnen Sie die Google Cloud Console.
    3. 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:

        IAM-Dienstkonten aufrufen

      • Klicken Sie auf die folgende Schaltfläche und wählen Sie Ihr Google Cloud-Projekt aus:

        Dienstkonto erstellen und Schlüssel herunterladen

        Die vorherige Schaltfläche automatisiert den Prozess zum Erstellen und Herunterladen eines Schlüssels auf Ihr lokales System für das agentenspezifische Dienstkonto. Bei Bedarf erstellt der Prozess auch das erforderliche Dienstkonto und stellt sicher, dass das Dienstkonto 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 mit einem Dialogfeld wie dem folgenden informiert:

        Ein Banner, das den Nutzer darüber informiert, dass ein Dienstkonto und ein Schlüssel erstellt wurden.

  2. 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.
  3. 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.

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.