I criteri dell'agente consentono l'installazione e la manutenzione automatiche degli agenti della suite operativa di Google Cloud su un parco risorse di VM che corrispondono ai criteri specificati dall'utente. Con un unico comando, puoi creare un criterio per il tuo progetto Google Cloud che governa le VM nuove ed esistenti associate al progetto, garantendo l'installazione corretta e l'upgrade automatico facoltativo di tutti gli agenti.
Sistemi operativi supportati
Puoi applicare un criterio dell'agente alle istanze Compute Engine con i seguenti sistemi operativi.
Logging agent
mappa ai criteri con
tipo di agente
logging
. Monitoring agent
mappa ai criteri con
tipo di agente
metrics
. Ops Agent
mappa ai criteri con
tipo di agente
ops-agent
.
Sistema operativo | Agente Logging | Agente Monitoring | Agente operativo |
---|---|---|---|
CentOS 7 | |||
CentOS 8 | |||
Rocky Linux 8 | |||
RHEL 6 | |||
RHEL 7: rhel-7, rhel-7-6-sap-ha, rhel-7-7-sap-ha, rhel-7-9-sap-ha |
1 | ||
RHEL 8: rhel-8, rhel-8-1-sap-ha, rhel-8-2-sap-ha, rhel-8-4-sap-ha |
1 | ||
Debian 9 (Stretch) | |||
Debian 10 (Buster) | |||
Debian 11 (Bullseye) | |||
Ubuntu LTS 18.04 (Bionic Beaver): ubuntu-1804-lts, ubuntu-minimal-1804-lts |
|||
Ubuntu LTS 20.04 (Focal Fossa): ubuntu-2004-lts, ubuntu-minimal-2004-lts |
|||
Ubuntu LTS 22.04 (Jammy Jellyfish): ubuntu-2204-lts, ubuntu-minimal-2204-lts |
|||
SLES 12: sles-12, sles-12-sp3-sap, sles-12-sp4-sap, sles-12-sp5-sap |
|||
SLES 15: sles-15, sles-15-sap, sles-15-sp1-sap, sles-15-sp2-sap, sles-15-sp3-sap, sles-15-sp4-sap |
|||
OpenSUSE Leap 15: opensuse-leap (opensuse-leap-15-3-*, openuse-leap-15-4-*) |
|||
Windows Server: 2012 R2, 2016, 2019, 2022, Core 2012 R2, Core 2016, Core 2019, Core 2022 |
1 L'agente Monitoring non è supportato su rhel-7-9-sap-ha
, rhel-8-2-sap-ha
o rhel-8-4-sap-ha
.
Creazione di un criterio dell'agente
Per creare un criterio dell'agente utilizzando Google Cloud CLI, completa questi passaggi:
Se non lo hai già fatto, installa Google Cloud CLI.
Nell'interfaccia a riga di comando gcloud, il gruppo di comandi per la gestione dei criteri dell'agente è in versione
beta
.Se non lo hai già fatto, installa il componente
beta
dell'interfaccia a riga di comando gcloud:gcloud components install beta
Per verificare se hai installato il componente
beta
per l'installazione, esegui:gcloud components list
Se in precedenza hai installato il componente
beta
, assicurati di avere l'ultima versione:gcloud components update
Utilizza il seguente script per abilitare le API e impostare le autorizzazioni appropriate per l'utilizzo di Google Cloud CLI:
set-permissions.sh
.Per informazioni sullo script, consulta la sezione Cosa sta facendo lo script
set-permissions.sh
?.Usa il comando
gcloud beta compute instances ops-agents policies create
per creare un criterio. Per la sintassi del comando, consulta la documentazione digcloud beta compute instances ops-agents policies create
.Per esempi su come formattare il comando, consulta la sezione Esempi nella documentazione di Google Cloud CLI.
Per ulteriori informazioni sui comandi disponibili dell'interfaccia a riga di comando gcloud e sulle opzioni disponibili, consulta la documentazione di
gcloud beta compute instances ops-agents policies
.
Best practice per l'utilizzo dei criteri dell'agente
Per controllare l'impatto sui sistemi di produzione durante il lancio, ti consigliamo di utilizzare le etichette e le zone delle istanze per filtrare le istanze a cui si applica il criterio.
Ecco un esempio di piano di implementazione graduale per le VM CentOS 7:
Fase 1: crea un criterio per scegliere come target tutte le VM con l'etichetta env=test
e app=myproduct
.
gcloud beta compute instances \
ops-agents policies create ops-agents-policy-safe-rollout \
--agent-rules="type=logging,version=current-major,package-state=installed,enable-autoupgrade=true;type=metrics,version=current-major,package-state=installed,enable-autoupgrade=true" \
--os-types=short-name=centos,version=7 \
--group-labels=env=test,app=myproduct \
--project=my_project
Per scoprire di più sulla specifica del sistema operativo, consulta gcloud beta compute instances ops-agents policies create
.
Fase 2: aggiorna il criterio per avere come target env=prod
e app=myproduct
e una sola zona.
gcloud beta compute instances \
ops-agents policies update ops-agents-policy-safe-rollout \
--group-labels=env=prod,app=myproduct \
--zones=us-central1-c \
Fase 3: aggiorna il criterio per cancellare il filtro delle zone in modo che venga implementato a livello globale.
gcloud beta compute instances \
ops-agents policies update ops-agents-policy-safe-rollout \
--clear-zones
Limitazioni
Affinché un criterio venga applicato alle VM che precedono la configurazione del sistema operativo, è necessaria una configurazione aggiuntiva per garantire che l'agente di configurazione del sistema operativo su cui si basa il criterio sia installato sulle VM. Per installare l'agente OS Config su un parco risorse VM, completa i seguenti passaggi:
Assicurati di aver eseguito lo script
set-permissions.sh
nella sezione Creazione di un criterio dell'agente.Decidi su quali VM vuoi installare l'agente di configurazione del sistema operativo ed elencale in un file CSV.
Per ottenere un elenco di tutte le istanze non gestite da Google (ad es. da Google Kubernetes Engine o Google App Engine) in un file CSV, esegui:
gcloud compute instances list \ --filter="-labels.list(show="keys"):goog-" \ --format="csv(name,zone)" \ | grep -v -x -F -f <(gcloud compute instances os-inventory list-instances \ --format="csv(name,zone)") \ | sed 's/$/,update/' > instances.csv
La sezione
grep
filtra le VM per le quali è già installato e abilitato l'agente di configurazione del sistema operativo. L'esclusione di etichette VM in base agoog-
filtra le VM di Compute Engine gestite da GKE, App Engine ecc.Per filtrare ulteriormente le istanze per zone o etichette, modifica
--filter
in modo simile a questo:"-labels.list(show="keys"):goog- AND zone:(ZONE_1,ZONE_2) AND labels.KEY_1:VALUE_1 AND labels.KEY_2=VALUE_2"
Scarica ed esegui lo script
mass-install-osconfig-agent.sh
seguendo le istruzioni nello script per eseguire un comando come:bash mass-install-osconfig-agent.sh --project project-id --input-file instances.csv
Questo script automatizza le istruzioni per l'installazione dell'agente OS Config.
Risolvere i problemi
I comandi del criterio ops-agents non sono andati a buon fine
Se i comandi del criterio ops-agents non vanno a buon fine, viene visualizzato un errore di convalida corrispondente. Correggi questi errori correggendo gli argomenti e i flag di comando come suggerito dal messaggio di errore.
Oltre agli errori di convalida, potrebbero essere visualizzati i seguenti errori:
Autorizzazione IAM insufficiente
Un esempio di errore è simile al seguente:
ERROR: (gcloud.beta.compute.instances.ops-agents.policies.XXX) PERMISSION_DENIED: Caller does not have required permission to XXX
Assicurati di eseguire lo script
set-permissions.sh
nella sezione Creazione di un criterio dell'agente per configurare il ruolo IAM specifico diosconfig.guestPolicy
.Per verificare di disporre di un ruolo sufficiente del criterio guest del sistema operativo per il progetto, puoi eseguire il comando seguente. In questo esempio, il comando controlla se l'utente ha il ruolo
roles/osconfig.guestPolicyAdmin
. Il formato diGCLOUD_MEMBER
deve essereuser:USER_EMAIL
oserviceaccount:SERVICE_ACCOUNT_EMAIL
.gcloud projects get-iam-policy project-id \ --filter=--member=gcloud-member \ | grep "roles/osconfig.guestPolicyAdmin" -B 2
L'output previsto è:
- members: - gcloud-member role: roles/osconfig.guestPolicyAdmin
L'API Osconfig non è abilitata
Un esempio di errore è simile al seguente:
API [osconfig.googleapis.com] not enabled on project [XXX]. Would you like to enable and retry (this will take a few minutes)? (y/N)?
Assicurati di eseguire lo script
set-permissions.sh
nella sezione Creazione di un criterio dell'agente per concedere tutte le autorizzazioni necessarie.Per verificare se l'API OS Config è abilitata per il progetto, puoi eseguire questi comandi:
gcloud services list --project project-id \ | grep osconfig.googleapis.com
L'output previsto è:
osconfig.googleapis.com Cloud OS Config API
Il criterio non esiste
Un esempio di errore è simile al seguente:
NOT_FOUND: Requested entity was not found
Questo suggerisce che il criterio è già stato eliminato. Assicurati che l'ID criterio nel comando
describe
,update
odelete
sia mappato a un criterio esistente.
Il criterio è stato creato, ma sembra non avere alcun effetto
Il deployment degli agenti di configurazione del sistema operativo viene eseguito in ogni istanza di Compute Engine per gestire i pacchetti per gli agenti di 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 il comando seguente:
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
FINESTRE
Per verificare che l'agente OS Config sia installato, segui questi passaggi:
Connettiti alla tua istanza utilizzando RDP o uno strumento simile e accedi a Windows.
Apri un terminale PowerShell, quindi esegui il comando PowerShell seguente. Non sono necessari privilegi amministrativi.
Get-Service google_osconfig_agent
Le istanze SUSE e Ubuntu Compute Engine non hanno l'agente OS Config preinstallato, quindi devi seguire le istruzioni per l'installazione dell'agente OS Config per installarlo.
L'agente OS Config è installato, ma non installa gli agenti Ops
Per verificare se sono presenti errori quando l'agente OS Config applica i criteri, puoi controllare il log dell'agente OS Config. Questa operazione può essere eseguita tramite Esplora log o tramite SSH / RDP in singole istanze Compute Engine.
Per visualizzare i log dell'agente OS Config in Esplora log, utilizza il seguente filtro:
resource.type="gce_instance"
logName="projects/project-id/logs/OSConfigAgent"
Per visualizzare i log dell'agente OS Config tramite SSH per singole istanze Linux di Compute Engine, esegui questo comando:
CentOS / RHEL / SLES / SUSE
gcloud compute ssh instance-id \ --project project-id \ -- sudo cat /var/log/messages \ | grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"
Debian / Ubuntu
gcloud compute ssh instance-id \ --project project-id \ -- sudo cat /var/log/syslog \ | grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"
Per visualizzare i log dell'agente OS Config tramite RDP per le singole istanze Windows di Compute Engine, esegui questi passaggi:
Connettiti alla tua istanza utilizzando RDP o uno strumento simile e accedi a Windows.
Apri l'app
Event Viewer
, nella sezioneWindows Logs
=>Application
, cerca i log conSource
pari aOSConfigAgent
.
Se si verifica un errore durante la connessione a OS Config Service, assicurati di eseguire lo script set-permissions.sh
nella sezione Creazione di un criterio dell'agente per configurare i metadati.
Per verificare che i metadati di configurazione del sistema operativo siano abilitati, puoi eseguire il comando seguente:
gcloud compute project-info describe \
--project project-id \
| grep "enable-osconfig\|enable-guest-attributes" -A 1
L'output previsto è:
- key: enable-guest-attributes
value: 'TRUE'
- key: enable-osconfig
value: 'TRUE'
Gli agenti operativi sono installati, ma non funzionano correttamente
Consulta le pagine relative alla risoluzione dei problemi relativi all'agente Logging e all'agente Monitoring per eseguire il debug di problemi specifici.
Abilitare i log a livello di debug
È molto utile abilitare il logging a livello di debug dell'agente OS Config quando segnali un problema.
Puoi impostare i metadati osconfig-log-level: debug
per abilitare il logging a livello di debug
per l'agente OS Config. I log raccolti contengono ulteriori informazioni utili per l'indagine.
Per abilitare il logging a livello di debug per l'intero progetto, esegui il comando seguente:
gcloud compute project-info add-metadata \
--project project-id \
--metadata osconfig-log-level=debug
Per abilitare 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
Informazioni aggiuntive
Cosa sta facendo lo script set-permissions.sh
?
Data un ID progetto, un ruolo Identity and Access Management (IAM) e un indirizzo email o un account di servizio, lo script set-permissions.sh
esegue le seguenti azioni:
Abilita l'API Cloud Logging, l'API Cloud Monitoring e l'API OS Config per il progetto.
Concede i ruoli
roles/logging.logWriter
eroles/monitoring.metricWriter
all'account di servizio predefinito di Compute Engine in modo che gli agenti possano scrivere log e metriche nelle API Logging e Cloud Monitoring.Abilita i metadati di configurazione del sistema operativo per il progetto in modo che gli agenti di configurazione del sistema operativo vengano attivati nelle VM.
Concede il ruolo IAM specificato all'utente
gcloud
o all'account di servizio. I proprietari del progetto hanno accesso completo per creare e gestire un criterio. Per tutti gli altri utenti o account di servizio, i proprietari del progetto devono concedere uno dei seguenti ruoli:roles/osconfig.guestPolicyAdmin
: fornisce l'accesso completo a un criterio.roles/osconfig.guestPolicyEditor
: consente agli utenti di ottenere, aggiornare ed elencare un criterio.roles/osconfig.guestPolicyViewer
: fornisce accesso di sola lettura per recuperare ed elencare un criterio.
Vedi un esempio di utilizzo nei commenti dello script.
Cosa sta facendo lo script diagnose.sh
?
Data un progetto, un ID istanza Compute Engine e un ID criterio agente Ops, lo script diagnose.sh
raccoglie automaticamente le informazioni necessarie per diagnosticare i problemi del criterio:
La versione dell'agente OS Config
Il criterio guest Config di OS sottostante
I criteri applicabili a questa istanza Compute Engine
I repository del pacchetto dell'agente di cui viene eseguito il pull su un'istanza di Compute Engine
Integrazione di Terraform
Il supporto di Terraform è basato sui comandi di Google Cloud CLI. Per creare un criterio dell'agente con Terraform, segui le istruzioni del modulo Terraform.