Monitorando a saúde do Apache (Prometheus + Grafana)

Prometheus é uma ferramenta de monitoramento para serviços e aplicações. Neste artigo vou mostrar como podemos monitorar a saúde do nosso servidor web Apache com ele e também a criação de um dashboard no grafana com as métricas que foram coletadas

[ Hits: 7.322 ]

Por: Leonardo Berbert Gomes em 17/07/2020 | Blog: https://www.linkedin.com/in/leoberbert


Introdução



Para quem não conhece, resumidamente falando, o prometheus é uma ferramenta de monitoramento para serviços e aplicações. Neste artigo vou mostrar como podemos monitorar a saúde do nosso servidor web Apache com ele e também a criação de um dashboard no grafana com as métricas que foram coletadas.

A arquitetura do ambiente que fiz para demonstrar o uso do prometheus foi a seguinte:
  • Máquina 1 - Servidor Web Apache (IP: 172.27.11.10)
  • Máquina 2 - Máquina com Prometheus + Grafana (IP: 172.27.11.20)

Na máquina 1, onde temos nosso servidor web rodando, será necessário a instalação do apache:

sudo apt-get install -y apache2

Verificar se o apache encontra-se em execução:

systemctl status apache2

Ainda na máquina onde o apache está em execução, vamos utilizar o apache_exporter, que será quem irá gerar as métricas do apache e as disponibilizará para o prometheus.

wget https://github.com/Lusitaniae/apache_exporter/releases/download/v0.8.0/apache_exporter-0.8.0.linux-amd64.tar.gz
tar -xf apache_exporter-0.8.0.linux-amd64.tar.gz

Acessar a pasta:

cd apache_exporter-0.8.0.linux-amd64

Executaremos o apache exporter para já coletar as métricas:

./apache_exporter

Iremos verificar se as métricas estão disponíveis, para isso vamos logar na outra máquina onde o prometheus será executado, para isso execute o comando abaixo:

curl --silent http://172.27.11.10:9117/metrics | grep ^apache

O resultado do comando acima, serão as métricas do nosso servidor web coletadas pelo apache_exporter. Ex.:

apache_accesses_total 5
apache_connections{state="closing"} 0
apache_connections{state="keepalive"} 0
apache_connections{state="total"} 1
apache_connections{state="writing"} 0
apache_cpuload 0.00585574
apache_duration_total 1
apache_exporter_build_info{branch="",goversion="go1.13.9",revision="",version=""} 1apache_scoreboard{state="closing"} 0
apache_scoreboard{state="dns"} 0
apache_scoreboard{state="graceful_stop"} 0
apache_scoreboard{state="idle"} 49
apache_scoreboard{state="idle_cleanup"} 0
apache_scoreboard{state="keepalive"} 0
apache_scoreboard{state="logging"} 0
apache_scoreboard{state="open_slot"} 100
apache_scoreboard{state="read"} 0
apache_scoreboard{state="reply"} 1
apache_scoreboard{state="startup"} 0
apache_sent_kilobytes_total 13
apache_up 1
apache_uptime_seconds_total 3757
apache_version{version="Apache/2.4.38 (Debian)"} 2.4
apache_workers{state="busy"} 1
apache_workers{state="idle"} 49


Neste passo iremos realizar o download do prometheus:

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

Descompactar o arquivo baixado:

tar -xf prometheus-2.19.2.linux-amd64.tar.gz

Acessar o diretório:

cd prometheus-2.19.2.linux-amd64

Este é o passo mais importante. É onde iremos configurar o prometheus para realizar a leitura das métricas na máquina do apache. Editaremos o arquivo "prometheus.yml" inserindo o bloco abaixo no final do arquivo:

vim prometheus.yml

  - job_name: apache
    static_configs:
    - targets: ['172.27.11.10:9117']

Saia e salve seu arquivo e em seguida execute o prometheus.

./prometheus

Em seguida iremos verificar se a interface do prometheus encontra-se acessível. Para isso acesse:

http://172.27.11.20:9090/

Será exibida a imagem abaixo onde já será possível verificar que as métricas estão sendo coletadas.
Agora na máquina onde encontra-se o prometheus, vamos executar o grafana e criar um dashboard bem bacana para dar visibilidade das métricas coletadas.

wget https://dl.grafana.com/oss/release/grafana-7.0.6.linux-amd64.tar.gz
tar -zxvf grafana-7.0.6.linux-amd64.tar.gz
cd grafana-7.0.6/bin
./grafana-server

Acesse o navegador com o ip da máquina na porta 3000.

http://172.27.11.20:3000/

Será exibida a tela de login abaixo onde você deverá fornecer o usuário admin e a senha admin, onde em seguida será solicitado a alteração da mesma.
Será necessário criarmos um datasource para conectar-se ao prometheus, conforme passos abaixo:
Clique em "Save & Teste", se tudo estiver bem, será apresentada a imagem abaixo:
Bem, para adiantar nosso trabalho, iremos baixar um template já pronto do grafana para o prometheus e importá-lo. Acesse o link abaixo e realize o Download do JSON.
Retornaremos ao grafana e faremos o import do arquivo baixado.
Após clicar no import, a mágica acontecerá e seu dashboard aparecerá conforme mostrado abaixo:
Espero que seja útil a vocês!!!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

SuperDNS: Solução definitiva para DNS dinâmico

Gerando gráficos sem mistérios no MRTG (Debian)

Solucionando problemas no sistema de arquivos

Centralizando logs com Promtail + Loki + Grafana

Scikit Learn: Projetando o futuro de suas APIs e aplicativos usando machine learning

Leitura recomendada

Configurando controle genérico de PS2 como controle de Xbox

BASH (Bourne - Again Shell) - De usuário para usuário

Gnu/Linux em 30mb e 2 arquivos

FAI (Fully Automatic Installation)

Desenhar com o mouse na tela do desktop

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts