Utilizza i criteri degli agenti (GA)

Puoi creare e gestire i criteri degli agenti utilizzando Comando gcloud compute instances ops-agents policies in Google Cloud CLI o ops-agent-policy Modulo Terraform. I criteri dell'agente utilizzano Suite di strumenti VM Manager in Compute Engine per gestire i criteri del sistema operativo, che può automatizzare il deployment e la manutenzione delle configurazioni software come Ops Agent. Questi criteri non possono essere applicati alla versione precedente Agente Monitoring o l'agente Logging legacy.

I criteri dell'agente GA utilizzano Assegnazione dei criteri del sistema operativo risorse nell'API OS Config. Sebbene esista un gruppo di comandi CLI gcloud generale per la gestione delle assegnazioni dei criteri del sistema operativo, gcloud compute os-config os-policy-assignments, il gruppo di comandi gcloud compute instances ops-agents policies è progettato specificamente per i criteri dell'agente descritti in questo documento.

Prima di iniziare

Il modulo Terraform ops-agent-policy è basato sulla gcloud compute instances ops-agents policies di Google Cloud SDK. Per informazioni su come funziona Terraform, consulta Utilizzo di Terraform.

Prima di utilizzare Google Cloud CLI o il modulo Terraform per creare l'agente segui questi passaggi:

  1. Se utilizzerai i comandi gcloud compute instances ops-agents policies e se non l'hai ancora fatto, quindi installa Google Cloud CLI.

  2. Se intendi utilizzare il modulo Terraform, segui questi passaggi:

    1. Per informazioni sull'installazione di Terraform, consulta Installare e configurare Terraform. Terraform è già installato in Cloud Shell.

    2. Clona il repository terraform-google-cloud-operations, che contiene il modulo ops-agent-policy:

      git clone https://github.com/terraform-google-modules/terraform-google-cloud-operations
      
  3. Scarica ed esegui lo script prepare-for-ops-agents-policies.sh per abilitare le API richieste e impostare le autorizzazioni appropriate per l'utilizzo Google Cloud CLI o Terraform.

    Per informazioni sullo script, consulta The prepare-for-ops-agents-policies.sh script.

Disinstalla l'agente Monitoring e l'agente Logging legacy

Se stai creando un criterio per Ops Agent, assicurati che le tue VM non hanno installato l'agente Logging o l'agente Monitoring legacy. L'esecuzione Ops Agent e gli agenti legacy sulla stessa VM possono causare l'importazione di log duplicati o un conflitto nell'importazione delle metriche. Se necessario, disinstallare l'agente Monitoring e disinstallare il Agente Logging prima di creare un criterio per installare Ops Agent.

Verificare che l'agente OS Config sia installato

Potresti dover installare e configurare manualmente l'agente OS Config sulle VM precedenti a OS Config. Per informazioni sull'installazione e sulla verifica manuale dell'agente OS Config, consulta la lista di controllo per la verifica di VM Manager.

Trovare i valori per le informazioni sul sistema operativo

Se vuoi applicare i criteri degli agenti a sistemi operativi specifici o versioni, devi conoscere i valori utilizzati da OS Config per fare riferimento a loro.

Per trovare i valori per i campi osShortName e osVersion di una VM, usa i seguenti comandi:

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

Questi comandi richiedono l'installazione dell'agente OS Config sulla VM.

Crea un criterio agente per gestire l'agente operativo

Riga di comando

Per creare un criterio dell'agente, utilizza il comando gcloud compute instances ops-agents policies create. Questo comando ha la seguente struttura:

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

Quando utilizzi questo comando, sostituisci le variabili come segue:

  • POLICY_ID è un nome per il criterio.
  • ZONE è una zona Compute Engine. I criteri dell'agente vengono applicati solo alle VM in la zona specificata; per applicare un criterio in più zone, è necessario creare più criteri.
  • path/to/policy-description-file.yaml è il percorso di un file YAML che descrive il criterio. Per informazioni sulla struttura di questo file, consulta Descrivere i criteri dell'agente.
  • PROJECT_ID è l'ID del tuo progetto Google Cloud.

Per informazioni sugli altri comandi del gruppo di comandi le opzioni disponibili, vedi gcloud compute instances ops-agents policies.

Descrivere i criteri degli agenti

Fornisci le informazioni relative alle norme all'create gcloud compute instances ops-agents policies tramite creando un file YAML che descriva il criterio e passando questo file come valore dell'attributo --file .

Questa sezione descrive la struttura del file di descrizione dei criteri. Per ulteriori informazioni, vedi Esempi di file di descrizione dei criteri.

Formato del file YAML policy-description

Il file di descrizione per un criterio di agente deve includere due gruppi di campi:

  • agentsRule, che indica al criterio dell'agente se installare o rimuovere Ops Agent e specifica la versione di Ops Agent su cui operare.

  • instanceFilter, che descrive le VM su cui applicare il criterio.

Struttura del gruppo di campi agentsRule

Il gruppo di campi agentsRule ha la seguente struttura:

agentsRule:
  packageState: installed|removed
  version: latest|2.*.*|2.x.y
  • Il campo packageState indica al criterio lo stato previsto dell'agente Ops. I valori validi sono installed e removed.
  • Il campo version indica la versione di Ops Agent da installare o rimuovere. Puoi specificare i seguenti valori:

    • latest è la versione più recente di Ops Agent.
    • 2.*.* è la release più recente della versione principale 2 di Ops Agent.
    • 2.x.y indica una release specifica della versione principale 2.

    Per informazioni sulle versioni disponibili di Ops Agent, consulta il repository GitHub dell'agente.

Struttura del gruppo di campi instanceFilter

Il gruppo di campi instanceFilter indica le VM in una zona a cui si applica il filtro. Questo gruppo di campi è una rappresentazione YAML della struttura InstanceFilter utilizzata dalla risorsa OSPolicyAssignment nell'API OS Config.

Il gruppo di campi instanceFilter ha una delle seguenti strutture:

  • Per applicare il criterio dell'agente a tutte le VM in una zona, utilizza quanto segue:

    instanceFilter:
      all: True
    

    Se utilizzi il filtro all: True, non puoi specificare altri criteri.

  • Per applicare il criterio dell'agente a un insieme specifico di VM in una zona, descrivi le VM utilizzando una combinazione di uno dei seguenti elementi:

    • Etichette sulla VM, per inclusione o esclusione:
      • inclusionLabels:
      • exclusionLabels:
    • Sistema operativo: inventories:

    Ad esempio, il seguente filtro applica il criterio dell'agente alle VM con i sistemi operativi specificati con l'etichetta "env=prod" e non hanno l'etichetta "app=web":

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

    Per informazioni su come trovare i valori del sistema operativo, consulta Trovare informazioni sul sistema operativo.

Terraform

Per creare un criterio di agente completamente personalizzato, utilizza il metodo Modulo ops-agent-policy nel modules del repository terraform-google-cloud-operations. Questo modulo richiede le stesse informazioni richieste dal comando gcloud compute instances ops-agents policies create. Per una descrizione di tutti i campi utilizzati per descrivere un criterio dell'agente, seleziona la scheda Comando.

La directory examples nel repository terraform-google-cloud-operations contiene file che forniscono molte delle variabili necessarie al modulo ops-agent-policy. Per ulteriori informazioni, vedi Esempi di configurazioni di criteri.

Scopri come applicare o rimuovere un file Terraform. consulta la sezione Nozioni di base su Terraform comandi. Per informazioni sul funzionamento di Terraform, consulta Utilizzare Terraform.

Verifica lo stato dei criteri dell'agente

Questa sezione descrive come controllare lo stato dei criteri creati e l'installazione di Ops Agent. Queste informazioni possono essere utili anche per la risoluzione dei problemi relativi alle norme degli agenti.

Pagina Norme del sistema operativo di Compute Engine

La pagina Criteri del sistema operativo di Compute Engine fornisce informazioni su i criteri degli agenti che gestiscono Ops Agent e le VM sul Scheda Istanze VM. Ad esempio:

  • La colonna Stato indica se un criterio è stato correttamente eseguito installata ("Conforme"), in corso ("In attesa"), potrebbe non essere riuscita ("Sconosciuto") o mancante ("Nessun criterio").
  • La colonna VM monitorata indica se Ops Agent è gestito da OS Config ("Monitorata") o meno ("Non monitorata").

    Se un criterio è "Conforme" ma la VM mostra "Non monitorata", potrebbe esserci un problema durante l'installazione di Ops Agent. Potresti, ad esempio, ad esempio, avere un agente legacy installato.

Nella console Google Cloud, vai alla pagina Criteri del sistema operativo:

Vai a Criteri del sistema operativo

Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

La scheda Istanze VM in Criteri OS di Compute Engine mostra informazioni sugli agenti gestiti da tutti i criteri OS nel tuo progetto Google Cloud. Questi criteri sono etichettati come goog-ops-agent-policy.

  • L'indicatore goog-ops-agent-policy include diversi tipi di criteri:

    Per distinguere i criteri, utilizza la scheda Assegnazioni dei criteri del sistema operativo nella pagina per visualizzare gli ID dei criteri per tutte le assegnazioni dei criteri nel tuo progetto Google Cloud.

  • Questa colonna VM monitorata non riflette l'installazione di Ops Agent tramite altri mezzi, come l'installazione manuale o tramite i criteri dell'agente beta.

Pagina Istanze VM di Cloud Monitoring

La pagina Istanze VM in Cloud Monitoring include una Colonna Agent che elenca l'agente installato su ogni VM e per l'agente Ops Agent include un indicatore per gli agenti installati precedenti a all'ultima versione.

Nella console Google Cloud, vai alla pagina Dashboard Istanze VM:

Vai alla dashboard delle istanze VM

Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

Configurazioni di criteri di esempio

Questa sezione descrive esempi di configurazione dei criteri degli agenti quando si utilizzano lo SDK Google Cloud o Terraform.

Riga di comando

File di descrizione dei criteri di esempio

Questa sezione fornisce alcuni esempi di file YAML di descrizione dei criteri per una serie di scenari. Gli esempi presuppongono che gli attributi YAML in un file denominato agent-policy-description.yaml e che crei il criterio nella zona us-central1-a utilizzando un comando ad esempio:

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

Installa su tutte le VM

Per installare la versione più recente di Ops Agent su tutte le VM nella zona us-central1-a, utilizza la seguente descrizione del criterio:

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

Rimuovi da tutte le VM

Per rimuovere la versione più recente dell'agente operativo su tutte le VM nella zona us-central1-a, utilizza la seguente descrizione del criterio:

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

Installazione su VM in base alle etichette

Per installare la versione più recente dell'agente operativo su tutte le VM nella zona us-central1-a con l'etichetta "env=prod" o "app=web", utilizza la seguente descrizione del criterio:

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

Quando specifichi più voci labels: per l'inclusione o l'esclusione, una VM corrisponde se è presente una delle etichette. In altre parole, i set di etichette per l'inclusione o l'esclusione vengono abbinati come operazione OR logica, non AND logica.

Installa su VM in base ad altre etichette

Per installare la versione più recente di Ops Agent su tutte le VM in us-central1-a zona che esegue Debian 11, ad eccezione di quelle con le etichette "env=prod" e "app=web6", utilizza la seguente descrizione dei criteri:

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

Quando specifichi più coppie chiave-valore in una singola voce labels: per l'inclusione o l'esclusione, una VM corrisponde se sono presenti tutte le etichette; ovvero le etichette vengono trovate come un'operazione AND logica, non come un per l'operazione logica OR.

Installazione su VM in base al sistema operativo

Per installare l'ultima versione 2 di Ops Agent su tutte le VM in esecuzione Debian 11 o RHEL 7.* nella zona us-central1-a, usa quanto segue descrizione delle norme:

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

Terraform

In questa sezione vengono descritti gli esempi presenti nella directory examples del repository terraform-google-cloud-operations. Questi esempi contengono file che configurano per te molte delle variabili richieste dal modulo ops-agent-policy. Puoi anche copiare e modificare esempi. Ad esempio, tutti questi esempi installano Ops Agent; puoi modificarle per eliminare l'agente.

Scopri come applicare o rimuovere un file Terraform. consulta la sezione Nozioni di base su Terraform comandi.

Esempio: ops_agent_policy_install_all

Questo esempio installa la versione più recente di Ops Agent su tutte le VM idonee del tuo progetto Google Cloud.

Quando esegui il comando terraform plan o terraform apply, ti vengono richiesti i seguenti valori:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud

Esempio: ops_agent_policy_install_all_in_region

Questo esempio installa la versione più recente di Ops Agent su tutte le VM idonee in una determinata regione, ad esempio us-west1. Una regione contiene più zone, in questo caso us-west-1a, us-west-1b e us-west-1c.

Quando esegui l'terraform plan o terraform apply, ti viene chiesto quanto segue valori:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • REGION: la regione in cui installare l'agente sulle VM

Esempio: ops_agent_policy_install_all_in_zone

Questo esempio installa la versione più recente di Ops Agent su tutte le VM idonee in una determinata zona, ad esempio us-central1-a.

Quando esegui l'terraform plan o terraform apply, ti viene chiesto quanto segue valori:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • ZONE: la zona in cui installare l'agente sulle VM

Risolvere i problemi relativi ai criteri dell'agente GA

Questa sezione fornisce informazioni utili per risolvere i problemi relativi ai criteri dell'agente GA per l'agente Ops. Potrebbero essere utili anche le informazioni descritte in Verificare lo stato delle norme relative agli agenti.

I comandi ops-agents policy hanno esito negativo

In caso di errore di un comando gcloud compute instances ops-agents policies, la risposta mostra un errore di convalida. Correggi gli errori correggendo gli argomenti e i flag del comando come suggerito dal messaggio di errore.

Oltre agli errori di convalida, potresti notare errori che indicano le seguenti condizioni:

Nelle sezioni seguenti vengono descritte queste condizioni in modo più dettagliato.

Autorizzazione IAM insufficiente

Se un comando gcloud compute instances ops-agents policies non va a buon fine con un errore di autorizzazione, assicurati di aver eseguito lo script prepare-for-ops-agents-policies.sh come descritto in Prima di iniziare per configurare i ruoli dei criteri di OS Config:

Per ulteriori informazioni sullo script prepare-for-ops-agents-policies.sh, consulta Lo script prepare-for-ops-agents-policies.sh.

L'API OS Config non è abilitata

Un errore di esempio è simile al seguente:

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)?

Puoi inserire y per attivare l'API oppure puoi eseguire lo script prepare-for-ops-agents-policies.sh, descritto in Prima di iniziare, per concedere tutte le autorizzazioni necessarie. Se inserisci y al nel messaggio di errore, devi ancora eseguire prepare-for-ops-agents-policies.sh per impostare le autorizzazioni necessarie.

Per verificare che l'API OS Config sia abilitata per il progetto, esegui seguenti comandi:

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

Di seguito è riportato l'output previsto:

osconfig.googleapis.com    Cloud OS Config API

Il criterio non esiste

Un errore di esempio è simile al seguente:

NOT_FOUND: Requested entity was not found

Questo errore potrebbe significare che il criterio non è mai stato creato, che è stato o che l'ID criterio specificato non è corretto. Assicurati che il valore POLICY_ID utilizzato in un comando gcloud compute instances ops-agents policies, describe, update o delete corrisponda a un criterio esistente. Per ottenere un elenco degli agenti usa il comando gcloud compute instances ops-agents policies list.

Il criterio è stato creato, ma sembra non avere alcun effetto

Il deployment degli agenti OS Config su ogni istanza Compute Engine per gli agenti Logging e Monitoring. Il criterio potrebbe non avere alcun effetto se l'agente OS Config sottostante non installato.

Linux

Per verificare che l'agente OS Config sia installato, esegui questo comando:

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

Un output di esempio è:

    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

Per verificare che l'agente di configurazione del sistema operativo sia installato, svolgi i seguenti passaggi:

  1. Connettiti all'istanza utilizzando RDP o uno strumento simile e accedi a Windows.

  2. Apri un terminale PowerShell ed esegui il seguente comando PowerShell. Tu non necessitano di privilegi amministrativi.

    Get-Service google_osconfig_agent
    

Un output di esempio è:

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

Se l'agente di configurazione del sistema operativo non è installato, potresti utilizzare un sistema operativo che non supporta VM Manager. Il documento Dettagli del sistema operativo di Compute Engine indica quali funzionalità di VM Manager sono supportate per ciascun sistema operativo Compute Engine.

Se il sistema operativo supporta VM Manager, puoi installare l'agente OS Config manualmente.

L'agente OS Config è installato, ma non viene installato l'agente operativo

Per verificare se sono presenti errori quando l'agente OS Config applica i criteri, controllare il log dell'agente OS Config. Questa operazione può essere eseguita utilizzando Esplora log o utilizzo di SSH o RDP per controllare singoli Compute Engine di Compute Engine.

Per visualizzare i log dell'agente OS Config Esplora log, utilizza il seguente filtro:

resource.type="gce_instance"
logId(OSConfigAgent)

Per visualizzare i log degli agenti OS Config, segui questi passaggi:

CentOS, RHEL,
SLES, SUSE

Esegui questo comando:

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

Debian, Ubuntu

Esegui questo comando:

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

Windows

  1. Connettiti all'istanza utilizzando RDP o uno strumento simile e accedi a Windows.

  2. Apri l'app Visualizzatore eventi, poi seleziona Registri di Windows > Applicazione e cerca i log con Source uguale a OSConfigAgent.

Se si verifica un errore di connessione al servizio OS Config, assicurati di eseguire lo scriptprepare-for-ops-agents-policies.sh come descritto in Prima di iniziare per configurare i metadati di OS Config.

Per verificare che i metadati di OS Config siano abilitati, puoi eseguire il seguente comando:

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

Di seguito è riportato l'output previsto:

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

Ops Agent è installato, ma non funziona correttamente

Per ulteriori informazioni sul debug dei problemi di Ops Agent, consulta Risolvere i problemi di Ops Agent.

Abilita i log a livello di debug per l'agente OS Config

Può essere utile attivare la registrazione a livello di debug nell'agente OS Config quando si segnala un problema.

Puoi impostare i metadati osconfig-log-level: debug per abilitare a livello di debug per l'agente OS Config. I log raccolti contengono maggiori informazioni e aiutarti con l'indagine.

Per abilitare il logging a livello di debug per l'intero progetto, esegui questo comando:

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

Per attivare il logging a livello di debug per una VM, esegui il comando seguente:

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

Script di supporto

Questa sezione fornisce informazioni aggiuntive sugli script di supporto. descritti in questo documento:

Lo script prepare-for-ops-agents-policies.sh

Dopo aver scaricato lo script prepare-for-ops-agents-policies.sh, può utilizzare lo script per eseguire le azioni seguenti, in base agli argomenti che fornisci:

Gli esempi seguenti mostrano alcune invocazioni comuni dello script. Per ulteriori informazioni, vedi i commenti nello script stesso.

Per abilitare le API, concedi i ruoli necessari all'account di servizio predefinito, e abilita i metadati OS Config per un progetto, esegui lo script come segue:

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

Per concedere inoltre uno dei ruoli di configurazione del sistema operativo a un utente che non hanno il ruolo Proprietario (roles/owner) per il progetto, esegui lo script come che segue:

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

Per concedere inoltre uno dei ruoli di OS Config a un account di servizio non predefinito, esegui lo script come segue:

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

Lo script diagnose_policies.sh

Dato un ID progetto, un ID istanza Compute Engine, in una zona Compute Engine, e l'ID criterio dell'agente, Lo script diagnose_policies.sh raccoglie automaticamente le informazioni necessarie per diagnosticare i problemi relativi alle norme:

  • La versione dell'agente OS Config
  • L'assegnazione dei criteri del sistema operativo sottostante
  • Le assegnazioni dei criteri di sistema operativo applicabili a questa istanza Compute Engine
  • Una descrizione di questa istanza Compute Engine

Per richiamare lo script, esegui questo comando:

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

Prezzi

I comandi gcloud compute instances ops-agents policies vengono implementati utilizzando le risorse di assegnazione dei criteri del sistema operativo di VM Manager. Lo script prepare-for-ops-agents-policies.sh, descritto in Prima di iniziare, imposta di VM Manager modalità con funzionalità limitate (OSCONFIG_B), sufficiente per creare e gestire i criteri degli agenti. L'utilizzo di VM Manager in modalità limitata è senza costi.

Se hai configurato VM Manager in modalità con tutte le funzionalità (OSCONFIG_C), potresti dover sostenere dei costi.