Probleme mit Anmeldedaten beheben

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:

Zu Seite VM-Instanzen

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

  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 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 die Messwerterfassung und roles/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:

  1. Für jedes verbundene Projekt mit Instanzen, die autorisiert werden müssen mit einem privaten Schlüssel – Compute Engine-Instanzen, die die ohne den Zugriffsbereich erstellt wurden https://www.googleapis.com/auth/monitoring.write — ein Dienstkonto erstellen und einen privaten Schlüssel, falls noch nicht vorhanden. Führen Sie die
      Schritte unten aus:
    1. Wechseln Sie in der Google Cloud Console zur Seite Monitoring-Einstellungen:

      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 das Projekt, das die Betroffene Compute Engine-Ressourcen und rufen Sie in der 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 folgen dann der Anleitung in <ph type="x-smartling-placeholder"></ph> Dienstkonto erstellen:

        IAM-Dienstkonten aufrufen

      • 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 erforderlich, das erforderliche Dienstkonto erstellt, und stellt sicher, dass das Dienstkonto Berechtigungen. Agent-spezifische Dienstkonten haben ein Name ähnlich wie stackdriver-1234@PROJECT_ID.iam.gserviceaccount.com Sie werden über den Abschluss dieser Aktionen mit einem Dialogfeld ähnlich dem folgenden aus:

        Ein Banner mit dem Hinweis, 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 <ph type="x-smartling-placeholder"></ph> Kopieren Sie den privaten Schlüssel in Ihre Instanz.
  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.