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
Instalando o Grafana
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
Instalando o Prometheus
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.
Acessando o Grafana
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.
Configurando o Prometheus como origem dos dados
Na tela inicial:
Selecione Add data source.
Selecione Prometheus
Configurando:
- Name: Prometheus
- HTTP:
- Access: Server (Default)
- No final da página selecione Save & Test
- Deve aparecer: Data source is working
Criando um Dashboard
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.