Fehlerbehebung bei VM Manager

In diesem Dokument wird beschrieben, wie Sie Probleme mit VM Manager beheben.

Weitere Informationen zu VM Manager finden Sie unter VM Manager.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Übersicht

Um Probleme zu beheben, prüfen Sie zuerst, ob VM Manager ordnungsgemäß eingerichtet ist. Wenn die Einrichtung korrekt ist und weiterhin Probleme auftreten, prüfen Sie die Logs. Beim Prüfen von Logs können Sie Probleme mit Ihrer VM oder in Ihrem VM Manager-Workflow ermitteln, z. B. Fehler in Befehlen oder Skripts, die Sie isolieren und beheben können.

Sie können die folgenden Informationen aus Logs erfassen:

  • Jede von der VM protokollierte Fehlermeldung oder Warnung. Dies ist ideal, um Fehler auf VM-Ebene oder von anderen Diensten zu identifizieren, die auf Ihrer VM ausgeführt werden. Informationen zum Prüfen dieser Logs finden Sie unter Cloud Logging prüfen.
  • Ausführliche Debug-Informationen, die vom OS Config-Agent protokolliert wurden. Dies ist hilfreich, um Probleme mit einem der Vorgänge zu identifizieren, die von VM Manager ausgeführt werden. Informationen zum Untersuchen von Debug-Logs für den OS Config-Agent finden Sie unter Debug-Logs ansehen.

Nachdem Sie die Probleme oder Fehler ermittelt haben, können Sie im Abschnitt Häufige Fehler mögliche Lösungen finden.

Cloud Logging prüfen

Sie können die Google Cloud Console-Quick-Links für jedes Feature verwenden, um Logs für eine bestimmte VM aufzurufen.

OS patch

  1. Rufen Sie in der Google Cloud Console auf der Seite OS Patch Management den Tab Patch-Jobs auf.

    Zu Patchjobs

  2. Klicken Sie auf den Namen des Patchjobs, den Sie debuggen möchten.
  3. Scrollen Sie nach unten zu Aktualisierte VM-Instanzen.
  4. Klicken Sie für eine bestimmte VM unter Logs auf Aufrufen.

Betriebssystemrichtlinien

Dieses Verfahren wird für Betriebssystemrichtlinien unterstützt. Verwenden Sie für Gastrichtlinien (Beta) die Option für Fehlerbehebungslogs im folgenden Abschnitt.

  1. Rufen Sie in der Google Cloud Console den Tab VM-Instanzen auf der Seite OS Configuration Management auf.

    Zu "VM-Instanzen"

  2. Klicken Sie auf den Namen der VM, die Sie debuggen möchten.
  3. Scrollen Sie nach unten zu Richtlinien.
  4. Klicken Sie unter Logs auf Aufrufen.

Debug-Logs prüfen

Sie können Probleme mit einem beliebigen VM Manager-Feature ermitteln, indem Sie das Debugging für den OS Config-Agent aktivieren und das Debug-Log aufrufen.

Debug-Logging für den OS Config-Agent aktivieren

Sie können das Debug-Logging durch Festlegen der Metadaten osconfig-log-level=debug für die VM-Instanz oder das Projekt aktivieren.

Führen Sie die folgenden Schritte aus, um das Debug-Logging auf Ihrer VM zu aktivieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Klicken Sie auf den Namen der VM, für die Sie den Metadatenwert festlegen möchten.

  3. Klicken Sie auf der Seite Instanzdetails auf Bearbeiten, um die Einstellungen zu bearbeiten.

  4. Fügen Sie unter Benutzerdefinierte Metadaten die folgenden Metadateneinträge hinzu:

    Schlüssel: osconfig-log-level
    Wert: debug

  5. Klicken Sie auf Speichern, um Ihre Änderungen für die VM zu übernehmen.

gcloud

Führen Sie den Befehl instances add-metadata mit dem Flag --metadata=osconfig-log-level=debug aus.

gcloud compute instances add-metadata VM_NAME \
    --metadata=osconfig-log-level=debug

Ersetzen Sie VM_NAME durch den Namen Ihrer VM.

REST

Wie Sie Instanzmetadaten festlegen, erfahren Sie in der API-Anleitung unter Metadaten der Instanz festlegen.

Das folgende Schlüssel/Wert-Paar ist als Teil des Metadatenattributs erforderlich:

Schlüssel: osconfig-log-level
Wert: debug

Debug-Logs ansehen

Wenn das Debug-Logging aktiviert ist, schreibt der OS Config-Agent Logeinträge in Cloud Logging und in die serielle Port-Konsole.

Nachdem Sie das Debug-Logging auf der VM aktiviert haben, dauert es etwa zehn Minuten, bis der OS Config-Agent Debug-Nachrichten in Cloud Logging schreibt. Sie können die Wartezeit verkürzen, indem Sie den Agent neu starten oder Ihre VM neu starten. Weitere Informationen zu Cloud Logging finden Sie unter Logs von Cloud Logging ansehen.

Sie können die folgenden Optionen verwenden, um Debug-Logs aufzurufen:

  • Cloud Logging: Verwenden Sie die Google Cloud Console oder die Google Cloud CLI.
  • Serielle Port-Konsole

Console

  1. Rufen Sie in der Google Cloud Console die Seite Logging > Log-Explorer auf:

    Zum Log-Explorer

  2. Wählen Sie bei Bedarf oben auf der Seite ein vorhandenes Google Cloud-Projekt aus oder erstellen Sie ein neues Projekt.

  3. Wählen Sie in der Drop-down-Liste Ressource die Option VM-Instanz aus. Eine Liste der verfügbaren VMs (instance_id) wird angezeigt.

  4. Klicken Sie auf die VM, die Sie aufrufen möchten.

  5. Klicken Sie auf Hinzufügen.

  6. Wählen Sie in der Drop-down-Liste Logname die Option OSConfigAgent aus.

  7. Klicken Sie auf Hinzufügen.

  8. Die Abfrage sollte in etwa so aussehen:

    resource.type="gce_instance" resource.labels.instance_id="INSTANCE_ID"
    logName="projects/PROJECT_ID/logs/OSConfigAgent"
    
  9. Klicken Sie auf Abfrage ausführen.

gcloud

Führen Sie den Befehl gcloud logging read aus:

 gcloud logging read "resource.type=gce_instance AND logName=projects/PROJECT_ID/logs/OSConfigAgent"
 

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Serieller Port

Wenn Sie Informationen zu Debug-Logs über die serielle Port-Konsole ansehen möchten, finden Sie dazu weitere Informationen unter Ausgabe des seriellen Ports ansehen.

Häufige Fehler

Authentifizierungsprobleme

Damit VM Manager funktioniert, müssen folgende Voraussetzungen erfüllt sein:

  • Ein angehängtes Dienstkonto. VM Manager verwendet dieses Dienstkonto, um Anfragen an den API-Dienst zu signieren.
  • Prüfen Sie, ob das angehängte Dienstkonto die Rolle roles/logging.logWriter zum Schreiben von Logs in die Logging API hat.
  • Google Cloud OS Config-Dienst-Agent. VM Manager erstellt diesen Dienst-Agent beim Starten von Patch-Jobs und weist ihm die Rolle „Cloud OS Config-Dienst-Agent“ zu. Zum Erstellen von Betriebssystemrichtlinien müssen Sie diesen Dienst-Agent nicht konfigurieren.

Wenn Sie VM Manager verwenden und kein angehängtes Dienstkonto oder keinen Google Cloud OS Config-Dienst-Agent haben, werden bei der Arbeit mit Patch-Jobs möglicherweise die folgenden Fehler angezeigt:

Service account permissions are missing. Verify that the service account has the correct permissions and try again.
OSConfigAgent Error main.go:88: error getting token from metadata: metadata: GCE metadata "instance/service-accounts/default/identity?audience=osconfig.googleapis.com&format=full" not defined
message: "Error running OPERATION_NAME: error calling OPERATION_NAME: code: "PermissionDenied", message: "The caller does not have permission", details: []"

Authentifizierungsprobleme können auch verhindern, dass VM-Instanzen im Patch-Dashboard angezeigt werden.

Versuchen Sie Folgendes, um diese Probleme zu beheben:

  • Prüfen Sie, ob alle VMs ein angehängtes Dienstkonto haben.
  • Prüfen Sie, ob die Rolle „Cloud OS Config-Dienst-Agent“ (roles/osconfig.serviceAgent) für den Google Cloud OS Config-Dienst-Agent festgelegt ist.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com' \
      --role='roles/osconfig.serviceAgent'
    

    Dabei gilt:

Fehler beim Ausschließen von Paketen für Patchupdates

Wenn Sie Platzhalter oder Sonderzeichen für den Namen des Pakets angeben, wenn Sie Pakete in einem Patch-Job ausschließen, ignoriert OS Patch Management die Liste möglicherweise und aktualisiert alle Pakete.

Um dieses Problem zu beheben, aktualisieren Sie den OS Config-Agent auf Version 20220829.00 und verwenden Sie Schrägstriche (/), um den Paketnamen zu umschließen.

Im folgenden Beispiel schließt OS Patch Management yum-Pakete mit dem Präfix google- im Paketnamen aus.

      gcloud compute os-config patch-jobs execute --instance-filter-all
--yum-excludes=/google-.*/

Nächste Schritte