O que é e como instalar o Prometheus no Ubuntu 20.04

bernardolankheet
4 min readApr 19, 2023

Nos dias de hoje, o monitoramento é muito presente dentro das empresas, seja monitorando infraestrutura que sustenta o negocio ou ate mesmo o próprio negocio. Principalmente hoje em que muitas empresas possuem sua infraestrutura e aplicações em cloud ou como micro serviços.

Imagina que você tem um guichê virtual de venda passagens de ônibus, e de uma hora para outra a integração com o gateway de pagamento a apresentar instabilidade, mas o guichê continuará funcionando e disponível para os clientes. Isso poderá afetar as vendas e ate a equipe responsável identificar o problema poderá levar um tempo, afetando o negocio. O “PROMETEUS” ou “Prometheus” pode lhe auxiliar nesses casos.

O Prometheus.io é um sistema de coleta de métricas de aplicações e serviços, escrito em GO e desenvolvido pela SoundCloud (em 2016 foi incubado pela Cloud Native Computing Foundation), que utiliza um banco de dados de series temporais (time-series), com linguagem própria (PromQL), ele é muito robusto e já pronto para aplicações em cloud e micro serviços. Podemos utiliza-lo junto com Alertmanager (responsável por controle de alertas e notificações), Grafana (para analise e visualização de dados de coletas e métricas) e Prometheus Operator. Do lado dos “clients”, temos os “Exporter” responsável por coletar métricas de sistemas diversos e prepara-las para o formato que o Prometheus possa entender, isso tudo utilizando protocolo HTTP.

Chega de falar e vamos instalar o Prometheus.

Realizando Download e Executando

Para esta documentação é utilizado:

Ubuntu 20.04

Prometheus 2.43.0.

Acesse a pagina de download do prometheus para baixar os binários do prometheus.

Download | Prometheus

Copie o link de download da versão que deseja. (.tar.gz).

##
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
## ls para listar o download
ls
## descompacta
tar xvf prometheus-2.43.0.linux-amd64.tar.gz
ls -l
## entre no diretorio
cd prometheus-2.43.0.linux-amd64
ls -l

Entendendo os arquivos contidos na pasta.

  1. Arquivo chamado prometheus é o binario do serviço do prometheus.
  2. Arquivo chamado prometheus.yaml é o arquivo de configuração do prometheus, nele realizamos todas as confirmações do serviço.
  3. promtool, utilitário de linha de comando, util para trobleshooting.
  4. consoles e consoles_libraries: Arquivos utilizados para dashboard e seleções de visualização.

Para executar o prometheus:

./prometheus
## para parar o serviço, utilize ctrl+c

Em um navegador, acesse o dashboard utilizando, localhost:9090 se estiver local na sua maquina ou o IP da servidor.

http://localhost:9090

http://172.30.203.183/

Ou via terminal utilizando o curl.

curl http://localhost:9090/metrics
curl http://localhost:9090

Por padrão o prometheus já vem configurado para monitorar ele mesmo.

Onde 1 é UP e 0 e Down, pegando a disponibilidade do host.

Realizando uma consulta simples de promql.

Instalando Prometheus com Systemd

Crie Primeiro criar um capaz de rodar o processo do prometheus, nota que utilizamos ele com o parâmetro “no-create-home”, assim ele não terá pasta home de usuário e “ — shell /bin/false” sem acesso ao shell, logo este usuário não fará login, será exclusivo para serviço.

sudo useradd --no-create-home --shell /bin/false prometheus

Crie um diretório em etc para o inclusão dos arquivos do prometheus.

sudo mkdir /etc/prometheus

Crie um novo diretorio para inclusão dos dados e database do prometheus.

sudo mkdir /var/lib/prometheus

Agora aplique as permissões necessárias nestas pastas.

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

Agora instale o prometheus, iremos copiar os arquivos para as pastas criadas e aplicar as permissões para o usuário recém criado.

##
sudo cp prometheus /usr/local/bin/
sudo cp promtool /usr/local/bin/
##ls
sudo chown prometheus:prometheus /usr/local/bin/promtool
sudo chown prometheus:prometheus /usr/local/bin/prometheus
##
sudo cp -r consoles /etc/prometheus
sudo cp -r console_libraries /etc/prometheus
##
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
##
sudo cp prometheus.yaml /etc/prometheus/prometheus.yml
sudo chown -R prometheus:prometheus /etc/prometheus/prometheus.yml
##
sudo chown -R prometheus:prometheus /var/lib/prometheus

Rode o seguinte comando, para ver se o serviço ficará UP. (ATENCAO)

sudo -u prometheus /usr/local/bin/prometheus \\ 
--config.file /etc/prometheus/prometheus.yml \\
--storage.tsdb.path /var/lib/prometheus/ \\
--web.console.templates=/etc/prometheus/console \\
--web.console.libraries=/etc/prometheus/console_libraries
## crlt+c para parar o processo.

Teste o acesso para ver se o serviço está rodando.

<http://172.27.184.45:9090/>
<http://172.27.184.45:9090/metrics>

Crie neste momento o serviço do prometheus.

vi /etc/systemd/system/prometheus.service

Conteudo

[Unit]
Description=Prometheus
Want=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \\
--config.file /etc/prometheus/prometheus.yml \\
--storage.tsdb.path /var/lib/prometheus/ \\
--web.console.templates=/etc/prometheus/console \\
--web.console.libraries=/etc/prometheus/console_libraries/

[Install]
WantedBy=multi-user.target

Obs:

[Unit]
...
## somente depois que iniciar a rede
Want=network-online.target
After=network-online.target

[Service]
....

[Install]
## Inicialização do serviço será de forma normal, sem ter nenhum gui local ativo.
WantedBy=multi-user.target

Faça um reload no daemon do linux.

sudo systemctl daemon-reload

Inicie o serviço

sudo systemctl start prometheus
sudo systemctl status prometheus
sudo systemctl enable prometheus ## para iniciar automaticamente o serviço junto com o S.O

Espero que tenham curtido o material e ate a próxima.

--

--