Construa um sistema de monitoramento com Grafana e Prometheus no Debian 12
Nesta página
- Pré-requisitos
- Adicionando Repositório Grafana
- Instalando o Grafana
- Configurando o Grafana
- Instalando o Nginx como proxy reverso
- Adicionando autenticação ao servidor Prometheus
Integrando Prometheus com Painel Grafana
- Adicionando fonte de dados do Prometheus
- Importando monitoramento de painel
Grafana é uma plataforma de visualização de dados de código aberto e multiplataforma desenvolvida pela Grafana Labs. Grafana fornece um aplicativo web interativo de visualização de dados que inclui tabelas, gráficos e alertas. Com o Grafana, você pode consultar, visualizar, configurar alertas e explorar métricas, logs e rastreamentos de TSDB. É uma ferramenta poderosa que transforma dados de banco de dados de série temporal (TSDB) em um gráfico e visualização criteriosos.
No Grafana, você pode adicionar dados do banco de dados de série temporal por meio da 'Fonte de dados'. Grafana oferece suporte a várias fontes de dados, como Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor e muito mais.
Neste guia, você instalará o Grafana no servidor Debian 12 com Nginx como proxy reverso, em seguida, adicionará o Prometheus como fonte de dados e configurará o Painel Grafana para monitoramento do sistema.
Pré-requisitos
Antes de prosseguir, certifique-se de ter o seguinte:
- Um servidor Debian 12 para instalação do Grafana.
- Um servidor Debian 12 com Prometheus e Node Exporter instalados - Como instalar o Prometheus e o Node Exporter no Debian 12.
- Um usuário não root com privilégios de administrador sudo.
Adicionando Repositório Grafana
Neste guia, você instalará o Grafana por meio do repositório oficial do Grafana. Para fazer isso, você deve adicionar o repositório Grafana ao seu servidor Debian.
Para começar, execute o seguinte comando para instalar dependências básicas em sua máquina Debian.
sudo apt install gnupg2 apt-transport-https software-properties-common wget
Agora adicione a chave e o repositório Grafana GPG executando o seguinte comando.
curl -fsSL https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/grafana.gpg
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main' | sudo tee /etc/apt/sources.list.d/grafana.list
Por último, atualize e atualize seu índice de pacotes Debian para aplicar as alterações.
sudo apt update
Instalando o Grafana
Agora que adicionou o repositório Grafana, você instalará o Grafana via APT. Em seguida, você configurará o usuário e a senha do administrador para a instalação do Grafana.
Instale o Grafana em seu sistema Debian usando o seguinte comando. Insira y para prosseguir com a instalação.
sudo apt install grafana
Após a conclusão da instalação, recarregue o gerenciador systemd executando o seguinte comando.
sudo systemctl daemon-reload
Em seguida, inicie e habilite o serviço grafana-server usando o comando abaixo.
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
Assim que o servidor grafana estiver em execução, verifique-o usando o comando abaixo. Se tudo correr bem, você verá que o servidor grafana está habilitado e funcionando.
sudo systemctl status grafana-server
Por último, inicie seu navegador e visite o endereço IP do seu servidor com a porta Grafana padrão 3000, como http://192.168.5.20:3000/.
Insira o usuário padrão admin e a senha admin e clique em Login.
Agora altere a senha de administrador padrão com uma nova senha. Em seguida, clique em Enviar para confirmar.
Quando o processo for concluído, você deverá ver o painel do Grafana como o seguinte:
Configurando o Grafana
Com o Grafana instalado, o próximo passo é configurar o Grafana modificando a configuração padrão /etc/grafana/grafana.ini e configurar o http_addr para localhost, http_port para 3000, e o domínio com um nome de domínio local grafana.howtoforge.local.
Abra a configuração padrão do Grafana /etc/grafana/grafana.ini usando o seguinte comando do editor nano.
sudo nano /etc/grafana/grafana.ini
Altere a configuração padrão com as seguintes linhas. Neste exemplo, você executará o Grafana em localhost e com o nome de domínio local grafana.howtoforge.local.
[server]
# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost
# The http port to use
http_port = 3000
# The public facing domain name used to access grafana from a browser
domain = grafana.howtoforge.local
Quando terminar, salve e saia do arquivo.
Agora execute o seguinte comando systemctl para reiniciar o servidor grafana e aplicar as alterações. Com isso, a instalação do Grafana será executada apenas no localhost.
sudo systemctl restart grafana-server
Instalando o Nginx como proxy reverso
Neste guia, você executará o Grafana com Nginx como proxy reverso. Agora, conclua as tarefas a seguir para instalar e configurar o Nginx como um proxy reverso para a instalação do Grafana.
Execute o seguinte comando para instalar o servidor web Nginx em sua máquina Debian. Insira y para prosseguir com a instalação.
sudo apt install nginx
Após a instalação do Nginx, execute o seguinte comando do editor nano para criar um novo arquivo de bloco do servidor /etc/nginx/sites-available/grafana.conf.
sudo nano /etc/nginx/sites-available/grafana.conf
Insira a seguinte configuração e certifique-se de alterar o nome de domínio dentro do parâmetro server_name.
# This is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name grafana.howtoforge.local;
root /usr/share/nginx/html;
index index.html index.htm;
access_log /var/log/nginx/grafana-access.log;
error_log /var/log/nginx/grafana-error.log;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}
# Proxy Grafana Live WebSocket connections.
location /api/live {
rewrite ^/(.*) /$1 break;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}
}
Salve e feche o arquivo quando terminar.
Em seguida, execute o seguinte comando para ativar o arquivo de bloco do servidor /etc/nginx/sites-available/grafana.conf. Em seguida, verifique a sintaxe do Nginx para garantir que você tenha a sintaxe correta.
sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t
Se você tiver a sintaxe Nginx correta, deverá obter a saída 'teste bem-sucedido - sintaxe está ok'.
Finalmente, execute o seguinte comando systemctl para reiniciar o serviço Nginx e aplicar as alterações. Em seguida, verifique o Nginx para garantir que o serviço esteja em execução.
sudo systemctl restart nginx
sudo systemctl status nginx
Na saída a seguir, você verá que o serviço Nginx está em execução.
Para acessar seu servidor Grafana, você pode modificar o arquivo /etc/hosts em sua máquina local se for um usuário Linux ou MacOS. Para usuários do Windows, edite o arquivo C:\Windows\System32\drivers\etc\hosts como administração.
Insira a seguinte configuração no arquivo.
192.168.5.15 grafana.howtoforge.local
Salve e feche o arquivo quando terminar.
Agora volte ao navegador da web e visite o nome de domínio local do servidor Grafana, como http://grafana.howtoforge.local/. Se sua configuração for bem-sucedida, você será redirecionado para a página de login do Grafana.
Faça login com seu usuário e senha de administrador e clique em Login para confirmar.
Agora você deve obter o painel de administração do Grafana.
Adicionando autenticação ao servidor Prometheus
Antes de adicionar o Prometheus ao Grafana, você configurará a autenticação básica para o Prometheus. Você gerará a senha de autenticação básica com apache2-utils e, em seguida, ativará basic_auth para o servidor Prometheus.
Neste exemplo, o Prometheus e o Node Exporter são instalados em servidores diferentes com endereço IP 192.168.5.15 e o nome do host prometheus.
Faça login no servidor Prometheus e instale o pacote apache2-utils por meio do comando apt abaixo.
sudo apt install apache2-utils -y
Em seguida, gere a nova senha para autenticação básica do Prometheus. Insira sua senha e copie a senha gerada para sua nota.
htpasswd -nB promadmin
Agora, crie uma nova configuração do Prometheus /etc/prometheus/web.yml usando o seguinte comando do editor nano.
sudo nano /etc/prometheus/web.yml
Adicione a seguinte configuração para proteger o painel de administração do Prometheus com o módulo basic_auth.
# basic_auth
basic_auth_users:
promadmin: $2y$05$UlvHd4An.oQRt2UdUXzr9eZ6ShRLe3xYbMhw8ePfvGeLuu0khO4Bu
Salve e feche o arquivo quando terminar.
Em seguida, abra a configuração padrão do Prometheus /etc/prometheus/prometheus.yml usando o seguinte comando do editor nano.
sudo nano /etc/prometheus/prometheus.yml
Adicione a configuração basic_auth abaixo no trabalho do Prometheus. Certifique-se de alterar os detalhes de usuário e senha com seus dados.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
# Add settings for certificate and authentication
scheme: http
basic_auth:
username: 'promadmin'
password: 'password'
Salve e feche o arquivo quando terminar.
Em seguida, execute o seguinte comando para editar o arquivo de serviço do prometheus.
sudo systemctl edit --full prometheus
Altere a opção ExecStart padrão com o seguinte.
ExecStart=/usr/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --web.config.file=/etc/prometheus/web.yml
Salve e feche o arquivo quando terminar.
Agora, execute o seguinte comando systemctl para recarregar o gerenciador systemd e aplicar as alterações. Em seguida, reinicie o serviço prometheus.
sudo systemctl daemon-reload
sudo systemctl restart prometheus
Verifique o serviço prometheus usando o comando abaixo.
sudo systemctl status prometheus
Na seção ExecStart, o comando foi alterado da seguinte forma.
Por último, abra seu navegador e visite o endereço IP do Prometheus com porta 9090 (ou seja: http://192.168.10.15:9090/). Você será solicitado a fornecer o Prometheus basic_auth, insira seu usuário e senha de administrador e clique em Entrar.
Se sua configuração for bem-sucedida, você deverá ver o painel do Prometheus como o seguinte.
Integrando Prometheus com Painel Grafana
Depois de configurar a autenticação básica no Prometheus, você pode adicionar o Prometheus como fonte de dados ao painel do Grafana. Há duas etapas que você deve concluir: adicionar o Prometheus como fonte de dados e, em seguida, importar ou criar um painel Grafana para monitoramento do sistema.
Adicionando fonte de dados do Prometheus
De volta ao painel do Grafana, clique no menu Conexões e selecione Fonte de dados.
Clique em Adicionar fonte de dados para continuar.
Selecione o banco de dados de série temporal Prometheus.
Insira o nome da nova fonte de dados e do host do Prometheus em http://192.168.5.15:9090/. Na seção Autenticação, selecione Autenticação Básica e insira o nome de usuário e a senha do Prometheus.
Role para baixo e clique em Salvar e testar para confirmar. A saída 'Consultou com sucesso a API do Prometheus.' confirma que o Prometheus foi adicionado ao Grafana.
Importando monitoramento de painel
Clique no menu + no canto superior direito e selecione Importar painel.
Encontre o painel desejado em https://grafana.com/grafana/dashboards/. Em seguida, copie e cole o ID do painel e clique em Carregar para confirmar. Nesse caso, usaremos o ID do painel 15172.
Insira o nome do painel e selecione a fonte de dados do Prometheus. Em seguida, clique em Importar para confirmar.
Abaixo está um exemplo do Grafana Dashboard aprimorado com Prometheus para monitorar o sistema.
Agora você instalou o Grafana com sucesso em um servidor Debian 12 com Nginx como proxy reverso, adicionou Prometheus como fonte de dados ao Grafana e importou o painel do Grafana para monitoramento do sistema.