O Container-Optimized OS inclui um agente de geração de registros que exporta alguns registros do sistema e de contêineres para o Cloud Logging. Até o Container-Optimized OS 101, as imagens do Container-Optimized OS baseadas em x86 usavam um agente de geração de registros conteinerizado com base no DaemonSet. O Container-Optimized OS 105 começou a enviar uma implementação alternativa de agente de geração de registros, bit fluente. A partir do Container-Optimized OS 109, o agente de geração de registros de bits fluentes é o padrão. O agente de geração de registros legado, gserviceaccount, vai ser removido no Container-Optimized OS 113.
Todas as versões de imagens do Container-Optimized OS baseadas em ARM enviam o agente de geração de registros de bits fluentes.
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.
Requisitos de acesso
O Cloud Logging fornece papéis do IAM que você pode usar para conceder o acesso apropriado. Para visualizar os registros em um projeto,
você precisa ter o papel roles/logging.viewer
e os aplicativos precisam ter permissão
para gravar registros. É possível conceder essa permissão atribuindo o
papel do IAM roles/logging.logWriter
à conta de serviço de um
aplicativo.
Para mais informações sobre permissões e papéis, consulte Papéis predefinidos.
Criar uma instância com um agente do Logging ativado
Console
Para executar uma instância do Compute Engine no Container-Optimized OS com o agente de geração de registros de bits fluentes ativado, faça o seguinte:
Abra a página de criação de instâncias do Compute Engine no console do Google Cloud.
Especifique um Nome para sua instância.
Na seção Disco de inicialização, selecione uma imagem do Container-Optimized OS.
Clique em Gerenciamento, segurança, discos, rede, locatário único para expandir outras opções.
Na guia Gerenciamento, role até a seção Metadados. Adicione uma nova entrada de metadados, com Chave como
google-logging-enabled
e Valor comotrue
.Se quiser, especifique qualquer outra opção para seu caso de uso. Consulte Como criar e configurar instâncias para mais detalhes.
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 de geração de registros 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:
- instance-name: o nome da instância de VM.
- compute-zone: a zona de computação da instância.
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.
Como selecionar o agente do Logging
As imagens 105 e 109 do Container-Optimized OS baseadas em x86 enviam duas implementações
do agente de geração de registros: fluentd (legado) e fluent-bit.
O Container-Optimized OS 105 usa o fluentd por padrão, e o Container-Optimized OS 109 usa bits fluentes por padrão. É possível usar a entrada de metadados google-logging-use-fluentbit
para alterar o comportamento padrão.
Para usar o agente de geração de registros de bits fluente no Container-Optimized OS 105, defina o valor google-logging-use-fluentbit
como true
.
Para usar o agente de geração de registros RecyclerView no Container-Optimized OS 109, defina o valor google-logging-use-fluentbit
como false
.
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
Acesse a página "Instâncias de VMs".
Clique no nome da instância do Container-Optimized OS da qual você quer acessar os registros.
Na seção Registros, clique em Cloud Logging.
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 de geração de registros é 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 do systemd selecionados, registros de auditoria, erros de registro de diário etc. Consulte a fonte da configuração específica do Container-Optimized OS (imagens x86 e imagens ARM) para ver a configuração completa de geração de registros padrão.
Para imagens x86 do Container-Optimized OS 105 e anteriores, o agente do Logging é o agente do Logging legado em contêiner do pacote de operações do Google Cloud. O comando docker que inicia o agente de geração de registros é definido na origem do serviço Stackdriver-logging systemd para o Container-Optimized OS. A versão do agente conteinerizado que está sendo executado é definida no diretório app-admin/stackdriver de origem do Container-Optimized OS.
Para imagens Arm de todas as versões e imagens x86 para o Container-Optimized OS 109 e mais recentes, o agente do Logging é um pacote integrado 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 da configuração do agente do Logging
O agente de geração de registros é um contêiner com base em fluentd em imagens do Container-Optimized OS com base em x86 e um binário de bits fluentes em imagens do Container-Optimized OS baseadas em ARM. As configurações dos dois agentes não são compatíveis. Isso não é um problema se você confiar apenas na configuração de geração de registros padrão incorporada às imagens do SO. No entanto, se você tiver uma configuração de geração de registros personalizada, poderá ocorrer interrupções ao migrar as cargas de trabalho para imagens baseadas em uma arquitetura diferente ou para uma versão mais recente do Container-Optimized OS.
Referências
- Documentação do agente do Logging legado do pacote de operações do Google Cloud. O agente de geração de registros conteinerizado incluído no Container-Optimized OS é um subconjunto do agente do Logging legado. Portanto, 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. Pode ser útil para contextualização.