Utilizzo di Cloud Logging con Container-Optimized OS

Container-Optimized OS include un agente di logging che esporta alcune log di sistema e dei 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 Logging legacy, 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 funzione quando creando una nuova istanza o aggiornandone una 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 metodo ruolo IAM roles/logging.logWriter all'account di servizio per un'applicazione.

Per ulteriori informazioni su autorizzazioni e ruoli, vedi Ruoli predefiniti.

Crea un'istanza con un agente Logging abilitato

Console

Eseguire un'istanza Compute Engine su Container-Optimized OS con il logging fluent-bit abilitato per l'agente, esegui queste operazioni:

  1. Apri la pagina di creazione dell'istanza Compute Engine nella console Google Cloud.

    Crea una nuova istanza Compute Engine

  2. Specifica un nome per l'istanza.

  3. Nella sezione Disco di avvio, seleziona un'immagine di Container-Optimized OS.

  4. Fai clic su Gestione, sicurezza, dischi, networking, single-tenancy per espandi le opzioni aggiuntive.

  5. Nella scheda Gestione, scorri fino alla sezione Metadati. Aggiungi un nuova voce di metadati, con Key come google-logging-enabled e Value come true.

  6. Specifica eventuali altre opzioni per il tuo caso d'uso. Consulta Creazione e configurazione delle istanze per ulteriori dettagli.

  7. 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 usa fluente per impostazione predefinita Container-Optimized OS 109 utilizza fluent-bit per impostazione predefinita. Puoi usare 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 da milestone 97, il logging può essere abilitato nei metadati di progetto:

  gcloud compute project-info add-metadata \
    --metadata google-logging-enabled=true

Log degli accessi

Console

  1. Vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Fai clic sul nome dell'istanza Container-Optimized OS a cui vuoi accedere di log.

  3. Nella sezione Log, fai clic su Cloud Logging.

  4. Viene aperto Esplora log per l'istanza specificata. Per ulteriori informazioni, consulta Utilizzo di 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, con un limite di 10 log, in formato JSON, dagli 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 backend. 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 gcplogs conducente

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 Logging è un container fluentd-based su una tecnologia x86 Immagini di Container-Optimized OS e un programma binario fluent-bit su ARM Immagini Container-Optimized OS. 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 Logging containerizzato incluso in Container-Optimized OS è un sottoinsieme dell'agente Logging legacy, quindi questa documentazione può fornire un contesto più generale sull'agente, nell'ambito di Container-Optimized OS.
  • Documentazione di Google Cloud Observability. Home page di Google Cloud Observability documentazione; può essere utile per il contesto.