Uma das formas de monitoramento são os Node Exporter, nos quais possuem diversas integrações nativamente oficiais e da comunidade.
Você pode visualizar todos os exporters do Prometheus:
https://prometheus.io/docs/instrumenting/exporters/
Neste artigo, vamos realizar a instalação do Node Exporter no sistema operacional Linux CentOS e configurar o prometheus server para realizar a coleta do mesmo.
1) Download Node Exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz tar -xzvf prometheus*
2) Acessar o diretório extraído no passo anterior e criar o usuário e alterar permissões:
useradd --no-create-home --shell /bin/false node_exporter chown node_exporter:node_exporter /usr/local/bin/node_exporter
3) Criar o arquivo do service, /etc/systemd/system/node_exporter.service:
[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
4) Recarregar e habilitar na inicialização:
systemctl daemon-reload systemctl start node_exporter systemctl enable node_exporter
Utilizando o navegador, IP do servidor onde está o Node Exporter, porta 9100 /metrics, podemos visualizar as métricas:
5) Vamos agora realizar agora a configuração do Prometheus Server para coletar as informações do Node, editando o arquivo prometheus.yml.
- job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['IP:9100']
6) O arquivo final base, irá ficar dessa forma, após o mesmo reinicie o serviço do prometheus:
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['10.0.0.232:9100']
7) Vamos acessar o Prometheus para validar as coletas:
Pronto, monitoramento sendo realizado com sucesso! 😀