Como usar o Cloud Logging com o Container-Optimized OS

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O Container-Optimized OS inclui um agente do Logging que exporta alguns registros do sistema e de contêineres para o Cloud Logging. Para imagens do Container-Optimized OS baseadas em x86, o agente é um agente do Logging legado em contêiner e o pacote de operações do Google Cloud. Para imagens do Container-Optimized OS com base em ARM, o agente é um pacote nativo do SO chamado fluent-bit. Este documento se concentra em como usar o agente do Logging no Container-Optimized OS e como acessar registros.

Ativar o agente do Logging

O agente do Logging está desativado por padrão. É possível ativar esse recurso ao criar uma nova instância ou atualizar uma instância existente.

Criar uma instância com o agente do Logging ativado

Console

Para executar uma instância do Compute Engine no Container-Optimized OS com o agente do Logging ativado, faça o seguinte:

  1. Abra a página de criação de instâncias do Compute Engine no console do Google Cloud.

    Crie uma nova instância do Compute Engine

  2. Especifique um Nome para sua instância.

  3. Na seção Disco de inicialização, selecione uma imagem do Container-Optimized OS.

  4. Clique em Gerenciamento, segurança, discos, rede, locatário único para expandir outras opções.

  5. Na guia Gerenciamento, role até a seção Metadados. Adicione uma nova entrada de metadados, com Chave como google-logging-enabled e Valor como true.

  6. Se quiser, especifique qualquer outra opção para seu caso de uso. Consulte Como criar e configurar instâncias para mais detalhes.

  7. Clique em Criar para criar e inicializar a instância.

gcloud

Para executar uma instância do Compute Engine no Container-Optimized OS com o agente do Logging ativado, use o comando gcloud compute instances create e inclua google-logging-enabled=true nos metadados. Exemplo:

gcloud compute instances create instance-name \
    --image-family cos-stable \
    --image-project cos-cloud \
    --zone compute-zone \
    --metadata google-logging-enabled=true

Substitua:

Para mais informações sobre o comando gcloud, consulte a documentação de referência de gcloud compute instances create. Para mais detalhes sobre como criar instâncias do Container-Optimized OS, consulte Como criar e configurar instâncias.

Atualizar uma instância atual para ativar ou desativar o agente do Logging

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Clique no nome da instância do Container-Optimized OS que você quer atualizar.

  3. Clique em "Editar" na barra superior Detalhes da instância de VM.

  4. Na seção Metadados personalizados, adicione uma nova entrada de metadados, com Chave como google-logging-enabled e Valor como true para ativar ou false para desativar.

  5. Clique em Save.

gcloud

Para ativar ou desativar o agente do Logging em uma instância existente, use o comando gcloud compute instances add-metadata:

gcloud compute instances add-metadata instance-name \
    --zone compute-zone \
    --metadata google-logging-enabled=enabled-value

Substitua:

  • enabled-value: true para ativar, false para desativar.
  • instance-name: o nome da instância de VM.
  • compute-zone: a zona de computação da instância.

Ativar o agente do Logging nos metadados do projeto

A partir do marco 97, a geração de registros pode ser ativada nos metadados do projeto:

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

Registros de acesso

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Clique no nome da instância do Container-Optimized OS da qual você quer acessar os registros.

  3. Na seção Registros, clique em Cloud Logging.

  4. Isso abre o Explorador de registros da instância especificada. Para mais informações, consulte Como usar o Explorador de registros.

gcloud

Para acessar os registros, use o comando gcloud logging read. Exemplo:

gcloud logging read \
"resource.type=gce_instance AND resource.labels.instance_id=instance-id" \
    --limit 10 \
    --format json \
    --freshness 30d

Substitua:

  • instance-id: o ID da instância da VM.

Esse comando tenta ler registros da instância de VM com instance-id, limitando a 10 registros, no formato JSON, dos últimos 30 dias.

Para mais informações sobre o comando gcloud, consulte a documentação de referência de gcloud logging read.

Como funciona?

O agente do Logging é configurado por padrão para enviar registros de determinados serviços críticos do sistema e contêineres de aplicativos do usuário para o back-end do Cloud Logging. Por exemplo, registros de contêineres do docker, serviços de sistema selecionados, registros de auditoria, erros de registro do diário etc. Consulte a origem de configuração específica do Container-Optimized OS (x86 images e Arm images) para ver a configuração padrão de geração de registros completa.

Para imagens x86, o agente do Logging é um agente do Logging legado do pacote de operações do Google Cloud. O comando do docker que inicia o agente do Logging é definido na origem do Container-Optimized OS para o serviço stackdriver-logging systemd. A versão do agente conteinerizado em execução é definida no diretório app-admin/stackdriver do Container-Optimized OS.

Para imagens Arm, o agente de geração de registros é um pacote nativo do SO chamado fluent-bit. O agente é integrado ao SO e atualizado com as imagens do SO.

Limitações conhecidas

Compatibilidade com o driver gcplogs

A partir do março 89, se o agente do Logging incluído no Container-Optimized OS estiver ativado e o driver de geração de registros do gcplogs no Docker estiver ativado para um ou mais contêineres, os registros de aviso excessivos podem ser emitidos pelo agente do Logging incluído. Isso pode criar ruídos de registro e/ou aumentar as cobranças relacionadas ao Cloud Logging.

Uma solução alternativa é não usar gcplogs como um driver de geração de registros do Docker e, em vez disso, usar o driver padrão, conforme configurado pelo Container-Optimized OS. O agente do Logging incluído no Container-Optimized OS exportará os registros de contêiner para o Cloud Logging. Portanto, não é necessário usar as duas soluções simultaneamente.

Compatibilidade com a configuração do agente do Logging

O agente do Logging é um contêiner baseado em SharedPreference em imagens do Container-Optimized OS com base em x86 e um binário fluente em imagens do SO otimizadas para contêineres. As configurações dos dois agentes não são compatíveis. Isso não é um problema se você depende apenas da configuração de geração de registros padrão integrada às imagens do SO. No entanto, se você tiver uma configuração de geração de registros personalizada, poderá ocorrer falhas ao migrar as cargas de trabalho para as imagens baseadas em uma arquitetura diferente.

Referências

  • Documentação do agente do Logging legado do pacote de operações do Google Cloud. Como o agente do Logging em contêiner incluído no Container-Optimized OS é um subconjunto do agente do Logging legado, esta documentação pode fornecer contexto sobre o agente de maneira mais geral, fora do escopo do Container-Optimized OS.
  • Documentação do pacote de operações do Google Cloud. Página inicial da documentação do pacote de operações do Google Cloud. Ela pode ser útil para fins de contexto.