Sistema de monitoramento Prometheus ⋆ ALexHost SRL

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
10.12.2024

Sistema de monitoramento Prometheus

À medida que os sistemas e aplicativos aumentam em complexidade, o monitoramento se torna essencial para garantir o desempenho, a confiabilidade e a escalabilidade ideais. O Prometheus, um kit de ferramentas de monitoramento e alerta de código aberto, tornou-se uma das soluções mais populares para gerenciar e visualizar métricas de vários sistemas. Originalmente desenvolvido pela SoundCloud, o Prometheus agora é um projeto da Cloud Native Computing Foundation (CNCF) e tem ampla adoção em todos os setores.

Neste artigo, exploraremos os principais recursos do Prometheus, como ele funciona e as etapas necessárias para configurá-lo para monitorar sua infraestrutura e seus aplicativos.

O que é o Prometheus?

O Prometheus é um sistema de monitoramento avançado, projetado para coletar, armazenar e consultar dados de séries temporais, que são medições ou eventos rastreados ao longo do tempo. Os dados coletados pelo Prometheus podem ser visualizados, analisados e usados para acionar alertas, ajudando as equipes a se manterem informadas sobre a integridade e o desempenho da infraestrutura.

O Prometheus é conhecido por vários recursos importantes:

  • Modelo de dados de série temporal: O Prometheus armazena dados como séries temporais, o que significa que as métricas são registradas em intervalos de tempo.
  • Monitoramento baseado em pull: Em vez de os sistemas monitorados enviarem as métricas para o servidor, o Prometheus usa um modelo baseado em pull para extrair métricas dos pontos de extremidade.
  • Linguagem de consulta avançada (PromQL): O Prometheus fornece uma poderosa linguagem de consulta, PromQL, que permite aos usuários filtrar e agregar métricas em tempo real.
  • Alertas: O Prometheus integra-se ao Alertmanager para definir regras e enviar notificações quando condições específicas são atendidas.
  • Descoberta de serviços: O Prometheus pode descobrir e extrair automaticamente métricas de ambientes que mudam dinamicamente, como o Kubernetes.

Como o Prometheus funciona

O Prometheus segue uma arquitetura simples, porém robusta, projetada para monitorar dados de séries temporais. Veja como ele funciona:

  1. Coleta de métricas (Scraping): O Prometheus coleta periodicamente métricas de pontos de extremidade HTTP (chamados de exportadores) expostos por aplicativos ou sistemas.
  2. Armazenamento de dados de séries temporais: Depois de coletadas, o Prometheus armazena as métricas em um banco de dados de séries temporais, em que cada ponto de dados é associado a um carimbo de data/hora e a um conjunto de rótulos.
  3. Consulta com o PromQL: Os usuários podem consultar as métricas armazenadas usando a linguagem de consulta do Prometheus, PromQL, para gerar gráficos, painéis de controle ou alertas.
  4. Alertas: Com base em condições predefinidas, o Prometheus pode disparar alertas usando o Alertmanager, que pode enviar notificações por e-mail, Slack, PagerDuty ou outros serviços.

O Prometheus oferece suporte a um modelo baseado em pull, no qual ele periodicamente extrai métricas de pontos de extremidade que expõem métricas em um formato que o Prometheus pode entender. Isso o torna ideal para monitorar sistemas distribuídos e microsserviços em que o dimensionamento e os ambientes dinâmicos são comuns.

Componentes do Prometheus

O Prometheus é formado por vários componentes principais, cada um com uma finalidade diferente:

  1. Servidor Prometheus: O componente central responsável pela coleta, armazenamento e consulta de métricas. Ele coleta os endpoints de destino e armazena as métricas em um banco de dados de série temporal.
  2. Exportadores: São aplicativos ou serviços que expõem as métricas em um formato compatível com o Prometheus. Os exportadores comuns incluem:
    • Node Exporter: coleta métricas de hardware e de nível de sistema operacional.
    • Exportador Blackbox: para sondagem de endpoints por HTTP, DNS, TCP etc.
    • Exportadores específicos de aplicativos: Muitos bancos de dados (como PostgreSQL, MySQL) e serviços têm seus próprios exportadores.
  3. Alertmanager: O Prometheus usa o Alertmanager para lidar com alertas. Ele pode encaminhar alertas para diferentes receptores, como Slack, e-mail ou SMS, e gerenciar regras de silenciamento e inibição.
  4. PromQL (Prometheus Query Language): Uma linguagem de consulta avançada usada para recuperar e manipular dados de séries temporais.
  5. Pushgateway: Um componente usado para trabalhos efêmeros ou de curta duração que não podem expor métricas por meio de um scrape direto (por exemplo, trabalhos em lote). O Pushgateway permite que esses trabalhos enviem suas métricas para o Prometheus.
  6. Grafana: Embora não faça parte do próprio Prometheus, o Grafana é uma ferramenta popular de código aberto usada para visualizar dados do Prometheus e criar painéis interativos.

Configuração passo a passo do Prometheus

Veja como você pode configurar o Prometheus em um servidor Linux e começar a monitorar as métricas do sistema:

Etapa 1: instalar o Prometheus
  1. Faça o download do Prometheus: Visite a página de downloads do Prometheus para obter a versão mais recente do Prometheus e execute os seguintes comandos para baixar e extrair o Prometheus:
    wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz tar -xvf prometheus-2.32.1.linux-amd64.tar.gz cd prometheus-2.32.1.linux-amd64
  2. Inicie o Prometheus: Execute o seguinte comando para iniciar o Prometheus:
    ./prometheus –config.file=prometheus.yml

    Por padrão, o Prometheus é executado na porta 9090 e você pode acessar sua interface da Web navegando para http://localhost:9090 no seu navegador.

Etapa 2: configurar o Prometheus

A configuração principal do Prometheus é feita por meio do arquivo prometheus.yml. Esse arquivo informa ao Prometheus quais alvos (exportadores) devem ser coletados e com que frequência.

Aqui está uma configuração básica do prometheus.yml:

global: scrape_interval: 15s # Com que frequência coletar métricas scrape_configs: – job_name: “prometheus” static_configs: – targets: [“localhost:9090”] # Extração do próprio Prometheus

Você pode adicionar mais alvos ou exportadores conforme necessário, e o Prometheus começará a fazer o scraping deles automaticamente.

Etapa 3: instalar o exportador de nós (para métricas do sistema)

Para monitorar as métricas do sistema, como CPU, memória, disco e uso da rede, você pode instalar o Node Exporter.

  1. Faça download do Node Exporter:
    wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64
  2. Iniciar o Node Exporter: execute o seguinte comando para iniciar o Node Exporter:
    ./node_exporter

    Por padrão, o Node Exporter é executado na porta 9100 e expõe métricas como uso da CPU, estatísticas de memória, E/S de disco e métricas de rede.

  3. Configure o Prometheus para fazer scraping do Node Exporter: adicione o seguinte trabalho ao arquivo de configuração prometheus.yml:
    scrape_configs: – nome_do_trabalho: ‘node_exporter’ static_configs: – targets: [‘localhost:9100’]
  4. Reinicie o Prometheus: Depois de fazer alterações no arquivo de configuração, reinicie o Prometheus para começar a extrair métricas do Node Exporter.
Etapa 4: visualizar métricas com o Grafana

Para visualizar as métricas do Prometheus, o Grafana é uma excelente ferramenta. Ela se integra perfeitamente ao Prometheus e permite que você crie painéis interativos.

  1. Instale o Grafana: No Linux, você pode instalar o Grafana seguindo as instruções no site do Grafana.
  2. Configure o Prometheus como uma fonte de dados: Depois de instalar o Grafana:
    • Faça login no Grafana (http://localhost:3000).
    • Vá para Configuração > Fontes de dados e adicione o Prometheus como uma fonte de dados (http://localhost:9090).
  3. Criar painéis: Agora você pode criar seus próprios painéis personalizados ou importar painéis pré-criados do marketplace do Grafana para visualizar métricas como uso da CPU, utilização da memória, desempenho do disco e muito mais.
Etapa 5: configurar alertas

O Prometheus permite que você configure alertas com base em condições específicas, como alto uso da CPU, pouco espaço em disco ou falhas de aplicativos.

  1. Definir regras de alerta: Os alertas são definidos em um arquivo rules.yml separado. Aqui está um exemplo de regra de alerta que é acionada quando o uso da CPU é superior a 80%:
    groups: – name: example_alerts rules: – alert: HighCPUUsage expr: 100 – (avg by(instance) (rate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100) > 80 for: 5m labels: severity: warning annotations: summary: “High CPU usage detected on {{ $labels.instance }}” description: “O uso da CPU está acima de 80% por mais de 5 minutos.”
  2. Configurar o Alertmanager: Instale e configure o Alertmanager para enviar notificações por e-mail, Slack ou outros canais quando um alerta for acionado.

Casos de uso do Prometheus

O Prometheus é usado em uma ampla gama de cenários para monitorar vários tipos de sistemas, incluindo:

  1. Monitoramento de infraestrutura: Colete métricas de servidores, bancos de dados e dispositivos de rede para garantir que sua infraestrutura esteja funcionando sem problemas.
  2. Monitoramento de aplicativos: Rastreie métricas de desempenho, como latência, taxa de solicitação, taxas de erro e consumo de recursos para aplicativos, especialmente em arquiteturas de microsserviços.
  3. Monitoramento de Kubernetes: O Prometheus se integra nativamente ao Kubernetes e pode descobrir e extrair automaticamente métricas de pods e serviços em um cluster do Kubernetes.
  4. Métricas personalizadas: O Prometheus permite instrumentar seus próprios aplicativos para expor métricas personalizadas, fornecendo insights profundos sobre comportamentos específicos de aplicativos.

Conclusão

O Prometheus é uma solução de monitoramento avançada e flexível que permite a coleta, a consulta e o alerta em tempo real com base em dados de séries temporais. Quer você esteja monitorando métricas no nível do sistema ou o desempenho de aplicativos em uma arquitetura de microsserviços, o Prometheus é uma ferramenta valiosa para garantir a integridade e a estabilidade da sua infraestrutura.

Seguindo as etapas descritas neste artigo, você pode começar a usar o Prometheus, coletar métricas de seus sistemas e visualizá-las usando o Grafana. Com o tempo, o Prometheus pode ajudá-lo a obter insights sobre tendências de desempenho, detectar anomalias e responder a incidentes rapidamente, melhorando o tempo de atividade e a confiabilidade do sistema.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills