CodeGym /Cursos /Docker SELF /Configurando o monitoramento de containers com o Promethe...

Configurando o monitoramento de containers com o Prometheus

Docker SELF
Nível 21 , Lição 3
Disponível

4.1 Instalando o Prometheus

Prometheus é um sistema de monitoramento e alerta poderoso de código aberto, desenvolvido para coletar e armazenar métricas de várias fontes, incluindo containers Docker. Nesta aula, vamos revisar em detalhes o processo de configuração do monitoramento de containers com o Prometheus, incluindo instalação, configuração de coleta de métricas e integração com Docker.

1. Baixando e instalando o Prometheus

Primeiro, faça o download da versão mais recente do Prometheus no site oficial:

Terminal

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

Extraia o arquivo:

Terminal

tar xvfz prometheus-*.tar.gz
cd prometheus-*      

Mova os arquivos binários para /usr/local/bin:

Terminal

sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/

4.2 Configurando o arquivo de configuração do Prometheus

O Prometheus usa o arquivo de configuração prometheus.yml pra definir as fontes de métricas e as configurações de coleta de dados. Cria ou edita o arquivo prometheus.yml:

Yaml

global:
  scrape_interval: 15s  # Intervalo de coleta de métricas
      
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

Esse arquivo de configuração inclui dois trabalhos (job):

  1. prometheus: pra coletar métricas do próprio Prometheus.
  2. cadvisor: pra coletar métricas do cAdvisor, que será usado pra monitorar os contêineres Docker.

5.3 Executando o Prometheus

Inicie o Prometheus usando o arquivo de configuração criado:

Terminal

prometheus --config.file=prometheus.yml

O Prometheus estará disponível no endereço http://localhost:9090.

5.4 Instalando e configurando o cAdvisor

cAdvisor (Container Advisor) é uma ferramenta de monitoramento de contêineres que coleta e fornece métricas para contêineres Docker. Para usá-lo, faça o seguinte:

Inicie o cAdvisor em um contêiner Docker:

Terminal

docker run -d \
  --name=cadvisor \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --privileged \
  gcr.io/cadvisor/cadvisor:latest

cAdvisor estará disponível no endereço http://localhost:8080.

5.5 Atualizando a configuração do Prometheus para o cAdvisor

Certifique-se de que a configuração do Prometheus inclui uma job para o cAdvisor. Um exemplo de configuração foi mostrado anteriormente.

Reinicie o Prometheus para aplicar as mudanças:

Terminal

prometheus --config.file=prometheus.yml

5.6 Verificando a coleta de métricas

Acesse a interface web do Prometheus no endereço http://localhost:9090 e certifique-se de que o Prometheus está coletando métricas do cAdvisor. Para isso, execute a query no Prometheus:

Terminal

container_cpu_usage_seconds_total

Você deve ver os dados coletados dos containers Docker.

5.7 Adicionando métricas adicionais

Você pode adicionar métricas adicionais no arquivo de configuração do Prometheus para coletar mais dados sobre seus containers. Exemplo de métricas adicionais:

Yaml

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Para isso, será necessário instalar o node_exporter, que fornece métricas sobre o estado do sistema host.

Baixe e instale o node_exporter:

Terminal

wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/

Inicie o node_exporter:

Terminal

node_exporter &

Agora o node_exporter estará disponível no endereço http://localhost:9100.

5.8 Criando regras de alerta

O Prometheus suporta a criação de regras de alerta para notificar administradores sobre problemas. Adicione regras de alerta no arquivo de configuração prometheus.yml:

Yaml

rule_files:
  - "alert.rules"
      
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"

Crie o arquivo alert.rules com um exemplo de regras:

Yaml

groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "Uso alto de CPU detectado"
      description: "O container está usando mais de 85% da CPU por mais de 1 minuto."
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION