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!!!