Stackdriver Logging

Nesta página, explicamos como usar o Stackdriver Logging para coletar e consultar registros de clusters do Google Kubernetes Engine (GKE).

Visão geral

Quando o Logging está ativado no cluster, seus registros são armazenados em um armazenamento de dados permanente e dedicado. Seu projeto do GCP tem vários registros relevantes para um cluster do GKE. Isso inclui o Registro de Atividades do Administrador, o Registro de Acesso a dados e o Registro de eventos.

Um registro é um conjunto de entradas de registro, e cada uma delas se aplica a um determinado tipo de recurso. Estes são os tipos de recursos mais relevantes para os clusters do GKE:

Tipo de recurso Nome de exibição
k8s_cluster Cluster do Kubernetes
gke_cluster Operações de cluster do GKE
gke_container Contêiner do GKE
gke_nodepool Operações de pool de nós do GKE

Para informações detalhadas sobre entradas de registro que se aplicam aos tipos de recursos do cluster do Kubernetes e às Operações do Cluster do GKE, consulte Registro de auditoria.

O próprio GKE armazena os registros, mas eles não são armazenados permanentemente. Por exemplo, os registros de contêiner do GKE são removidos quando o pod de host é removido, quando o disco no qual eles são armazenados fica sem espaço ou quando eles são substituídos por registros mais recentes. Os registros do sistema são periodicamente removidos para liberar espaço para novos. Os eventos de cluster são removidos após uma hora.

Em contêineres e registros do sistema, o GKE implanta um agente de geração de registros por nó que lê registros de contêineres, adiciona metadados úteis e os armazena. O agente de geração de registros verifica se há registros de contêiner nas fontes abaixo:

  • saídas padrão e registros de erros padrão de processos em contêiner
  • kubelet e registros de tempo de execução em contêiner
  • registros de componentes do sistema, como scripts de inicialização de VM

Para eventos, o GKE usa uma implementação no namespace do kube-system que coleta eventos automaticamente e os envia para o Logging.

O Logging é compatível com o formato JSON. Os registros ficam armazenados por até 30 dias.

Antes de começar

Prepare-se para a tarefa tomando as seguintes medidas:

  • Verifique se você ativou a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Verifique se o SDK do Cloud está instalado.
  • Defina o ID do projeto padrão:
    gcloud config set project [PROJECT_ID]
  • Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  • Atualize a gcloud para a versão mais recente:
    gcloud components update

Como ativar o Logging

É possível criar um cluster com o Logging ativado ou habilitá-lo em um cluster atual.

Como criar um cluster com o Logging

gcloud

Quando você cria um cluster, a sinalização --enable-cloud-logging é definida automaticamente, o que ativa o Logging no cluster.

Para desativar esse comportamento padrão, defina a sinalização --no-enable-cloud-logging.

Console

  1. Acesse o menu do Kubernetes Engine no Console do GCP.

    Acessar o menu do Kubernetes Engine

  2. Clique em Criar cluster.

  3. Configure o cluster como quiser.

  4. Clique em Opções avançadas. Na seção Recursos adicionais, ative o serviço Ativar o Stackdriver Logging.

  5. Clique em Criar.

Como ativar o Logging para um cluster atual

gcloud

Para ativar o Logging para um cluster atual, execute o comando abaixo, em que [CLUSTER_NAME] é o nome do cluster.

gcloud container clusters update [CLUSTER_NAME] --logging-service logging.googleapis.com

Console

  1. Acesse o menu do Kubernetes Engine no Console do GCP.

    Acessar o menu do Kubernetes Engine

  2. Clique no botão de edição do cluster, que tem a forma de um lápis.

  3. Defina o valor da lista suspensa do Stackdriver Logging como Ativado.

  4. Clique em Salvar.

Como ver registros

É possível ver os registros no Leitor do Stackdriver Logging do Console do Google Cloud Platform.

Para saber mais sobre a visualização de registros, incluindo como criar consultas básicas e avançadas, consulte Como exibir registros na documentação do Logging.

Consultas de exemplo

Registros de consulta de pods com o marcador nginx-deployment:

resource.type="container"
resource.labels.pod_id:"nginx-deployment-"

Registros de consulta no namespace prod com gravidade WARNING ou maior:

resource.type="container"
resource.labels.namespace_id="prod"
severity>WARNING

Registros de consulta de um contêiner específico, my-container, em um pod específico, my-pod, com um payload de texto:

resource.type="container"
resource.labels.container_name="my_container"
resource.labels.pod_id="my_pod"
textPayload:"abracadabra"

Limitações

As entradas de várias linhas (entradas com caracteres de avanço de linha) podem não ser processadas corretamente. Para evitar esse problema, incorpore seus registros em objetos JSON de uma única linha.

Práticas recomendadas

  • Geração de registros estruturada: objetos JSON de uma única linha gravados em saída padrão ou erro padrão serão lidos no Stackdriver como entradas de registro estruturadas. Consulte Geração de registros estruturada para mais detalhes. É possível usar filtros de registros avançados para filtrar registros com base nos campos deles.
  • Gravidades: por padrão, os registros gravados na saída padrão estão no nível INFO e os registros gravados no erro padrão estão no nível ERRO. Os registros estruturados podem incluir um campo de severity, que define a gravidade do registro.
  • Como exportar para o BigQuery: é possível exportar registros para serviços externos, como o BigQuery ou o Cloud Pub/Sub, para análise adicional. Os registros exportados para o BigQuery mantêm o formato e a estrutura. Consulte Visão geral das exportações de registros para mais informações.
  • Alerta: use métricas baseadas em registros para configurar políticas de alerta quando o Logging registra um comportamento inesperado. Por exemplo, consulte Como criar uma política de alerta simples em uma métrica de contador. Consulte Visão geral de métricas baseadas em registros para informações mais detalhadas.
  • Relatórios de erros: é possível usar o Stackdriver Error Reporting para coletar erros produzidos nos clusters.

Como desativar a geração de registros

gcloud

Para desativar o Stackdriver legado de um cluster atual, execute o comando abaixo, em que [CLUSTER_NAME] é o nome do cluster.

gcloud container clusters update [CLUSTER_NAME] --logging-service none

Ao executar o Stackdriver Kubernetes Engine Monitoring em seu cluster, é preciso desativar o monitoramento e a geração de registro. Para isso, use o gcloud beta para definir os seguintes sinalizadores em seu cluster:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. Acesse o menu do Kubernetes Engine no Console do GCP.

    Acessar o menu do Kubernetes Engine

  2. Clique no botão Editar, que tem a aparência de um lápis, ao lado do cluster que você quer alterar.

  3. Defina o valor da lista suspensa do Stackdriver Logging como Desativado.

  4. Clique em Salvar.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Stackdriver Monitoring
Precisa de ajuda? Acesse nossa página de suporte.