Enviar logs do ambiente de gerenciamento para o CloudWatch Logs - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Enviar logs do ambiente de gerenciamento para o CloudWatch Logs

O registro em log do plano de controle do Amazon EKS fornece logs de auditoria e diagnóstico diretamente do plano de controle do Amazon EKS para o CloudWatch Logs em sua conta. Esses logs facilitam a proteção e a execução dos clusters. Você pode selecionar os tipos exatos de logs que precisa, e eles serão enviados como fluxos de log para cada cluster do Amazon EKS no CloudWatch. Você pode usar filtros de assinatura do CloudWatch para fazer análises em tempo real nos logs ou encaminhá-los para outros serviços (os logs serão codificados em Base64 e compactados com o formato gzip). Para obter mais informações, consulte Registro em log do Amazon CloudWatch.

Você pode começar a usar o registro em log do ambiente de gerenciamento do Amazon EKS escolhendo os tipos de logs que deseja habilitar para cada cluster novo ou existente do Amazon EKS. Você pode habilitar ou desabilitar cada tipo de registro por cluster usando o AWS Management Console, a AWS CLI (versão 1.16.139 ou superior) ou por meio da API do Amazon EKS. Quando habilitados, os logs são enviados automaticamente do cluster do Amazon EKS para o CloudWatch Logs na mesma conta.

Ao usar o registro em log do ambiente de gerenciamento do Amazon EKS, você será cobrado pela definição de preço padrão do Amazon EKS para cada cluster executado. Você será cobrado pela ingestão de dados padrão do CloudWatch Logs e pelos custos de armazenamento de qualquer log enviado ao CloudWatch Logs pelos clusters. Você também será cobrado por qualquer recurso da AWS, como instâncias do Amazon EC2 ou volumes do Amazon EBS, que forem provisionados como parte do cluster.

Os seguintes tipos de log do ambiente de gerenciamento do cluster estão disponíveis. Cada tipo de log corresponde a um componente do ambiente de gerenciamento do Kubernetes. Para saber mais sobre esses componentes, consulte Componentes do Kubernetes na documentação Kubernetes.

Servidor de APIapi ()

O servidor de API do cluster é o componente do ambiente de gerenciamento que expõe a API do Kubernetes. Se você ativar os logs do servidor de API ao iniciar o cluster, ou logo depois, os logs incluirão os sinalizadores do servidor de API que foram usados para iniciar o servidor de API. Para obter mais informações, consulte kube-apiserver e a política de auditoria, na documentação do Kubernetes.

Auditoriaaudit ()

Os logs de auditoria do Kubernetes fornecem um registro dos usuários, administradores ou componentes individuais do sistema que afetaram o cluster. Para obter mais informações, consulte Auditing (Auditoria) na documentação do Kubernetes.

Autenticadorauthenticator ()

Os logs do autenticador são exclusivos do Amazon EKS. Esses logs representam o componente do ambiente de gerenciamento que o Amazon EKS usa para a autenticação de Controle de acesso com base em função (RBAC) do Kubernetes usando credenciais do IAM. Para ter mais informações, consulte Organizar e monitorar recursos de clusters.

Gerenciador do controladorcontrollerManager ()

O gerenciador do controlador gerencia os principais loops de controle que são fornecidos com o Kubernetes. Para obter mais informações, consulte kube-controller-manager na documentação do Kubernetes.

Agendadorscheduler ()

O componente agendador gerencia quando e onde os Pods são executados no cluster. Para obter mais informações, consulte kube-scheduler na documentação do Kubernetes.

Habilitar ou desabilitar os logs do ambiente de gerenciamento

Por padrão, os logs do ambiente de gerenciamento de cluster não são enviados ao CloudWatch Logs. É necessário habilitar cada tipo de log individualmente para enviar logs ao cluster. As taxas de ingestão, armazenamento de arquivamento e verificação de dados do CloudWatch Logs se aplicam aos logs do ambiente de gerenciamento habilitados. Para obter mais informações, consulte Preço do CloudWatch.

Para atualizar a configuração de registro em log do ambiente de gerenciamento, o Amazon EKS requer até cinco endereços IP disponíveis em cada sub-rede. Quando você habilita um tipo de log, os logs são enviados com um nível de verbosidade de log de 2.

É possível habilitar ou desabilitar os logs do ambiente de gerenciamento com o AWS Management Console ou a AWS CLI.

AWS Management Console

  1. Abra o console do Amazon EKS.

  2. Selecione o nome do cluster para exibir as informações dele.

  3. Escolha a guia Observabilidade.

  4. Na seção Log do ambiente de gerenciamento, escolha Gerenciar registro em log.

  5. Para cada tipo de log individual, escolha se o tipo de log deve ser ativado ou desativado. Por padrão, o cada tipo de log está desativado.

  6. Escolha Save changes (Salvar alterações) para terminar.

AWS CLI

  1. Verifique a versão da AWS CLI com o seguinte comando.

    aws --version

    Se a versão da AWS CLI for anterior a 1.16.139, você deverá primeiro atualizar para a versão mais recente. Para instalar ou atualizar a AWS CLI, consulte Instalar AWS Command Line Interface no Guia do usuário da AWS Command Line Interface.

  2. Atualize a configuração de exportação de log do ambiente de gerenciamento do cluster com o seguinte comando da CLI AWS. Substitua my-cluster pelo nome do cluster e especifique os valores desejados para acesso ao endpoint.

    nota

    O comando a seguir envia todos os tipos de log disponíveis ao CloudWatch Logs.

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

    Veja um exemplo de saída abaixo.

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "InProgress", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }
  3. Monitore o status da atualização da configuração do log com o comando a seguir, usando o nome do cluster e o ID da atualização que foram retornados pelo comando anterior. Sua atualização estará concluída quando o status aparecer como Successful.

    aws eks describe-update \ --region region-code\ --name my-cluster \ --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9

    Veja um exemplo de saída abaixo.

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "Successful", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }

Visualizar os logs do ambiente de gerenciamento do cluster

Depois que tiver habilitado qualquer um dos tipos de log do ambiente de gerenciamento para o cluster do Amazon EKS, você poderá visualizá-los no console do CloudWatch.

Para saber mais sobre como visualizar, analisar e gerenciar logs no CloudWatch, consulte o Manual do usuário do Amazon CloudWatch Logs.

  1. Abra o console do CloudWatch. Esse link abre o console, exibe os grupos de log disponíveis atualmente e os filtra com o prefixo /aws/eks.

  2. Escolha o cluster para o qual deseja visualizar os logs. O formato do nome do grupo de logs é /aws/eks/my-cluster/cluster.

  3. Escolha o fluxo de logs que deseja visualizar. A lista a seguir descreve o formato do nome do fluxo de logs para cada tipo de log.

    nota

    À medida que os dados do fluxo de logs aumentam, os nomes dos fluxos de log são alternados. Quando existem vários fluxos de logs para um determinado tipo de log, você pode visualizar o fluxo de logs mais recente procurando o nome do fluxo de logs com a hora do último evento mais recente.

    • Logs de componentes do servidor de API do Kubernetes (api): kube-apiserver-1234567890abcdef01234567890abcde

    • Auditoria (audit)kube-apiserver-audit-1234567890abcdef01234567890abcde

    • Autenticador (authenticator)authenticator-1234567890abcdef01234567890abcde

    • Controller manager (controllerManager) (Gerenciador do controlador) – kube-controller-manager-1234567890abcdef01234567890abcde

    • Scheduler (scheduler)kube-scheduler-1234567890abcdef01234567890abcde (Agendador)

  4. Revise os eventos do fluxo de logs.

    Por exemplo, você deve ver os sinalizadores iniciais do servidor de API para o cluster ao visualizar a parte superior de kube-apiserver-1234567890abcdef01234567890abcde .

    nota

    Caso não veja os logs do servidor de API no começo do fluxo de log, provavelmente o arquivo de log do servidor de API foi alternado no servidor antes de você ativar o registro em log do servidor de API no servidor. Qualquer arquivo de log que for alternado antes que o registro em log do servidor de API seja ativado não poderá ser exportado para o CloudWatch.

Porém, é possível criar outro cluster com a mesma versão do Kubernetes e habilitar o registro em log do servidor de API ao criar o cluster. Os clusters com a mesma versão de plataforma têm os mesmos sinalizadores ativados, portanto, os sinalizadores devem corresponder aos sinalizadores do novo cluster. Ao terminar de visualizar os sinalizadores do novo cluster no CloudWatch, você poderá excluir o novo cluster.