Questo documento descrive come verificare l'installazione delle estensioni VM, diagnosticare i problemi relativi all'implementazione delle policy e allo stato delle estensioni VM e visualizzare i log di debug dell'agente guest sulle istanze di macchine virtuali (VM) Compute Engine. Segui queste istruzioni per identificare il motivo per cui un'estensione prevista non è stata installata, il motivo per cui un'estensione imprevista viene eseguita su una VM o il motivo per cui un processo di estensione è stato interrotto.
Prima di iniziare
Prima di risolvere i problemi relativi alle estensioni VM sulle VM, completa i seguenti prerequisiti:
- Verifica di disporre delle autorizzazioni necessarie per ispezionare le policy di estensione, i metadati per le estensioni supportate dal gestore di estensioni VM e gli stati delle estensioni VM nella gerarchia delle risorse Cloud de Confiance by S3NS . Per saperne di più, consulta Visualizza i dettagli e lo stato delle estensioni VM.
- Per identificare errori di installazione, arresti anomali o rollback prima di connetterti alle singole VM, controlla gli eventi storici di applicazione delle estensioni in Cloud Logging. Per saperne di più, consulta Visualizza i log delle estensioni VM.
- Per ispezionare i processi delle estensioni in esecuzione e i log di debug dell'agente guest direttamente su una VM, verifica di poterti connettere alla VM utilizzando SSH o RDP.
Verifica che un'estensione sia installata
Per verificare se un'estensione è installata e in esecuzione su una VM di Compute Engine, controlla lo stato dell'estensione della VM utilizzando i metodi di sola lettura. Connettiti alla VM solo se hai bisogno dei dettagli dei processi o dei log del sistema operativo guest.
Ispeziona lo stato dell'estensione VM utilizzando i metodi di sola lettura
Per controllare lo stato di runtime e lo stato di integrità delle estensioni installate senza connetterti alla VM, esegui il comando gcloud beta compute instances list-vm-extension-states o gcloud beta compute instances get-vm-extension-state oppure chiama i metodi dell'API REST equivalenti. La risposta restituisce la versione attiva di ogni estensione, lo stato di applicazione (enforcementState), lo stato di integrità (healthStatus), il messaggio di diagnostica (healthMsg) e l'ID della policy di gestione (policyId). Per ulteriori informazioni, vedi Visualizza gli stati delle estensioni VM su un'istanza.
Ispeziona i processi di estensione in esecuzione sulla VM
Se le query sullo stato remoto non restituiscono lo stato previsto, connettiti alla VM e controlla se il processo dell'estensione è in esecuzione nel sistema operativo guest.
La tabella seguente elenca i nomi dei processi per ogni estensione supportata:
| Nome estensione | Nome del processo dell'estensione |
|---|---|
google-cloud-sap-extension |
google_cloud_sap_agent |
google-cloud-workload-extension |
google_cloud_workload_agent |
ops-agent |
ops_agent |
Per verificare se il processo dell'estensione è in esecuzione sulla VM, seleziona il tuo sistema operativo:
Linux
Per elencare il processo di estensione in esecuzione, esegui questo comando:
ps aux | grep 'EXTENSION_PROCESS_NAME'
EXTENSION_PROCESS_NAME con il nome del processo dell'estensione della tabella precedente.
Ad esempio, per elencare il processo di estensione ops-agent, esegui questo comando:
ps aux | grep 'ops_agent'
Windows
Per elencare il processo di estensione in esecuzione, esegui questo comando:
tasklist | findstr "EXTENSION_PROCESS_NAME"
EXTENSION_PROCESS_NAME con il nome del processo dell'estensione della tabella precedente.
Ad esempio, per elencare il processo di estensione ops-agent, esegui questo comando:
tasklist | findstr "ops_agent"
Il seguente snippet mostra un esempio di output del comando ps quando l'estensione ops-agent è in esecuzione su una VM Linux:
.... /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3 ....
Esamina le voci di installazione dell'agente guest
Per verificare quando l'agente guest ha scaricato, estratto e avviato un plug-in di estensione, attiva e visualizza i log di debug per l'agente guest.
Il seguente snippet mostra esempi di voci di log dell'agente guest quando l'agente guest installa e avvia l'estensione ops-agent su una VM Linux:
my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87" my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]] my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-central1-a/ops-agent my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87 my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87) my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"
Risolvere i problemi di installazione
Se un'estensione non è installata su una VM o se su una VM viene eseguita un'estensione imprevista, diagnostica l'implementazione della policy, le etichette di destinazione e lo stato di applicazione prima di riprovare l'installazione.
Per identificare il motivo per cui l'installazione di un'estensione su una VM non è riuscita, completa i seguenti passaggi diagnostici:
- Attendi l'applicazione delle norme. L'implementazione di una policy, inclusi i nuovi tentativi, può richiedere fino a un'ora per essere completata nelle VM di destinazione. Per saperne di più sull'ispezione dello stato di avanzamento dell'implementazione, consulta Visualizza le policy delle estensioni.
- Controlla che le etichette di inclusione specificate nella policy corrispondano alle etichette della VM e verifica i metadati per le estensioni supportate dal gestore di estensioni VM:
- Per controllare i selettori delle etichette delle policy e i numeri di priorità nell'organizzazione, nella cartella o nel progetto, consulta Visualizza le policy di estensione.
- Per controllare i nomi, i numeri di versione e i livelli di assistenza delle estensioni supportate dal gestore di estensioni VM in tutte le zone o in una zona specifica, consulta Visualizza le estensioni e le versioni delle VM.
- Per controllare lo stato di applicazione, lo stato di integrità, il messaggio di diagnostica e l'ID della policy di gestione (
policyId), controlla lo stato dell'estensione sulla VM interessata. Gli stati di errore comuni includonoINSTALL_FAILED,INCOMPATIBLEeROLLED_BACK. Quando più policy hanno come target la stessa VM, il campopolicyIdmostra quale policy regola ogni estensione. Per saperne di più, consulta Visualizza gli stati delle estensioni VM su un'istanza. - Per identificare gli errori di installazione a livello di guest sulla VM, attiva e visualizza i log di debug per l'agente guest.
Riprova l'installazione dell'estensione
Dopo aver risolto il problema di configurazione della policy o del sistema operativo guest, applica nuovamente la configurazione della policy in modo che l'agente guest riprovi l'installazione sulle VM interessate.
Per riprovare a installare l'estensione, scegli una delle seguenti opzioni:
- Ricrea la policy: elimina la policy e poi creane una nuova.
Applica una policy temporanea con priorità più alta: per riprovare l'installazione su VM specifiche senza ricreare una policy che interessa un parco risorse di grandi dimensioni, completa i seguenti passaggi:
- Aggiungi un'etichetta temporanea, ad esempio
status=failed, alle VM in cui l'installazione non è riuscita. Crea una policy temporanea con una priorità più alta (un valore intero più basso) che ha come target l'etichetta temporanea. Ad esempio, se la policy originale utilizza la priorità predefinita
1000, per creare una policy temporanea con priorità500, esegui il seguente comando:gcloud compute zone-vm-extension-policies create temp-policy \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=status=failedDopo che l'agente guest ha installato l'estensione sulle VM di destinazione, elimina la policy temporanea.
Rimuovi l'etichetta temporanea dalle VM. L'estensione rimane installata perché la policy originale continua a governare queste VM.
- Aggiungi un'etichetta temporanea, ad esempio
Visualizza i log di debug per l'agente guest
Se le query sullo stato remoto e i log eventi di Logging non mostrano il motivo per cui un'estensione non è stata scaricata o avviata, attiva il logging di debug dettagliato nella sezione Core del file di configurazione dell'agente guest.
Per attivare e visualizzare i log di debug per l'agente guest, seleziona il tuo sistema operativo:
Linux
Per attivare il logging di debug su una VM Linux, completa i seguenti passaggi:
- Apri il file di configurazione dell'agente guest in
/etc/default/instance_configs.cfg. In
/etc/default/instance_configs.cfg, aggiungi le seguenti impostazioni. Se la sezione[Core]esiste già, aggiungilog_levelelog_verbosityin[Core]:[Core] log_level = 4 log_verbosity = 4Per riavviare l'agente guest, esegui questo comando:
sudo systemctl restart google-guest-agent-managerPer visualizzare i log dell'agente guest generati durante l'installazione dell'estensione, esegui questo comando:
journalctl -u google-guest-agent-manager
Windows
Per attivare il logging di debug su una VM Windows, completa i seguenti passaggi:
- Apri il file di configurazione dell'agente guest in
C:\Program Files\Google\Compute Engine\instance_configs.cfg. In
instance_configs.cfg, aggiungi le seguenti impostazioni. Se la sezione[Core]esiste già, aggiungilog_levelelog_verbosityin[Core]:[Core] log_level = 4 log_verbosity = 4In un prompt dei comandi o in una finestra di PowerShell con privilegi elevati, esegui i seguenti comandi per riavviare l'agente guest manager:
net stop GCEAgentManager net start GCEAgentManagerIn PowerShell, per visualizzare i log dell'agente guest generati durante l'installazione dell'estensione, esegui questo comando:
Get-Eventlog -Source google_guest_agent_manager -LogName Application
Risolvi gli errori comuni dei log dell'agente guest
Quando esamini i log di debug dell'agente guest, controlla se sono presenti errori di vincolo delle risorse che impediscono l'estrazione o l'esecuzione delle estensioni sulla VM.
La tabella seguente elenca gli errori comuni segnalati nei log di debug dell'agente guest e come risolverli:
| Condizione di errore | Risoluzione |
|---|---|
| Spazio su disco insufficiente | Se i log indicano che la VM non dispone di spazio su disco sufficiente per scaricare o estrarre l'archivio delle estensioni, elimina i file inutilizzati o ridimensiona il disco di avvio. |
| Utilizzo eccessivo delle risorse | Se i log indicano che l'agente guest ha interrotto l'estensione a causa di un utilizzo elevato della memoria o della CPU, modifica il tipo di macchina della VM in uno con più memoria o vCPU. |
Passaggi successivi
- Per esaminare l'avanzamento dell'implementazione e lo stato di integrità delle estensioni, consulta Visualizza i dettagli e lo stato delle estensioni VM.
- Per eseguire query sugli eventi di applicazione storici e controllare l'installazione in Logging, consulta Visualizza i log delle estensioni VM.
- Per creare dashboard di Cloud Monitoring e configurare avvisi per l'integrità dell'agente, l'utilizzo della CPU e della memoria utilizzata, consulta Monitora le estensioni VM.
- Per modificare le impostazioni di configurazione, cambiare le versioni bloccate o rimuovere gli agenti di cui è stato eseguito il deployment, consulta Gestisci le estensioni VM utilizzando le policy delle estensioni.