Monitorando Debian 10 com Grafana & Prometheus

Grafana é uma ferramenta de analise e visualização de matricas open source que pode nos ajudar a monitorar o sistema com um ótimo dashboard.

Vamos instalar algumas dependências para começar a nossa instalação

apt update && apt install -y vim sudo curl gnupg2

Recomendado utilizar um vimrc

curl -L https://raw.githubusercontent.com/douglasqsantos/DevOps/master/Misc/vimrc -o /root/.vimrc

Grafana pode ser instalado via repositórios Debian, tenha em mente que não é sempre a última versão do sistema desta forma vamos utilizar os repositórios oficiais.

Vamos criar o arquivo vai controlar os repositórios

sudo vim /etc/apt/sources.list.d/grafana.list
deb https://packages.grafana.com/oss/deb stable main

Os repositórios são separados por releases no caso eu vou estar utilizando a versão estavél (stable) pode ser utilizado o repositório beta

Agora precisamos importar as chaves do repositório para poder efetuar a instalação de pacotes assinados.

curl https://packages.grafana.com/gpg.key | sudo apt-key add -

Agora vamos atualizar os repositórios

sudo apt-get update

Agora vamos verificar se os pacotes do Grafana vão ser instalados dos repositórios oficiais.

sudo apt-cache policy grafana
grafana:
  Instalado: (nenhum)
  Candidato: 6.4.3
  Tabela de versão:
     6.4.3 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.4.2 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.4.1 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.4.0 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.3.6 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.3.5 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.3.4 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.3.3 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
     6.3.2 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
[...]

Agora podemos continuar e instalar os pacotes necessários.

sudo apt-get install grafana -y

Após a instalação dos pacotes vamos iniciar o serviço

sudo systemctl start grafana-server

Agora vamos validar se o Grafana esta rodando e esta como (active (running))

sudo systemctl status grafana-server
● grafana-server.service - Grafana instance
   Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-10-22 14:24:34 -03; 3s ago
     Docs: http://docs.grafana.org
 Main PID: 2423 (grafana-server)
    Tasks: 10 (limit: 1150)
   Memory: 24.3M
   CGroup: /system.slice/grafana-server.service
           └─2423 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=deb cfg:default

out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing SearchService" logger=server
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing TracingService" logger=server
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing UsageStatsService" logger=server
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing CleanUpService" logger=server
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing NotificationService" logger=server
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing provisioningServiceImpl" logger=server
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Initializing Stream Manager"
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="HTTP Server Listen" logger=http.server address=0.0.0.0:3000 prot
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=info msg="Backend rendering via phantomJS" logger=rendering
out 22 14:24:36 buster grafana-server[2423]: t=2019-10-22T14:24:36-0300 lvl=warn msg="phantomJS is deprecated and will be removed in a future release.

Agora vamos adicionar o Grafana na inicialização do sistema.

sudo systemctl enable grafana-server.service

Prometheus é um sistema de monitoramento e toolkit de alerta open source.

Vamos efetuar a instalação dele

sudo apt install -y prometheus prometheus-node-exporter

Após a instalação precisamos validar se temos duas novas portas TCP/IP escutando porta 9090 e 9100

ss -plunt
Netid      State       Recv-Q      Send-Q           Local Address:Port           Peer Address:Port                                                    
tcp        LISTEN      0           128                    0.0.0.0:22                  0.0.0.0:*         users:(("sshd",pid=388,fd=3))                 
tcp        LISTEN      0           20                   127.0.0.1:25                  0.0.0.0:*         users:(("exim4",pid=4260,fd=3))               
tcp        LISTEN      0           128                       [::]:22                     [::]:*         users:(("sshd",pid=388,fd=4))                 
tcp        LISTEN      0           128                          *:3000                      *:*         users:(("grafana-server",pid=2423,fd=6))      
tcp        LISTEN      0           20                       [::1]:25                     [::]:*         users:(("exim4",pid=4260,fd=4))               
tcp        LISTEN      0           128                          *:9090                      *:*         users:(("prometheus",pid=3958,fd=5))          
tcp        LISTEN      0           128                          *:9100                      *:*         users:(("prometheus-node",pid=3478,fd=3))  

Podemos notar que temos a porta 3000 que é o serviço do Grafana também esta escutando.

Assim que o Grafana e o Prometheus estiverem instalados podemos acessar o painel web. O endereço de acesso é http://ip_do_servidor:3000 a página de acesso vai ser como abaixo.

Aqui precisamos informar usuário admin e senha admin. Assim que efetuar o login será solicitado a alteração da senha.

Na tela inicial:

Selecione Add data source.

Selecione Prometheus

Configurando:

  1. Name: Prometheus
  2. HTTP:
    1. Access: Server (Default)
  3. No final da página selecione Save & Test
  4. Deve aparecer: Data source is working

Grafana tem muitos Dashboards criados por vários usuários e as configurações são compartilhadas em Grafana Dashboard.

Eu uso o Dashboard Node Exporter Full, então para utilizar o mesmo podemos efetuar a importação do dashboard pelo seu id: 5174

Na tela inicial selecione o botão com o simbolo de + e selecione Import

Aqui informe o id 5174 e pressione TAB

Em some-prometheus selecione: Prometheus

Agora selecione Import

Agora vamos ter o nosso painel.

Referências