Monitoramento automático de EC2 com o Prometheus

Seguindo nossos artigos sobre o Prometheus, hoje vamos falar de uma funcionalidade denominada Service Discovery para monitoramento de Ec2, da Amazon Web Services.

Basicamente, por baixo dos panos, o Prometheus busca as informações via API em nossa conta da AWS, o requisito é que tenhamos o Node nas Ec2, dessa forma, o Prometheus simplesmente realiza a busca das EC2 e envia para o Prometheus.

1) Vamos adicionar o job referente o discovery das Ec2 no arquivo de configuração do prometheus.yml, posteriomente restart no serviço para recarregar as novas configurações:

- job_name: 'amazon_ec2'
    ec2_sd_configs:
      - region: us-east-1
       #access_key: XXXXXXXXX
       #secret_key: XXXXXXXXX
        port: 9100
    relabel_configs:
      - source_labels: [__meta_ec2_instance_id]
        target_label: instance

Necessário informar a região e para coletar as informações da EC2, precisamos da permissão, informando a access key e secret key, entretanto, utilizamos IAM Roles para aumentarmos a segurança, você pode aprender como utilizar Roles nesse artigo da JLCP.

A configuração referente o source labels é para que o Prometheus exiba o ID da instância na Label no Prometheus.

 

2) Criar um script para utilizar quando criar uma nova EC2, salve esse arquivo no S3 ou um FTP:

#!/bin/bash
NODE_EXPORTER_VERSION="0.18.0"
wget https://github.com/prometheus/node_exporter/releases/download/v${NODE_EXPORTER_VERSION}/node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz
tar -xzvf node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz
cd node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64
cp node_exporter /usr/local/bin

useradd --no-create-home --shell /bin/false node_exporter

chown node_exporter:node_exporter /usr/local/bin/node_exporter

echo '[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target' > /etc/systemd/system/node_exporter.service

# enable node_exporter in systemctl
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter

 

 

#!/bin/bash
yum install wget -y
wget url/node-exporter.sh
sh node-exporter.sh

 

4) Na console para criar a EC2, ficará dessa forma, importante garantir nos próximos passos a comunicação entre os nodes e o prometheus server, portas 9100 e 9090:

 

 

5) Caso você tenha EC2’s anteriores, as mesmas serão listadas, você pode clicar em Status > Targets:

 

6) Pronto! Quando criar novas EC2 serão monitoradas automáticas com todas mêtricas do Node =)

Deixe uma resposta