View a markdown version of this page

Guia de instalação (AWS CLI) - Amazon CloudWatch

Guia de instalação (AWS CLI)

Este guia orienta você na instalação do Enhanced Container Insights (Classic) em um cluster do Amazon EKS existente usando a AWS CLI. O complemento implanta um atendente do CloudWatch como um DaemonSet que coleta métricas de infraestrutura, logs de contêineres e dados de desempenho.

Modo de manutenção

O Enhanced Container Insights (Classic) está em modo de manutenção. Para novas implantações, recomendamos o OTel Container Insights (recomendado).

Pré-requisitos

Antes de começar, certifique-se de cumprir os requisitos a seguir.

  • Um cluster existente do Amazon EKS executando o Kubernetes versão 1.25 ou posterior

  • Versão da plataforma eks.1 ou posterior

  • AWS CLI versão 2.12.0 ou posterior

  • kubectl configurado para comunicar-se com o cluster de destino

  • Permissões do IAM: eks:CreateAddon, eks:DescribeAddon, iam:CreateServiceLinkedRole, iam:CreateRole e iam:AttachRolePolicy

  • O complemento do atendente de Identidade de Pods EKS instalado no cluster ou perfis do IAM para contas de serviço (IRSA) configurados

  • Acesso à Internet de saída do cluster para os endpoints do CloudWatch

Etapa 1: Criar o perfil do IAM

Cria um perfil do IAM para permitir que o atendente do CloudWatch envie dados ao CloudWatch.

Para criar um perfil do IAM para o atendente do CloudWatch
  1. Execute o seguinte comando para criar a função com uma política de confiança para a Identidade de Pods EKS.

    aws iam create-role \ --role-name EKS-CloudWatch-Agent-Role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] }] }'
  2. Anexe a política gerenciada CloudWatchAgentServerPolicy à função.

    aws iam attach-role-policy \ --role-name EKS-CloudWatch-Agent-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Etapa 2: crie a associação de Identidade de Pods

Associe o perfil do IAM à conta de serviço do atendente do CloudWatch no cluster.

Para criar a associação da Identidade de Pods
  • Execute o comando a seguir. Substitua cluster-name pelo nome do seu cluster do Amazon EKS e account-id pelo ID da sua conta da AWS.

    aws eks create-pod-identity-association \ --cluster-name cluster-name \ --namespace amazon-cloudwatch \ --service-account cloudwatch-agent \ --role-arn arn:aws:iam::account-id:role/EKS-CloudWatch-Agent-Role

Etapa 3: instale o complemento Amazon CloudWatch Observability

Instale o complemento amazon-cloudwatch-observability no cluster.

Para instalar o complemento
  • Execute o comando a seguir. Substitua cluster-name pelo nome do cluster do Amazon EKS.

    aws eks create-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --addon-version v5.x.x-eksbuild.x

    Substitua v5.x.x-eksbuild.x pela versão v5.x mais recente disponível. Instalar sem --addon-version instala a versão mais recente (v6.2.0+), que ativa o pipeline OTel em vez do Classic.

Etapa 4: verifique o status do complemento

Confirme se o complemento foi instalado com sucesso.

Para verificar o status do complemento
  • Execute o comando a seguir. Substitua cluster-name pelo nome do cluster do Amazon EKS.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text

    A saída esperada é ACTIVE.

Etapa 5: confirme se os pods do atendente estão em execução

Verifique se os pods do atendente do CloudWatch estão em execução no namespace amazon-cloudwatch.

Para confirmar se os pods do atendente estão em execução
  • Execute o comando a seguir.

    kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent

    Todos os pods de atendentes devem mostrar o status Running.

Verificar os dados no CloudWatch

Depois de concluir a configuração, os dados do Container Insights aparecem no CloudWatch em 3 a 5 minutos.

Para verificar os dados do Container Insights
  1. Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, selecione Container Insights.

  3. Verifique se métricas tais como node_cpu_utilization e pod_memory_utilization aparecem em seu cluster.

Solução de problemas

Use as orientações a seguir para resolver problemas comuns ao instalar o Enhanced Container Insights (Classic) no Amazon EKS.

O status do complemento mostra CREATE_FAILED ou DEGRADED

Sintoma: quando você executa aws eks describe-addon, o status mostra CREATE_FAILED ou DEGRADED.

Causa: a instalação do complemento falhou devido a permissões insuficientes do IAM ou à falta de uma associação da Identidade de Pods.

Solução: para resolver esse problema, siga as seguintes etapas:

  1. Use o comando a seguir para verificar as informações detalhadas do erro. Substitua cluster-name pelo nome do seu cluster.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.health"
  2. Verifique se o perfil do IAM existe e tem a CloudWatchAgentServerPolicy anexada.

  3. Verifique se a associação da Identidade de Pods tem como alvo o namespace (amazon-cloudwatch) e a conta de serviço (cloudwatch-agent) corretos.

  4. Exclua o complemento com falha e reinstale-o depois de resolver o problema.

    aws eks delete-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability

As métricas não aparecem no CloudWatch após 5 minutos

Sintoma: os pods do atendente mostram o status Running, mas nenhuma métrica aparece no CloudWatch após 5 minutos.

Causa: o atendente não consegue enviar dados para o CloudWatch devido a restrições de rede ou permissões incorretas do IAM.

Solução: para resolver esse problema, siga as seguintes etapas:

  1. Verifique se os grupos de segurança do VPC e as ACLs de rede permitem o tráfego de saída de HTTPS (porta 443) para endpoints do CloudWatch.

  2. Verifique os logs do atendente em busca de erros de permissão ou tempos limite de conexão.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied"
  3. Verifique se o perfil do IAM tem a política CloudWatchAgentServerPolicy anexada e se a política de confiança permite pods.eks.amazonaws.com.

Pods de atendentes bloqueados em Pending ou CrashLoopBackOff

Sintoma: quando você executa kubectl get pods -n amazon-cloudwatch, um ou mais pods mostram o status Pending ou CrashLoopBackOff.

Causa: os pods do atendente não podem ser iniciados devido à insuficiência de recursos do nó, falhas na extração de imagens ou à falta de permissões.

Solução: para resolver esse problema, siga as seguintes etapas:

  1. Verifique os eventos do pod para obter mensagens de erro detalhadas.

    kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
  2. Verifique se seus nós têm CPU e memória suficientes disponíveis para os pods de atendentes.

  3. Verifique se o complemento do atendente de Identidade de Pods EKS está instalado e em execução.

    kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent

Próximas etapas

Tudo pronto para o upgrade? Para obter instruções passo a passo sobre como migrar do Enhanced Container Insights (Classic) para o OTel Container Insights, consulte Migre do Enhanced Container Insights (Classic) para o OTel Container Insights.