Solução do Amazon CloudWatch: coleta de métricas do Prometheus no Amazon EC2
Essa solução ajuda você a coletar métricas compatíveis com o Prometheus de suas instâncias do Amazon EC2 sem executar ou escalar sua própria infraestrutura de coleta. Você executa um ou mais exportadores do Prometheus em suas instâncias, e um coletor do Prometheus gerenciado pelo Amazon CloudWatch descobre os destinos em sua VPC, coleta seus endpoints /metrics e entrega as métricas ao CloudWatch. Para obter informações gerais sobre todas as soluções de observabilidade do CloudWatch, consulte Soluções de observabilidade do CloudWatch. Para obter mais informações sobre coletores gerenciados, consulte Coletores do Prometheus gerenciados pelo Amazon CloudWatch.
Tópicos
Requisitos
Esta solução é aplicável nas seguintes condições:
-
Computação: instâncias do Amazon EC2 que executam um ou mais exportadores do Prometheus.
-
Amazon VPC com o DNS habilitado e, pelo menos, duas sub-redes em diferentes zonas de disponibilidade para o coletor.
-
Um grupo de segurança que permite que o coletor alcance as portas do exportador em suas instâncias.
Habilitar exportadores do Prometheus
Um exportador do Prometheus é um processo que expõe métricas no formato de exposição do Prometheus em um endpoint HTTP /metrics. Você executa um exportador que corresponde à workload que você deseja monitorar. Os seguintes exportadores são comumente usados no Amazon EC2:
-
Node Exporter: métricas de infraestrutura no nível do host, como CPU, memória, disco e rede (porta padrão 9100). Para obter mais informações, consulte o repositório do Node Exporter
no GitHub. -
JMX Exporter: métricas de JVM e aplicações Java para workloads Java. Para obter mais informações, consulte o repositório do JMX Exporter
no GitHub. -
NGINX Prometheus Exporter: servidor web NGINX e métricas de proxy reverso. Para obter mais informações, consulte o repositório do NGINX Prometheus Exporter
no GitHub. -
DCGM Exporter: métricas de GPUs NVIDIA para workloads em GPU, como treinamento e inferência de machine learning (porta padrão 9400). Para obter mais informações, consulte o repositório do DCGM Exporter
no GitHub. -
HAProxy Exporter: métricas do balanceador de carga HAProxy. Para obter mais informações, consulte o repositório do HAProxy Exporter
no GitHub. -
Apache Exporter: métricas do Apache HTTP Server. Para obter mais informações, consulte o repositório do Apache Exporter
no GitHub.
Instale e execute cada exportador em suas instâncias seguindo a documentação oficial. Observe a porta que cada exportador recebe, pois você faz referência a essas portas na sua configuração de extração. Para obter um catálogo completo de exportadores disponíveis, consulte Exporters and integrations
Depois de iniciar um exportador, confirme se ele expõe métricas consultando seu endpoint na instância:
curl http://localhost:port-number/metrics
Etapa 1: definir a configuração de extração
O exemplo a seguir usa static_configs com os nomes DNS privados da instância para extrair uma aplicação de amostra (porta 8080) e um Node Exporter (porta 9100) em suas instâncias do Amazon EC2. A seção relabel_configs adiciona rótulos consistentes às suas métricas para que você possa consultar e filtrar vários serviços. Para ver o conjunto completo de opções de configuração compatíveis, consulte Configuração do extrator.
global: scrape_interval: 30s scrape_timeout: 10s scrape_configs: - job_name: 'ec2-metrics' static_configs: - targets: - ip-ip-address.us-west-2.compute.internal:8080 metrics_path: '/metrics' relabel_configs: - source_labels: [__address__] target_label: instance replacement: 'ec2-metrics-instance' - target_label: service replacement: 'ec2-metrics' - target_label: environment replacement: 'dev' metric_relabel_configs: - source_labels: [__name__] regex: '.*' action: keep - job_name: ec2-node-exporter static_configs: - targets: - ip-ip-address.us-west-2.compute.internal:9100
Etapa 2: configurar o extrator
Crie um coletor gerenciado conectado à VPC que extrai suas instâncias e fornece métricas ao seu conjunto de dados do CloudWatch. Forneça as sub-redes e o grupo de segurança que permitem que o coletor alcance suas portas de exportação:
Você pode usar GetDefaultScraperConfiguration para recuperar uma configuração de extrator de uso geral ou fornecer a sua própria.
Quando você cria um coletor gerenciado, o Amazon Managed Service for Prometheus cria automaticamente um perfil vinculado ao serviço que concede ao coletor permissão para acessar seus recursos de VPC e gravar em seu conjunto de dados do CloudWatch.
Validar a coleta de métricas
Em questão de minutos, as métricas começam a fluir para seu conjunto de dados do CloudWatch. Para confirmar que suas métricas chegaram, execute uma consulta ad-hoc no CloudWatch usando o Query Studio. Por exemplo, a seguinte consulta retorna as métricas da tarefa ec2-metrics:
{job="ec2-metrics"}
Criar um painel personalizado
Depois que o coletor começar a entregar suas métricas do Amazon EC2 para o CloudWatch, você poderá criar um painel personalizado do CloudWatch para visualizá-las. Com painéis personalizados, você pode combinar as métricas de seus exportadores do Prometheus em widgets, adicionar consultas baseadas em PromQL e organizar os widgets para atender às suas necessidades de monitoramento. Consulte mais informações em Usar painéis do CloudWatch.
Custos
Cobramos pelos coletores do Prometheus por hora, e os preços de ingestão de métricas do CloudWatch OpenTelemetry se aplicam. Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch