Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes - Amazon CloudWatch

Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes

Esta seção explica como configurar o atendente do CloudWatch com monitoramento do Prometheus em um cluster que está executando o Amazon EKS ou o Kubernetes. Depois que você fizer isso, o atendente automaticamente extrairá e importará métricas para as seguintes workloads em execução nesse cluster.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/JMX

  • HAProxy

  • Fluent Bit

Também é possível configurar o atendente para extrair e importar outras workloads e origens do Prometheus.

Antes de seguir estas etapas de instalação do atendente do CloudWatch para coleta de métricas do Prometheus, você deve ter um cluster em execução no Amazon EKS ou um cluster do Kubernetes em execução em uma instância do Amazon EC2.

Requisitos para grupo de segurança de VPC

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado.

Instalar o atendente do CloudWatch com a coleção de métricas do Prometheus em clusters do Amazon EKS e do Kubernetes

Esta seção explica como configurar o atendente do CloudWatch com monitoramento do Prometheus em um cluster que está executando o Amazon EKS ou o Kubernetes. Depois que você fizer isso, o atendente automaticamente extrairá e importará métricas para as seguintes workloads em execução nesse cluster.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/JMX

  • HAProxy

  • Fluent Bit

Também é possível configurar o atendente para extrair e importar outras workloads e origens do Prometheus.

Antes de seguir estas etapas de instalação do atendente do CloudWatch para coleta de métricas do Prometheus, você deve ter um cluster em execução no Amazon EKS ou um cluster do Kubernetes em execução em uma instância do Amazon EC2.

Requisitos para grupo de segurança de VPC

As regras de entrada dos grupos de segurança para as workloads do Prometheus devem abrir as portas do Prometheus para o atendente do CloudWatch para extrair as métricas Prometheus pelo IP privado.

As regras de saída do grupo de segurança do atendente do CloudWatch devem permitir que o atendente do CloudWatch se conecte à porta das workloads do Prometheus por IP privado.

Configurar funções do IAM

A primeira etapa é configurar a função do IAM necessária no cluster. Há dois métodos:

  • Configurar uma função do IAM para uma conta de serviço, também conhecida como função de serviço. Esse método funciona tanto para o tipo de inicialização do EC2 como para o tipo de inicialização do Fargate.

  • Adicione uma política do IAM à função do IAM usada para o cluster. Isso funciona apenas para o tipo de inicialização do EC2.

Configurar uma função de serviço (tipo de inicialização do EC2 e tipo de inicialização do Fargate)

Para configurar uma função de serviço, insira o comando a seguir. Substitua MyCluster pelo nome do cluster.

eksctl create iamserviceaccount \ --name cwagent-prometheus \ --namespace amazon-cloudwatch \ --cluster MyCluster \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve \ --override-existing-serviceaccounts

Adicione uma política à função do IAM do cluster (somente tipo de inicialização do EC2)

Como configurar a política do IAM em um cluster para suporte ao Prometheus
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Você precisa encontrar o prefixo do nome da função do IAM para o cluster. Para isso, marque a caixa de seleção ao lado do nome de uma instância que está no cluster e escolha Actions (Ações), Instance Settings (Configurações da instância), Attach/Replace IAM Role (Anexar/substituir função do IAM). Copie o prefixo da função do IAM, como eksctl-dev303-workshop-nodegroup.

  4. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  5. No painel de navegação, escolha Perfis.

  6. Use a caixa de pesquisa para localizar o prefixo copiado anteriormente neste procedimento e escolha a função.

  7. Escolha Anexar políticas.

  8. Use a caixa de pesquisa para localizar o CloudWatchAgentServerPolicy. Marque a caixa de seleção ao lado de CloudWatchAgentServerPolicy e escolha Attach policy (Anexar política).

Instalar o atendente do CloudWatch para coletar métricas do Prometheus

Você deve instalar o atendente do CloudWatch no cluster para coletar as métricas. O método de instalação do atendente é diferente para clusters do Amazon EKS e clusters do Kubernetes.

Excluir versões anteriores do atendente do CloudWatch compatíveis com Prometheus

Se você já instalou em seu cluster uma versão do atendente do CloudWatch com suporte ao Prometheus, exclua essa versão inserindo o comando a seguir. Isso é necessário apenas para versões anteriores do atendente com suporte ao Prometheus. Não é necessário excluir o atendente do CloudWatch que habilita o Container Insights sem suporte ao Prometheus.

kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch

Instalar o atendente CloudWatch em clusters do Amazon EKS com o tipo de inicialização do EC2

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS, siga estas etapas.

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS
  1. Insira o comando a seguir para verificar se o namespace amazon-cloudwatch já foi criado:

    kubectl get namespace
  2. Se amazon-cloudwatch não for exibido nos resultados, crie-o inserindo o comando a seguir:

    kubectl create namespace amazon-cloudwatch
  3. Para implantar o atendente com a configuração padrão e fazer com que ele envie dados para a região da AWS em que está instalado, insira o comando a seguir:

    kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml

    Em vez disso, para que o atendente envie dados para uma região diferente, siga estas etapas:

    1. Faça download do arquivo YAML para o atendente inserindo o comando a seguir:

      curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
    2. Abra o arquivo com um editor de textos e procure o bloco cwagentconfig.json do arquivo.

    3. Adicione as linhas realçadas, especificando a região desejada:

      cwagentconfig.json: | { "agent": { "region": "us-east-2" }, "logs": { ...
    4. Salve o arquivo e implante o atendente usando o arquivo atualizado.

      kubectl apply -f prometheus-eks.yaml

Instalar o atendente CloudWatch em clusters do Amazon EKS com o tipo de inicialização do Fargate

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS com tipo de inicialização do Fargate, siga estas etapas.

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Amazon EKS com tipo de inicialização do Fargate
  1. Insira o comando a seguir para criar um perfil Fargate para o atendente do CloudWatch de modo que ele possa ser executado dentro do cluster. Substitua MyCluster pelo nome do cluster.

    eksctl create fargateprofile --cluster MyCluster \ --name amazon-cloudwatch \ --namespace amazon-cloudwatch
  2. Para instalar o atendente do CloudWatch, insira o comando a seguir. Substitua MyCluster pelo nome do cluster. Esse nome é usado no nome do grupo de logs que armazena os eventos de log coletados pelo atendente, além de ser usado como uma dimensão para as métricas coletadas pelo atendente.

    Substitua a region pelo nome da região para onde você deseja que as métricas sejam enviadas. Por exemplo, .us-west-1

    curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Instalar o atendente do CloudWatch em um cluster do Kubernetes

Para instalar o atendente do CloudWatch com suporte ao Prometheus em um cluster do Kubernetes em execução, insira o comando a seguir:

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Substitua MyCluster pelo nome do cluster. Esse nome é usado no nome do grupo de logs que armazena os eventos de log coletados pelo atendente, além de ser usado como uma dimensão para as métricas coletadas pelo atendente.

Substitua a região pelo nome da região da AWS para onde você deseja que as métricas sejam enviadas. Por exemplo, .us-west-1

Verificar se o atendente está em execução

Nos clusters do Amazon EKS e do Kubernetes, você pode inserir o seguinte comando para confirmar se o atendente está em execução.

kubectl get pod -l "app=cwagent-prometheus" -n amazon-cloudwatch

Se os resultados incluírem um único pod de atendente do CloudWatch no estado Running, o atendente está em execução e coletando métricas do Prometheus. Por padrão, o atendente do CloudWatch coleta métricas para App Mesh, NGINX, Memcached, Java/JMX e HAProxy a cada minuto. Para obter mais informações sobre essas métricas, consulte Métricas do Prometheus coletadas pelo atendente do CloudWatch. Para obter instruções sobre como ver as métricas do Prometheus no CloudWatch, consulte Visualizar as métricas do Prometheus

Você também pode configurar o atendente do CloudWatch para coletar métricas de outros exportadores do Prometheus. Para obter mais informações, consulte Extrair outras fontes do Prometheus e importar essas métricas.