Container-Optimized OS include un agente di logging che esporta alcuni log di sistema e container in Cloud Logging. Fino al giorno Utilizzate immagini di Container-Optimized OS 101 basate su x86 per Container-Optimized OS un agente Logging containerizzato basato su fluentd. Container-Optimized OS 105 ha iniziato a distribuire un'implementazione di agente Logging alternativa, fluent-bit. A partire da Container-Optimized OS 109, l'agente di logging fluent-bit è l'impostazione predefinita. L'agente di logging precedente, fluentd, verrà rimosso in Container-Optimized OS 113.
Tutte le versioni delle immagini Container-Optimized OS basate su ARM utilizzano il bit fluente di registrazione.
Abilita l'agente Logging
L'agente di logging è disabilitato per impostazione predefinita. Puoi attivare questa funzionalità quando crei una nuova istanza o aggiorni una istanza esistente.
Requisiti di accesso
Cloud Logging fornisce IAM
ruoli
che puoi utilizzare per concedere l'accesso appropriato. Per visualizzare i log in un progetto,
devi avere il ruolo roles/logging.viewer
e le applicazioni devono avere l'autorizzazione
per scrivere i log. Puoi concedere questa autorizzazione assegnando il ruolo IAM roles/logging.logWriter
all'account di servizio di un'applicazione.
Per ulteriori informazioni su autorizzazioni e ruoli, vedi Ruoli predefiniti.
Creare un'istanza con un agente di logging abilitato
Console
Eseguire un'istanza Compute Engine su Container-Optimized OS con il logging fluent-bit abilitato per l'agente, esegui queste operazioni:
Apri la pagina di creazione dell'istanza Compute Engine nella console Google Cloud.
Specifica un nome per l'istanza.
Nella sezione Disco di avvio, seleziona un'immagine di Container-Optimized OS.
Fai clic su Gestione, sicurezza, dischi, networking, single-tenancy per visualizzare altre opzioni.
Nella scheda Gestione, scorri fino alla sezione Metadati. Aggiungi un nuova voce di metadati, con Key come
google-logging-enabled
e Value cometrue
.Se vuoi, specifica eventuali altre opzioni per il tuo caso d'uso. Per maggiori dettagli, consulta la sezione Creare e configurare istanze.
Fai clic su Crea per creare e avviare l'istanza.
gcloud
Eseguire un'istanza Compute Engine su Container-Optimized OS con il logging
usa il comando gcloud compute instances create
e includi
google-logging-enabled=true
nei metadati. Ad esempio:
gcloud compute instances create instance-name \ --image image-name \ --image-project cos-cloud \ --zone compute-zone \ --metadata google-logging-enabled=true
Sostituisci quanto segue:
- instance-name: il nome della tua istanza VM.
- image-name: il nome dell'immagine di Container-Optimized OS per
l'istanza. Ad esempio,
--image=cos-113-18244-85-29
. - compute-zone: la zona di computing per la tua istanza.
Per ulteriori informazioni sul comando gcloud
, consulta le
gcloud compute instances create
documentazione di riferimento.
Per maggiori dettagli sulla creazione di istanze Container-Optimized OS, consulta
Creazione e configurazione delle istanze.
Selezione dell'agente Logging
Le immagini Container-Optimized OS 105 e 109 basate su x86 offrono due implementazioni
dell'agente Logging: fluentd (legacy) e fluent-bit.
Container-Optimized OS 105 utilizza Fluentd per impostazione predefinita e
Container-Optimized OS 109 utilizza Fluent-bit per impostazione predefinita. Puoi utilizzare la voce dei metadati google-logging-use-fluentbit
per modificare il comportamento predefinito.
Per utilizzare l'agente di logging fluent-bit sul set 105 di Container-Optimized OS
google-logging-use-fluentbit
su true
.
Per utilizzare l'agente Logging fluentd sul set 109 di Container-Optimized OS
google-logging-use-fluentbit
su false
.
Abilita l'agente Logging nei metadati di progetto
A partire dal traguardo 97, il logging può essere attivato nei metadati del progetto:
gcloud compute project-info add-metadata \
--metadata google-logging-enabled=true
Log degli accessi
Console
Vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza di Container-Optimized OS a cui vuoi accedere di log.
Nella sezione Log, fai clic su Cloud Logging.
Viene aperto Esplora log per l'istanza specificata. Per ulteriori informazioni, consulta la sezione Utilizzare Esplora log.
gcloud
Per accedere ai log, utilizza il comando gcloud logging read
. Ad esempio:
gcloud logging read \ "resource.type=gce_instance AND resource.labels.instance_id=instance-id" \ --limit 10 \ --format json \ --freshness 30d
Sostituisci quanto segue:
- instance-id: l'ID dell'istanza VM.
Questo comando tenta di leggere i log dall'istanza VM con instance-id, limitandoli a 10 log in formato JSON degli ultimi 30 giorni.
Per ulteriori informazioni sul comando gcloud
, consulta le
Riferimento gcloud logging read
documentazione.
Come funziona?
L'agente di logging è configurato per impostazione predefinita in modo che invii i log da un sistema specifico servizi critici e container di applicazioni utente in Cloud Logging di un backend cloud. Ad esempio, log da container Docker, servizi di sistema selezionati, log di controllo, errori dei log del journal e così via. Consulta le specifiche Container-Optimized OS origine della configurazione (immagini x86 e immagini Arm) per la configurazione predefinita del logging.
Per le immagini x86 di Container-Optimized OS 105 e versioni precedenti, l'agente Logging viene Agente Logging legacy containerizzato di Google Cloud Observability. Il comando docker l'agente Logging è definito in Container-Optimized OS fonte per il servizio systemd stackdriver-logging. La versione dell'agente containerizzato in esecuzione è definita in Container-Optimized OS directory app-admin/stackdriver di origine.
Per le immagini ARM di tutte le versioni e le immagini x86 per Container-Optimized OS 109 e in seguito, l'agente Logging è un pacchetto di sistemi operativi integrato fluent-bit. L'agente è integrato nel sistema operativo e aggiornato insieme alle immagini del sistema operativo.
Limitazioni note
Compatibilità con il driver gcplogs
A partire da
milestone 89,
se l'agente Logging incluso in Container-Optimized OS è abilitato e Docker
Il driver di logging gcplogs
è abilitato per uno o più container, eccessivo
I log degli avvisi potrebbero essere generati dall'agente di logging incluso. Questa operazione potrebbe creare log
rumore e/o aumentare gli addebiti relativi a Cloud Logging.
Una soluzione alternativa è non utilizzare gcplogs
come driver di logging Docker e
Usa invece il driver predefinito configurato da Container-Optimized OS. Nota
che l'agente Logging incluso in Container-Optimized OS esporterà
i log dei container in Cloud Logging, per cui utilizzare entrambe le soluzioni contemporaneamente
non è necessario.
Compatibilità della configurazione dell'agente Logging
L'agente di logging è un contenitore basato su Fluentd sulle immagini del sistema operativo ottimizzato per i container basate su x86 e un file binario Fluent-bit sulle immagini del sistema operativo ottimizzato per i container basate su Arm. Le configurazioni dei due agenti non sono compatibili. Questo non è un problema se utilizzi solo il logging predefinito integrata nelle immagini del sistema operativo. Tuttavia, se hai un personalizzata del logging, potresti riscontrare interruzioni durante la migrazione carichi di lavoro con immagini basate su un'architettura diversa alla versione più recente di Container-Optimized OS.
Riferimenti
- Agente Logging legacy di Google Cloud Observability documentazione. L'agente di logging in container incluso in Container-Optimized OS è un sottoinsieme dell'agente di logging precedente, quindi questa documentazione potrebbe fornire un contesto sull'agente in modo più generale, al di fuori dell'ambito di Container-Optimized OS.
- Documentazione di Google Cloud Observability. Home page di Google Cloud Observability documentation; può essere utile per il contesto.