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.
Tópicos
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.
Tópicos
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
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, escolha Instances (Instâncias).
-
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
. Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Perfis.
-
Use a caixa de pesquisa para localizar o prefixo copiado anteriormente neste procedimento e escolha a função.
-
Escolha Anexar políticas.
-
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
-
Insira o comando a seguir para verificar se o namespace
amazon-cloudwatch
já foi criado:kubectl get namespace
-
Se
amazon-cloudwatch
não for exibido nos resultados, crie-o inserindo o comando a seguir:kubectl create namespace amazon-cloudwatch
-
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:
-
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
-
Abra o arquivo com um editor de textos e procure o bloco
cwagentconfig.json
do arquivo. -
Adicione as linhas realçadas, especificando a região desejada:
cwagentconfig.json: | {
"agent": { "region": "us-east-2" },
"logs": { ... -
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
-
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 -
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 ter mais informações, consulte Extrair outras fontes do Prometheus e importar essas métricas.