Agent-Richtlinien (GA) verwenden

Sie können Agent-Richtlinien mithilfe der Befehlsgruppe gcloud compute instances ops-agents policies in der Google Cloud CLI oder dem ops-agent-policy Terraform-Modul erstellen und verwalten. Agent-Richtlinien verwenden die VM Manager -Tools in Compute Engine zur Verwaltung von OS-Richtlinien, die die Bereitstellung und Wartung von Softwarekonfigurationen wie dem Ops-Agent automatisieren können. Diese Richtlinien können nicht auf den Legacy-Monitoring-Agent oder den Legacy-Logging-Agent angewendet werden.

Die GA-Agentrichtlinien verwenden Ressourcen für die Zuweisung von Betriebssystemrichtlinien in der OS Config API. Es gibt zwar eine allgemeine gcloud CLI-Befehlsgruppe zum Verwalten von Zuweisungen von Betriebssystemrichtlinien, gcloud compute os-config os-policy-assignments, die Befehlsgruppe gcloud compute instances ops-agents policies ist jedoch speziell für die in diesem Dokument beschriebenen Agent-Richtlinien konzipiert.

Hinweise

Das Terraform-Modul ops-agent-policy basiert auf den gcloud compute instances ops-agents policies-Befehlen des Google Cloud SDK. Informationen zur Funktionsweise von Terraform finden Sie unter Terraform verwenden.

Führen Sie die folgenden Schritte aus, bevor Sie die Google Cloud CLI oder das Terraform-Modul zum Erstellen von Agent-Richtlinien verwenden:

  1. Wenn Sie die gcloud compute instances ops-agents policies-Befehle verwenden möchten, installieren Sie die Google Cloud CLI, falls noch nicht geschehen.

  2. Wenn Sie das Terraform-Modul verwenden möchten, gehen Sie so vor:

    1. Informationen zum Installieren von Terraform finden Sie unter Terraform installieren und konfigurieren. Terraform ist bereits in Cloud Shell installiert.

    2. Klonen Sie das Repository terraform-google-cloud-operations, das das Modul ops-agent-policy enthält:

      git clone https://github.com/terraform-google-modules/terraform-google-cloud-operations
      
  3. Laden Sie das Skript prepare-for-ops-agents-policies.sh herunter und führen Sie es aus, um die erforderlichen APIs zu aktivieren und die richtigen Berechtigungen für die Verwendung des Google Cloud CLI oder Terraform festzulegen.

    Weitere Informationen zum Skript finden Sie unter Skript prepare-for-ops-agents-policies.sh.

Legacy-Monitoring-Agent und Logging-Agent deinstallieren

Achten Sie beim Erstellen einer Richtlinie für den Ops-Agent darauf, dass auf Ihren VMs nicht der Legacy-Logging-Agent oder der Legacy-Monitoring-Agent installiert ist. Das Ausführen des Ops-Agents und der Legacy-Agents auf derselben VM kann dazu führen, dass doppelte Logs oder ein Konflikt bei der Messwertaufnahme entstehen. Deinstallieren Sie bei Bedarf den Monitoring-Agent und deinstallieren Sie den Logging-Agent, bevor Sie eine Richtlinie zur Installation des Ops-Agents erstellen.

Prüfen, ob der OS Config-Agent installiert ist

Möglicherweise müssen Sie den OS Config-Agent manuell auf VMs installieren und konfigurieren, die vor OS Config liegen. Informationen zum manuellen Installieren und Prüfen des OS Config-Agents finden Sie in der Checkliste zur Bestätigung für VM Manager.

Werte für Betriebssysteminformationen finden

Wenn Sie Agentrichtlinien auf bestimmte Betriebssysteme oder Versionen anwenden möchten, müssen Sie die Werte kennen, die in OS Config für die Verweise darauf verwendet werden.

Mit den folgenden Befehlen können Sie Werte für die Felder osShortName und osVersion für eine VM ermitteln:

gcloud compute instances os-inventory describe INSTANCE_NAME \
--zone ZONE | grep "^ShortName: "
gcloud compute instances os-inventory describe INSTANCE_NAME \
--zone ZONE | grep "^Version: "

Für diese Befehle muss der OS Config-Agent auf der VM installiert sein.

Agent-Richtlinie zum Verwalten des Ops-Agents erstellen

Befehlszeile

Verwenden Sie zum Erstellen einer Zugriffsrichtlinie den Befehl gcloud compute instances ops-agents policiescreate. Dieser Befehl hat die folgende Struktur:

gcloud compute instances ops-agents policies create POLICY_ID \
  --zone ZONE \
  --file path/to/policy-description-file.yaml \
  --project PROJECT_ID

Ersetzen Sie bei Verwendung dieses Befehls die Variablen so:

  • POLICY_ID ist der Name der Richtlinie.
  • ZONE ist eine Compute Engine-Zone. Agent-Richtlinien werden nur auf VMs in der angegebenen Zone angewendet. Wenn Sie eine Richtlinie in mehreren Zonen anwenden möchten, müssen Sie mehrere Richtlinien erstellen.
  • path/to/policy-description-file.yaml ist der Pfad zu einer YAML-Datei, in der die Richtlinie beschrieben wird. Informationen zur Struktur dieser Datei finden Sie unter Agent-Richtlinien beschreiben.
  • PROJECT_ID ist die ID des Google Cloud-Projekts.

Informationen zu den anderen Befehlen in der Befehlsgruppe und den verfügbaren Optionen finden Sie in der Dokumentation zu gcloud compute instances ops-agents policies.

Agent-Richtlinien beschreiben

Sie stellen Richtlinieninformationen für diegcloud compute instances ops-agents policies createbereit, indem Sie eine YAML-Datei erstellen, in der die Richtlinie beschrieben wird, und diese Datei an den Befehl als Wert der Option --file übergeben.

In diesem Abschnitt wird die Struktur der Datei mit der Richtlinienbeschreibung beschrieben. Weitere Informationen finden Sie unter Beispiele für Dateien mit Richtlinienbeschreibungen.

Format der YAML-Datei mit der Richtlinienbeschreibung

Die Beschreibungsdatei für eine Agent-Richtlinie muss zwei Feldgruppen enthalten:

  • agentsRule: Gibt der Agent-Richtlinie an, ob der Ops-Agent installiert oder entfernt werden soll, und gibt die Version des Ops-Agents an, mit der der Vorgang ausgeführt werden soll.

  • instanceFilter: Gibt die VMs an, auf die die Richtlinie angewendet werden soll.

Struktur der Feldgruppe agentsRule

Die Feldgruppe agentsRule hat die folgende Struktur:

agentsRule:
  packageState: installed|removed
  version: latest|2.*.*|2.x.y
  • Das Feld packageState teilt der Richtlinie den beabsichtigten Status des Ops-Agents mit. Gültige Werte sind installed und removed.
  • Das Feld version gibt die Version des Ops-Agents an, die installiert oder entfernt werden soll. Sie können die folgenden Werte angeben:

    • latest ist die neueste Version des Ops-Agents.
    • 2.*.* ist der neueste Release der Hauptversion 2 des Ops-Agents.
    • 2.x.y gibt eine bestimmte Version der Hauptversion 2 an.

    Informationen zu den verfügbaren Versionen des Ops-Agents finden Sie im GitHub-Repository des Agents.

Struktur der Feldgruppe instanceFilter

Die Feldgruppe instanceFilter gibt die VMs in einer Zone an, auf die der Filter angewendet wird. Diese Feldgruppe ist eine YAML-Darstellung der InstanceFilter-Struktur, die von der Ressource OSPolicyAssignment in der OS Config API verwendet wird.

Die Feldgruppe instanceFilter hat eine der folgenden Strukturen:

  • So wenden Sie die Agent-Richtlinie auf alle VMs in einer Zone an:

    instanceFilter:
      all: True
    

    Wenn Sie den Filter all: True verwenden, können Sie keine anderen Kriterien angeben.

  • Um die Agent-Richtlinie auf eine bestimmte Gruppe von VMs in einer Zone anzuwenden, beschreiben Sie die VMs mit einer Kombination der folgenden Optionen:

    • Labels auf der VM, entweder zum Ein- oder Ausschließen:
      • inclusionLabels:
      • exclusionLabels:
    • Betriebssystem: inventories:

    Mit dem folgenden Filter wird beispielsweise die Agent-Richtlinie auf die VMs mit den angegebenen Betriebssystemen angewendet, die das Label "env=prod" und nicht das Label "app=web" haben:

    instanceFilter:
      inclusionLabels:
      - labels:
          env: prod
      exclusionLabels:
      - labels:
          app: web
      inventories:
      - osShortName: rhel
        osVersion: '7.*'
      - osShortName: debian
        osVersion: '11'
    

    Informationen zum Ermitteln der Betriebssystemwerte finden Sie unter Informationen zum Betriebssystem ermitteln.

Terraform

Wenn Sie eine vollständig benutzerdefinierte Kundenservicemitarbeiterrichtlinie erstellen möchten, verwenden Sie das Modul ops-agent-policy im Verzeichnis modules des terraform-google-cloud-operations-Repositories. Für dieses Modul sind dieselben Informationen erforderlich wie für den Befehl gcloud compute instances ops-agents policies create. Eine Beschreibung aller Felder, die zum Beschreiben einer Agent-Richtlinie verwendet werden, finden Sie auf dem Tab Befehlszeile.

Das Verzeichnis examples im Repository terraform-google-cloud-operations enthält Dateien mit vielen Variablen, die für das ops-agent-policy-Modul erforderlich sind. Weitere Informationen finden Sie unter Beispiele für Richtlinienkonfigurationen.

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle. Informationen zur Funktionsweise von Terraform finden Sie unter Terraform verwenden.

Status von Agent-Richtlinien prüfen

In diesem Abschnitt wird beschrieben, wie Sie den Status von erstellten Richtlinien und die Installation des Ops-Agents prüfen können. Diese Informationen können auch bei der Fehlerbehebung in Bezug auf Ihre Agent-Richtlinien hilfreich sein.

Compute Engine-Seite Betriebssystemrichtlinien

Die Seite Betriebssystemrichtlinien für Compute Engine enthält Informationen zu den Agent-Richtlinien, die den Ops-Agent verwalten, und zu VMs auf dem Tab VM-Instanzen. Beispiel:

  • Die Spalte Status gibt an, ob eine Richtlinie erfolgreich installiert wurde ("Konform"), in Bearbeitung ("Ausstehend"), möglicherweise fehlgeschlagen ("Unbekannt") oder nicht vorhanden ("Keine Richtlinien").
  • Die Spalte VM überwacht gibt an, ob der Ops-Agent von OS Config verwaltet wird ("Überwacht") oder nicht ("Nicht überwacht").

    Wenn eine Richtlinie „Konform“ ist, wird die VM jedoch „Nicht überwacht“ angezeigt, und es liegt möglicherweise ein Problem bei der Installation des Ops-Agents vor. Unter Umständen ist bereits ein Legacy-Agent installiert.

Öffnen Sie in der Google Cloud Console die Seite Betriebssystemrichtlinien:

Zu „Betriebssystemrichtlinien“

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

Auf dem Tab Betriebssystemrichtlinien von Compute Engine werden unter VM-Instanzen Informationen zu Agents angezeigt, die von allen Betriebssystemrichtlinien in Ihrem Google Cloud-Projekt verwaltet werden. Diese Richtlinien sind mit goog-ops-agent-policy gekennzeichnet.

  • Der Indikator goog-ops-agent-policy enthält mehrere Arten von Richtlinien:
    • Mit den gcloud compute instances ops-agents policies-Befehlen erstellte Richtlinien.
    • Richtlinien, die für Sie erstellt wurden, wenn Sie die Installation des Ops-Agents beim Erstellen der VM angefordert haben.
    • Richtlinien, die mit Terraform zum Verwalten des Ops-Agents erstellt wurden.

    Zur Unterscheidung zwischen Richtlinien verwenden Sie den Tab Zuweisungen von Betriebssystemrichtlinien auf der Seite. Dort finden Sie die Richtlinien-IDs für alle Richtlinienzuweisungen in Ihrem Google Cloud-Projekt.

  • Diese Spalte VM überwacht spiegelt nicht die Installation des Ops-Agents auf andere Weise wider, z. B. durch eine manuelle Installation oder durch Beta-Agent-Richtlinien.

Cloud Monitoring-Seite VM-Instanzen

Die Seite VM-Instanzen in Cloud Monitoring enthält die Spalte Agent, in der der auf jeder VM installierte Agent aufgeführt ist. Der Ops-Agent enthält einen Indikator für installierte Agents, die älter als die neueste Version sind.

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

Zum VM-Instanz-Dashboard

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

Beispielkonfigurationen für Richtlinien

In diesem Abschnitt werden Beispiele für die Einrichtung von Richtlinien für Kundenservicemitarbeiter beschrieben, wenn Sie das Google Cloud SDK oder Terraform verwenden.

Befehlszeile

Beispiele für Dateien mit Richtlinienbeschreibungen

Dieser Abschnitt enthält einige Beispiele für YAML-Dateien mit Richtlinienbeschreibungen für eine Vielzahl von Szenarien. In den Beispielen wird davon ausgegangen, dass Sie den YAML-Inhalt in eine Datei mit dem Namen agent-policy-description.yaml einfügen und die Richtlinie in der Zone us-central1-a mit einem Befehl wie diesem erstellen:

gcloud compute instances ops-agents policies create POLICY_ID \
  --zone us-central1-a \
  --file agent-policy-description.yaml \
  --project PROJECT_ID

Auf allen VMs installieren

Verwenden Sie die folgende Richtlinienbeschreibung, um die neueste Version des Ops-Agents auf allen VMs in der Zone us-central1-a zu installieren:

agentsRule:
  packageState: installed
  version: latest
instanceFilter:
  all: True

Aus allen VMs entfernen

Verwenden Sie die folgende Richtlinienbeschreibung, um die neueste Version des Ops-Agents auf allen VMs in der Zone us-central1-a zu entfernen:

agentsRule:
  packageState: removed
  version: latest
instanceFilter:
  all: True

Auf VMs basierend auf Labels installieren

Verwenden Sie die folgende Richtlinienbeschreibung, um die neueste Version des Ops-Agents auf allen VMs in der Zone us-central1-a mit dem Label „env=prod“ oder „app=web“ zu installieren:

agentsRule:
  packageState: installed
  version: latest
instanceFilter:
  inclusionLabels:
  - labels:
      env: prod
  - labels:
      app: web

Wenn Sie mehrere labels:-Einträge für den Ein- oder Ausschluss angeben, stimmt eine VM überein, wenn eines der Labels vorhanden ist. Das heißt, die ein- oder auszuschließenden Labels werden als logischer OR-Vorgang und nicht als logischer AND-Vorgang abgeglichen.

Auf VMs basierend auf anderen Labels installieren

Verwenden Sie die folgende Richtlinie, um die neueste Version des Ops-Agents auf allen VMs in der Zone us-central1-a zu installieren, auf denen Debian 11 ausgeführt wird, außer denen mit den Labels „env=prod“ und „app=web6“. Befolgen Sie dabei die Richtlinienbeschreibung:

agentsRule:
  packageState: installed
  version: latest
instanceFilter:
  exclusionLabels:
  - labels:
      env: prod
      app: web6
  inventories:
  - osShortName: debian
    osVersion: '11'

Wenn Sie mehrere Schlüssel/Wert-Paare unter einem einzelnen labels:-Eintrag für den Ein- oder Ausschluss angeben, stimmt eine VM überein, wenn alle Labels vorhanden sind, d. h. die Labels werden als logischer AND-Vorgang und nicht als logischer OR-Vorgang abgeglichen.

Auf VMs je nach Betriebssystem installieren

Um die neueste Version 2 des Ops-Agents auf allen VMs zu installieren, auf denen Debian 11 oder RHEL 7.* in der Zone us-central1-a ausgeführt wird, verwenden Sie die folgende Richtlinienbeschreibung:

agentsRule:
  packageState: installed
  version: 2.*.*
instanceFilter:
  inventories:
  - osShortName: rhel
    osVersion: '7.*'
  - osShortName: debian
    osVersion: '11'

Terraform

In diesem Abschnitt werden die Beispiele im Verzeichnis examples des terraform-google-cloud-operations-Repositorys beschrieben. Diese Beispiele enthalten Dateien, in denen viele der vom ops-agent-policy-Modul benötigten Variablen für Sie konfiguriert werden. Sie können die Beispiele auch kopieren und ändern. In diesen Beispielen wird beispielsweise der Ops-Agent installiert. Sie können sie so ändern, dass der Agent stattdessen gelöscht wird.

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Beispiel: ops_agent_policy_install_all

In diesem Beispiel wird die neueste Version des Ops-Agents auf allen infrage kommenden VMs in Ihrem Google Cloud-Projekt installiert.

Wenn Sie den Befehl terraform plan oder terraform apply ausführen, werden Sie aufgefordert, die folgenden Werte einzugeben:

  • PROJECT_ID: Die ID Ihres Google Cloud-Projekts

Beispiel: ops_agent_policy_install_all_in_region

In diesem Beispiel wird die neueste Version des Ops-Agents auf allen infrage kommenden VMs in einer bestimmten Region wie us-west1 installiert. Eine Region enthält mehrere Zonen, in diesem Fall us-west-1a, us-west-1b und us-west-1c.

Wenn Sie den Befehl terraform plan oder terraform apply ausführen, werden Sie aufgefordert, die folgenden Werte einzugeben:

  • PROJECT_ID: Die ID Ihres Google Cloud-Projekts
  • REGION: Die Region, in der der Agent auf VMs installiert werden soll

Beispiel: ops_agent_policy_install_all_in_zone

In diesem Beispiel wird die neueste Version des Ops-Agents auf allen infrage kommenden VMs in einer bestimmten Zone wie us-central1-a installiert.

Wenn Sie den Befehl terraform plan oder terraform apply ausführen, werden Sie aufgefordert, die folgenden Werte einzugeben:

  • PROJECT_ID: Die ID Ihres Google Cloud-Projekts
  • ZONE: Die Zone, in der der Agent auf VMs installiert werden soll

Fehlerbehebung bei GA-Agent-Richtlinien

Dieser Abschnitt enthält Informationen zur Behebung von Problemen mit GA-Agent-Richtlinien für den Ops-Agent. Die unter Status von Agent-Richtlinien prüfen beschriebenen Informationen können ebenfalls hilfreich sein.

Die ops-agents policy-Befehle schlagen fehl

Wenn ein gcloud compute instances ops-agents policies-Befehl fehlschlägt, wird in der Antwort ein Validierungsfehler angezeigt. Korrigieren Sie diesen Fehler. Ändern Sie dafür die Befehlsargumente sowie die Flags wie in der Fehlermeldung vorgeschlagen.

Zusätzlich zu den Validierungsfehlern können Fehler angezeigt werden, die auf die folgenden Bedingungen hinweisen:

Diese Schritte werden in den folgenden Abschnitten näher erläutert.

Unzureichende IAM-Berechtigung

Wenn ein gcloud compute instances ops-agents policies-Befehl mit einem Berechtigungsfehler fehlschlägt, führen Sie das Skript prepare-for-ops-agents-policies.sh wie unter Vorbereitung beschrieben aus. um die OS Config-Richtlinienrollen einzurichten:

Weitere Informationen zum Skript prepare-for-ops-agents-policies.sh finden Sie unter Skript prepare-for-ops-agents-policies.sh.

OS Config API ist nicht aktiviert

Ein Beispiel für einen solchen Fehler sieht so aus:

API [osconfig.googleapis.com] not enabled on project PROJECT_ID.
Would you like to enable and retry (this will take a few minutes)?
(y/N)?

Sie können y eingeben, um die API zu aktivieren, oder das Skript prepare-for-ops-agents-policies.sh ausführen, wie in Vorbereitung beschrieben, um alle erforderlichen Berechtigungen zuzuweisen. Wenn Sie bei der Eingabeaufforderung in der Fehlermeldung y eingeben, müssen Sie dennoch das Skript prepare-for-ops-agents-policies.sh ausführen, um die erforderlichen Berechtigungen festzulegen.

Mit den folgenden Befehlen können Sie prüfen, ob die OS Config API für das Projekt aktiviert ist:

gcloud services list --project PROJECT_ID | grep osconfig.googleapis.com

Die erwartete Ausgabe sieht so aus:

osconfig.googleapis.com    Cloud OS Config API

Die Richtlinie ist bereits vorhanden

Ein Beispiel für einen solchen Fehler sieht so aus:

ALREADY_EXISTS: Requested entity already exists

Dieser Fehler bedeutet, dass diese Richtlinie bereits mit demselben Namen, derselben Projekt-ID und derselben Region vorhanden ist. Sie können dies mit dem Befehl gcloud compute instances ops-agents policies describe prüfen.

Die Richtlinie existiert nicht.

Ein Beispiel für einen solchen Fehler sieht so aus:

NOT_FOUND: Requested entity was not found

Dieser Fehler kann bedeuten, dass die Richtlinie nie erstellt oder gelöscht wurde oder dass die angegebene Richtlinien-ID falsch ist. Achten Sie darauf, dass die in einem gcloud compute instances ops-agents policies describe-, update- oder delete-Befehl verwendete POLICY_ID einer vorhandenen Richtlinie entspricht. Eine Liste der Agent-Richtlinien rufen Sie mit dem Befehl gcloud compute instances ops-agents policies list ab.

Die Richtlinie wurde erstellt, hat aber scheinbar keine Auswirkungen

OS Config-Agents werden auf jeder Compute Engine-Instanz bereitgestellt, um die Pakete für die Logging- und Monitoring-Agents zu verwalten. Die Richtlinie hat möglicherweise keine Auswirkungen, weil der zugrunde liegende OS Config-Agent nicht installiert ist.

Linux

Mit dem folgenden Befehl können Sie prüfen, ob der OS Config-Agent installiert ist.

gcloud compute ssh instance-id \
    --project project-id \
    -- sudo systemctl status google-osconfig-agent

Die Ausgabe sieht beispielsweise so aus:

    google-osconfig-agent.service - Google OSConfig Agent
    Loaded: loaded (/lib/systemd/system/google-osconfig-agent.service; enabled; vendor preset:
    Active: active (running) since Wed 2020-01-15 00:14:22 UTC; 6min ago
    Main PID: 369 (google_osconfig)
     Tasks: 8 (limit: 4374)
    Memory: 102.7M
    CGroup: /system.slice/google-osconfig-agent.service
            └─369 /usr/bin/google_osconfig_agent

Windows

Mit den folgenden Schritten können Sie prüfen, ob der OS Config-Agent installiert ist.

  1. Stellen Sie mithilfe von RDP oder einem ähnlichen Tool eine Verbindung zu Ihrer Instanz her und melden Sie sich bei Windows an.

  2. Öffnen Sie ein PowerShell-Terminal und führen Sie den folgenden PowerShell-Befehl aus. Sie benötigen keine Administratorberechtigungen.

    Get-Service google_osconfig_agent
    

Die Ausgabe sieht beispielsweise so aus:

    Status   Name               DisplayName
    ------   ----               -----------
    Running  google_osconfig_a… Google OSConfig Agent

Wenn der OS Config-Agent nicht installiert ist, verwenden Sie möglicherweise ein Betriebssystem, das VM Manager nicht unterstützt. Im Dokument Details zu Betriebssystemen von Compute Engine wird angegeben, welche VM Manager-Features für die einzelnen Compute Engine-Betriebssysteme unterstützt werden.

Wenn das Betriebssystem VM Manager unterstützt, können Sie den OS Config-Agent manuell installieren.

Der OS Config-Agent ist installiert, aber installiert den den Ops-Agent nicht

Um festzustellen, ob Fehler auftreten, wenn der OS Config-Agent Richtlinien anwendet, können Sie das Log des OS Config-Agents prüfen. Verwenden Sie dazu entweder den Log-Explorer oder verwenden Sie SSH bzw. RDP, um einzelne Compute Engine-Instanzen zu überprüfen.

Verwenden Sie zum Aufrufen der OS Config-Agent-Logs im Log-Explorer den folgenden Filter:

resource.type="gce_instance"
logId(OSConfigAgent)

So rufen Sie die Logs des OS Config-Agents auf:

CentOS, RHEL,
SLES, SUSE

Führen Sie dazu diesen Befehl aus:

gcloud compute ssh INSTANCE_ID \
    --project PROJECT_ID \
    -- sudo cat /var/log/messages \
       | grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"

Debian, Ubuntu

Führen Sie dazu diesen Befehl aus:

gcloud compute ssh INSTANCE_ID \
    --project PROJECT_ID \
    -- sudo cat /var/log/syslog \
       | grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"

Windows

  1. Stellen Sie mithilfe von RDP oder einem ähnlichen Tool eine Verbindung zu Ihrer Instanz her und melden Sie sich bei Windows an.

  2. Öffnen Sie die Anwendung „Ereignisanzeige“, wählen Sie Windows-Logs > Anwendung aus und suchen Sie nach Logs, bei denen Source gleich OSConfigAgent ist.

Wenn beim Herstellen der Verbindung zum OS Config-Dienst ein Fehler auftritt, führen Sie das Skript prepare-for-ops-agents-policies.sh aus, wie unter Vorbereitung beschrieben, um die Metadaten von OS Config einzurichten.

Mit dem folgenden Befehl können Sie prüfen, ob die OS Config-Metadaten aktiviert sind.

gcloud compute project-info describe \
    --project PROJECT_ID \
    | grep "enable-osconfig\|enable-guest-attributes" -A 1

Die erwartete Ausgabe sieht so aus:

- key: enable-guest-attributes
  value: 'TRUE'
- key: enable-osconfig
  value: 'TRUE'

Der Ops-Agent ist installiert, funktioniert aber nicht ordnungsgemäß

Weitere Informationen zur Fehlerbehebung bei Ops-Agent-Problemen finden Sie unter Fehlerbehebung beim Ops-Agent.

Logs auf Debug-Ebene für den OS Config-Agent aktivieren

Beim Melden eines Problems kann es nützlich sein, das Logging auf Debug-Ebene im OS Config-Agent zu aktivieren.

Sie können die osconfig-log-level: debug-Metadaten festlegen, um das Logging auf Debug-Ebene für den OS Config-Agent zu aktivieren Die dabei erfassten Logs bieten Ihnen weitere Informationen für die Untersuchung.

Führen Sie den folgenden Befehl aus, um das Logging auf Debug-Ebene für das gesamte Projekt zu aktivieren:

gcloud compute project-info add-metadata \
    --project PROJECT_ID \
    --metadata osconfig-log-level=debug

Führen Sie den folgenden Befehl aus, um das Logging auf Debug-Ebene für eine VM zu aktivieren:

gcloud compute instances add-metadata INSTANCE_ID \
    --project PROJECT_ID \
    --metadata osconfig-log-level=debug

Hilfsskripts

In diesem Abschnitt finden Sie zusätzliche Informationen zu den in diesem Dokument beschriebenen Hilfsskripts:

Das Skript prepare-for-ops-agents-policies.sh

Nachdem Sie das Skript prepare-for-ops-agents-policies.sh heruntergeladen haben, können Sie mithilfe des Skripts die folgenden Aktionen auf der Grundlage der von Ihnen angegebenen Argumente ausführen:

  • Für das Projekt werden die Cloud Logging API, die Cloud Monitoring API und die OS Config API aktiviert.

    Wenn die OS Config API noch nicht aktiviert wurde, wird sie im Modus mit eingeschränkten Features aktiviert. Dies reicht für die Verwaltung von Agent-Richtlinien aus. Weitere Informationen finden Sie unter Preise.

  • Gewähren Sie dem Compute Engine-Standarddienstkonto die Identitäts- und Zugriffsverwaltungsrollen Logs Writer (roles/logging.logWriter) und Monitoring Metric Writer (roles/monitoring.metricWriter) zu, damit die Agenten Protokolle und Metriken an die Protokollierungs- und Cloud-Überwachungs-APIs schreiben können.

  • Aktivieren Sie die OS Config-Metadaten für das Projekt, damit der OS Config-Agent auf jeder VM aktiv ist.

  • Weisen Sie dem Nicht-Inhaber-Nutzer oder Dienstkonto, das zum Erstellen und Verwalten von Richtlinien erforderlich ist, eine der folgenden IAM-Rollen zu. Projektinhaber haben vollständigen Zugriff zum Erstellen und Verwalten von Richtlinien. Allen anderen Nutzern oder Dienstkonten muss eine der folgenden Rollen zugewiesen sein:

    Beim Ausführen des Skripts können Sie die OSPolicyAssignment-Rollen als admin, editor oder viewer angeben. Das Skript ordnet diese Werte den Rollennamen roles/osconfig.osPolicyAssignment* zu.

Die folgenden Beispiele zeigen einige gängige Aufrufe für das Skript. Weitere Informationen finden Sie in den Kommentaren im Skript selbst.

Zum Aktivieren der APIs weisen Sie dem Standarddienstkonto die erforderlichen Rollen zu und aktivieren die OS Config-Metadaten für ein Projekt. Gehen Sie dazu so vor:

bash prepare-for-ops-agents-policies.sh --project=PROJECT_ID

So führen Sie das Skript aus, um einem Nutzer, der nicht die Rolle "Inhaber" (roles/owner) für das Projekt hat, eine der OS Config-Rollen zuzuweisen:

bash prepare-for-ops-agents-policies.sh --project=PROJECT_ID \
  --iam-user=USER_EMAIL \
  --iam-policy-access=[admin|editor|viewer]

So führen Sie das Skript aus, um einem nicht standardmäßigen Dienstkonto zusätzlich eine der OS Config-Rollen zuzuweisen:

bash prepare-for-ops-agents-policies.sh --project=PROJECT_ID \
  --iam-service-account=SERVICE_ACCT_EMAIL \
  --iam-policy-access=[admin|editor|viewer]

Das Skript diagnose_policies.sh

Wenn eine Projekt-ID, eine Compute Engine-Instanz-ID, eine Compute Engine-Zone und die Agent-Richtlinien-ID festgelegt sind, erfasst das Skript diagnose_policies.sh automatisch die erforderliche Informationen zur Diagnose von Problemen mit der Richtlinie:

  • Die Version des OS Config-Agents
  • Die zugrunde liegende Zuweisung von Betriebssystemrichtlinien
  • Die Zuweisungen von Betriebssystemrichtlinien, die für diese Compute Engine-Instanz gelten
  • Eine Beschreibung dieser Compute Engine-Instanz

Führen Sie den folgenden Befehl aus, um das Skript aufzurufen:

bash diagnose_policies.sh --project-id=PROJECT_ID \ 
  --gce-instance-id=INSTANCE_ID \
  --policy-id=POLICY_ID \
  --zone=ZONE

Preise

Die gcloud compute instances ops-agents policies-Befehle werden mithilfe von Ressourcen für die Zuweisung von Betriebssystemrichtlinien aus VM Manager implementiert. Das Skript prepare-for-ops-agents-policies.sh, das unter Bevor Sie beginnen beschrieben wird, richtet VM Manager im Modus mit eingeschränkten Funktionen (OSCONFIG_B) ein, der für die Erstellung und Verwaltung von Agentenrichtlinien ausreichend ist. Die Nutzung von VM Manager im eingeschränkten Modus ist kostenlos.

Wenn Sie VM Manager im Modus mit allen Funktionen (OSCONFIG_C) konfiguriert haben, können Kosten anfallen.