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 =)