Consumindo dados do AWS Cloud Watch com Prometheus

Continuando nossa série sobre Prometheus, no artigo de hoje, vamos falar sobre como consumir dados do Cloud Watch com o Prometheus, eliminando a necessidade de programar scripts utilizando a API da AWS.

O Prometheus possuí um exporter que se conecta com o Cloud Watch, sendo necessário apenas escrever o arquivo YAML, baseado nos dados que você precisa, o exporter pode ser utilizado em docker ou diretamente no S.O.

Vou utilizar nesse ambiente uma EC2 CentOS, vamos seguir com a instalação do Exporter Cloud Watch.

1) Download do Exporter:

wget -O /usr/local/bin/cloudwatch_exporter.jar http://search.maven.org/remotecontent?filepath=io/prometheus/cloudwatch/cloudwatch_exporter/0.8.0/cloudwatch_exporter-0.8.0-jar-with-dependencies.jar

 

2) Instalação java:

yum install -y java-11-openjdk-headless.x86_64

 

3) Criar os diretórios e arquivos:

mkdir -p /etc/cloudwatchexporter
touch /etc/cloudwatchexporter/cloudwtachexporter.yml
mkdir -p ~/.aws/
touch ~/.aws/credentials

 

4) Conteúdo do ˜/.aws/credentials:

[default]
aws_access_key_id=YOUR_ACCESS_KEY_ID
aws_secret_access_key=YOUR_SECRET_ACCESS_KEY'

 

5) Conteúdo do /etc/systemd/system/cloudwatch_exporter.service e habilitar para inicialização:

[Unit]
Description=CLoudwatch Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/bin/java -jar /usr/local/bin/cloudwatch_exporter.jar 9106 /etc/cloudwatchexporter/cloudwatchexporter.yml

[Install]
WantedBy=multi-user.target
systemclt daemon-reload
systemclt enable cloudwatch_exporter

 

6) Adicionar no arquivo do servidor prometheus, /etc/prometheus/prometheus.yml:

- job_name: 'cloudwatch_exporter'
  scrape_interval: 5s
  static_configs:
    - targets: ['localhost:9106']

 

7) Adicionar conteúdo no arquivo de configuração do cloudwatchexporter.yml:

region: us-east-1
metrics:
- aws_namespace: AWS/ECS
  aws_metric_name: CPUUtilization
  aws_dimensions: [ClusterName, ServiceName]
  aws_dimensions_select:
    ClusterName: [jlcp-movi-desk]
  aws_statistics: [Average]

 

8) Validando a configuração no Exporter porta 9106:

Dica de como listar as métricas:

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html