Registro em log do ambiente de gerenciamento do Amazon EKS - Amazon EKS

Registro em log do ambiente de gerenciamento do Amazon EKS

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. Para obter mais informações, consulte Registro em log do Amazon CloudWatch.

Você pode começar a usar o registro em log do plano de controle do Amazon EKS escolhendo os tipos de logs que deseja habilitar para cada cluster novo ou existente do Amazon EKS. É possível habilitar ou desabilitar cada tipo de log 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 plano de controle 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 plano de controle 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 Kubernetes Components (Componentes do Kubernets) na documentação do Kubernetes.

Servidor de API (api)

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 audit policy (política de auditoria), na documentação do Kubernetes.

Auditoria (audit)

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.

Autenticador (authenticator)

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 obter mais informações, consulte Gerenciamento de clusters.

Gerenciador do controlador (controllerManager)

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.

Agendador (scheduler)

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 e desabilitar os logs do plano de controle

Por padrão, os logs do plano de controle 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 plano de controle 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.

AWS Management Console
Para habilitar ou desabilitar os logs do plano de controle com a AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

  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
Para habilitar ou desabilitar os logs do plano de controle com a AWS CLI
  1. Verifique a versão do AWS CLI com o comando a seguir.

    aws --version

    Se sua versão da AWS CLI for anterior à versão 1.16.139, primeiramente será necessário atualizar para a versão mais recente. Para instalar ou atualizar a AWS CLI, consulte Installing the AWS Command Line Interface (Instalar a CLI) no Manual do usuário do AWS Command Line Interface.

  2. Atualize a configuração de exportação do log do plano de controle do cluster com o seguinte comando da AWS CLI. 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 plano de controle do cluster

Depois que tiver habilitado qualquer um dos tipos de log do plano de controle 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.

Para visualizar os logs do plano de controle do cluster no console do CloudWatch
  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.

    • KubernetesLogs do componente servidor de API (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.