O que é e como instalar o Prometheus no Ubuntu 20.04
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.
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.
- Arquivo chamado prometheus é o binario do serviço do prometheus.
- Arquivo chamado prometheus.yaml é o arquivo de configuração do prometheus, nele realizamos todas as confirmações do serviço.
- promtool, utilitário de linha de comando, util para trobleshooting.
- 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.
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.