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.216 ]

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

Monitoramento de Comunicação - Blackbox Exporter(ICMP) + Prometheus + Grafana

Crie um bot para Telegram e gerencie a escala de plantonistas

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

Linux, uma história sem fim!

Centralizando logs com Promtail + Loki + Grafana

Leitura recomendada

Obtendo diferentes versões do Debian GNU/Linux

Crise de distro!

Porquê a mascote do Linux é um pinguim

Introdução aos sistemas operacionais

Trabalhando com datas no Linux

  
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