1. Home /
  2. Observabilidade /
  3. Implantando Prometheus e Grafana

Implantando Prometheus e Grafana

Objetivo

Apresentar uma sugestão de stack para monitoramento / observabilidade, utilizando Prometheus e Grafana (instalação padrão Linux e em contâiners)

Requisitos Mínimos de HW

  • 2 vCPU 2GHz
  • 8G Mem
  • 120G Disco
  • Linux (rpm ou deb based) instalado na versão mínima

Executando a instalação do Prometheus

Instalando o Prometheus Server (https://github.com/prometheus/prometheus)

O Primeiro passo é o download da aplicação:

# wget https://github.com/prometheus/prometheus/releases/download/v2.1.0/prometheus-2.1.0.linux-amd64.tar.gz

Extraindo os arquivos:

# tar -xf prometheus-2.1.0.linux-amd64.tar.gz

Movendo os binários para /usr/local/bin:

# mv prometheus-2.1.0.linux-amd64/prometheus prometheus-2.1.0.linux-amd64/promtool /usr/local/bin

Criando os diretórios de configuração e de dados do Prometheus:

# mkdir /etc/prometheus /var/lib/prometheus

Movendo os arquivos de configuração para o diretório criado no passo anterior:

# mv prometheus-2.1.0.linux-amd64/consoles prometheus-2.1.0.linux-amd64/console_libraries /etc/prometheus

Removendo os arquivos que não serão mais utilizados:

# rm -r prometheus-2.1.0.linux-amd64*

 

Configurando o Prometheus

Depois de instalar o Prometheus, temos que configurá-lo para informá-lo sobre os endpoints HTTP que deve monitorar. O Prometheus usa o formato YAML para sua configuração.

Utilizaremos o arquivo /etc/prometheus/prometheus.yml como nosso arquivo de configuração:

global:
scrape_interval: 10s

scrape_configs:

- job_name: 'prometheus_metrics'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']

Neste arquivo, definimos um intervalo de extração padrão de 10 segundos.

Também definimos uma fonte de métricas, denominada prometheus_metrics. Definimos o intervalo de raspagem para 5 segundos, substituindo o padrão. Em seguida, especificamos os locais onde essas métricas estarão disponíveis. O Prometheus usa a porta 9090 para fornecer suas métricas.

Por fim, também alteraremos a propriedade dos arquivos que o Prometheus utilizará:

# useradd -rs /bin/false prometheus
# chown -R prometheus: /etc/prometheus /var/lib/prometheus

Agora vamos criar um arquivo unit para o systemd, que ficará em
/etc/systemd/system/prometheus.service, com o seguinte conteúdo:

[Unit]
Description=Prometheus
After=network.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/consoles \
--web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Vamos recarregar o systemd:

sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus

O Prometheus fornece uma UI da web para executar consultas básicas localizadas em http://<prometheus_server_address>:9090/.

É assim que fica em um navegador da web:

Exemplo de Arquitetura do Prometheus, com seus coletores de métricas (exporters),
uso de service discovery, alertas e visualização de dados (Grafana)


 

Updated on 08/12/2023

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se