Configurando o Dashboard do Grafana

Agora que você tem seu nó funcionando, você provavelmente vai querer ter uma maneira conveniente de monitorar tudo sobre ele rapidamente para garantir que está funcionando corretamente (e que tipo de ganhos está gerando para você).

Existem muitas ferramentas por aí que fazem esse trabalho. Uma das mais populares é chamada Grafana - um sistema de dashboard de uso geral e fácil de usar que você pode acessar com um navegador.

Rocket Pool vem pronto para uso com suporte para Grafana e suas dependências; ele ainda vem com um dashboard pré-construído para cada um dos clientes de Consenso. Por exemplo, aqui está uma imagem do que o dashboard parece na rede de teste Hoodi:

O dashboard padrão inclui as seguintes informações, tudo em um formato conveniente:

  • Superior esquerdo: algumas estatísticas importantes sobre a saúde e desempenho da sua máquina, e quaisquer atualizações de sistema pendentes
  • Superior direito: a atividade e desempenho dos seus validadores na Beacon Chain, juntamente com algumas estatísticas do cliente de Execução e Consenso
  • Inferior esquerdo: detalhes sobre toda a rede Rocket Pool, para referência
  • Inferior direito: detalhes sobre suas recompensas de staking, tanto ETH quanto RPL

Neste guia, vamos mostrar como habilitar o sistema de métricas do Rocket Pool para que você possa usar este dashboard - ou até construir o seu próprio!

Visão Geral da Pilha de Métricas do Rocket Pool

Se você optar por habilitar métricas durante o processo de configuração do Smartnode, seu nó adicionará os seguintes processos:

  • Prometheus - um sistema de coleta, armazenamento e relatório de dados que captura todas as métricas que você vê acima (e muitas mais) e as armazena, para que possam ser consultadas ao longo do tempo
  • O Node Exporter do Prometheus - um serviço que coleta informações sobre a saúde da sua máquina (como uso de CPU, uso de RAM, espaço livre em disco e espaço de swap, etc.) e relata para o Prometheus
  • Grafana, a ferramenta que expõe os dados do Prometheus através de um site conveniente hospedado no seu nó
  • Um conjunto opcional de scripts personalizados que relatará quaisquer atualizações de Sistema Operacional disponíveis ao Prometheus, para que você saiba se seu sistema precisa ser atualizado

A configuração padrão criará contêineres Docker com todos esses serviços que vivem ao lado dos outros contêineres Docker do Smartnode. Ela abrirá uma porta na sua máquina de nó para Grafana, para que você possa acessar seu dashboard de qualquer máquina na sua rede local com um navegador.

Habilitando o Servidor de Métricas

Docker
Hybrid
Native

Habilitar métricas no modo Docker é o mais fácil de todos.

Comece executando o comando de configuração do Smartnode novamente:

rocketpool service config

Vá para a seção Monitoring / Metrics e marque a caixa Enable Metrics.

Para aqueles que preferem ajustar suas configurações de porta, você pode fazer isso aqui. Observe que todas essas portas estão restritas à rede interna do Docker com exceção da porta do Grafana - essa será aberta na sua máquina (para que você possa acessá-la através de um navegador de outras máquinas, como seu desktop ou telefone) então você pode querer mudá-la se a porta padrão entrar em conflito com algo que você já tem.

Salve e saia, e o smartnode iniciará os contêineres Docker do Prometheus, Node Exporter e Grafana para você.

Ele também modificará seus clientes de Consenso e Validador para que exponham suas próprias métricas ao Prometheus.

O rastreador de atualizações do Sistema Operacional e do Rocket Pool não é instalado por padrão para máxima flexibilidade, mas o processo é simples. Se você gostaria de instalá-lo para que seu dashboard mostre quantas atualizações estão disponíveis para seu sistema, você pode fazer isso com este comando:

rocketpool service install-update-tracker

Por baixo dos panos, isso instalará um serviço que se conecta ao gerenciador de pacotes do seu Sistema Operacional, verifica periodicamente por atualizações e envia essa informação ao Prometheus. Este serviço é diferente para cada Sistema Operacional, mas foi confirmado que funciona nos seguintes:

  • Ubuntu 20.04+
  • Debian 9 e 10
  • CentOS 7 e 8
  • Fedora 34

NOTA

Habilitar o serviço automaticamente é incompatível com SELinux. Se seu sistema tem SELinux habilitado por padrão (como é o caso com CentOS e Fedora), o comando de instalação levará você quase até o fim, mas também lhe dará instruções sobre como terminar o processo manualmente no final.

Durante essa verificação, ele também comparará sua versão instalada do Rocket Pool Smartnode com a versão mais recente, e informará se há uma nova versão disponível.

Se você habilitou o rastreador de atualizações, o último passo é reiniciar o Node Exporter com o seguinte comando:

docker restart rocketpool_exporter

Depois disso, você deve estar pronto.

Configure o firewall para permitir conexões para monitoramento

NOTA

Se você tem UFW habilitado conforme referenciado na seção Protegendo seu Nó, você precisará abrir algumas portas para permitir conexões locais entre o Prometheus e seus Clientes de Execução/Consenso. Siga os passos abaixo.

Docker
Native

Execute o seguinte, e substitua as portas conforme necessário:

RP_NET=$(docker inspect rocketpool_net | grep -Po "(?<=\"Subnet\": \")[0-9./]+")
sudo ufw allow from $RP_NET to any port 9105 comment "Allow Prometheus access to Execution Client"
sudo ufw allow from $RP_NET to any port 9100 comment "Allow Prometheus access to Consensus Client"
sudo ufw allow from $RP_NET to any port 9103 comment "Allow Prometheus access to Exporter"

Você pode então abrir o firewall para permitir que dispositivos externos acessem seu dashboard do Grafana.

Network
Subnet
Anywhere

Use isso se você quiser acessar o Grafana de qualquer máquina dentro da sua rede local, mas negar acesso em todos os outros lugares. Este será o caso de uso mais comum.

Verifique primeiro se sua rede local usa a estrutura 192.168.1.xxx. Você pode ter que alterar o comando abaixo para corresponder à configuração da sua rede local se ela usar uma estrutura de endereço diferente (por exemplo, 192.168.99.xxx).

# This assumes your local IP structure is 192.168.1.xxx
sudo ufw allow from 192.168.1.0/24 proto tcp to any port 3100 comment 'Allow grafana from local network'

Configurando o Grafana

Agora que o servidor de métricas está pronto, você pode acessá-lo com qualquer navegador na sua rede local.

Consulte as abas abaixo para o seu modo de instalação do Smartnode.

Navegue para a seguinte URL, substituindo as variáveis pela sua configuração conforme necessário:

http://<your node IP>:<grafana port>

Por exemplo, se o IP do seu nó fosse 192.168.1.5 e você usasse a porta padrão do Grafana de 3100, então você iria para esta URL no seu navegador:

http://192.168.1.5:3100

Você verá uma tela de login assim:

As informações padrão do Grafana são:

Username: admin
Password: admin

Você será então solicitado a alterar a senha padrão da conta admin. Escolha algo forte e não esqueça!

Dica

Se você perder a senha do admin, pode redefini-la usando o seguinte comando no seu nó:

Docker and Hybrid Mode
Native
docker exec -it rocketpool_grafana grafana-cli admin reset-admin-password admin

Você poderá fazer login no Grafana usando as credenciais padrão admin novamente, e então será solicitado a alterar a senha da conta admin.

Graças ao trabalho do membro da comunidade tedsteen, o Grafana se conectará automaticamente à sua instância do Prometheus para que tenha acesso às métricas que coleta. Tudo que você precisa fazer é obter o dashboard!

Importando o Dashboard do Rocket Pool

Agora que você tem o Grafana anexado ao Prometheus, você pode importar o dashboard padrão (ou construir o seu próprio usando as métricas que ele fornece, se você estiver familiarizado com esse processo).

Comece indo para o menu Create (o ícone de mais na barra lateral direita) e clique em Import:

Quando solicitado para o ID do dashboard na caixa Import via grafana.com, digite 21863 ou use a URL completa ((https://grafana.com/grafana/dashboards/24900-rocket-pool-dashboard-v1-4-0/) e pressione o botão Load.

Você será solicitado com algumas informações sobre o dashboard aqui, como seu nome e onde você gostaria de armazená-lo (a pasta padrão General é boa a menos que você use muitos dashboards e queira organizá-los).

Sob o menu suspenso Prometheus na parte inferior, você deve ter apenas uma única opção rotulada Prometheus (default). Selecione esta opção.

Sua tela deve parecer com isto:

Se a sua corresponder, clique no botão Import e você será imediatamente levado ao seu novo dashboard.

À primeira vista, você deve ver muitas informações sobre seu nó e seus validadores. Cada caixa vem com uma dica útil no canto superior esquerdo (o ícone i) sobre a qual você pode passar o mouse para saber mais sobre ela. Por exemplo, aqui está a dica para a caixa Your Validator Share:

No entanto, ainda não terminamos de configurar as coisas - ainda há um pouco mais de configuração a fazer.

NOTA

Algumas das caixas (notadamente as de APR) foram temporariamente desabilitadas devido à maneira como Shapella fornece recompensas skimmed.

Elas serão habilitadas novamente em uma versão futura do Smartnode que pode rastrear recompensas históricas adequadamente.

Ajustando o Monitor de Hardware ao seu Sistema

Agora que o dashboard está funcionando, você pode notar que algumas caixas estão vazias, como SSD Latency e Network Usage. Temos que ajustar o dashboard ao seu hardware específico para que ele saiba como capturar essas coisas.

CPU Temp

Para atualizar seu medidor de temperatura da CPU, clique no título da caixa CPU Temp e selecione Edit no menu suspenso. Sua tela agora ficará algo assim:

Este é o modo de edição do Grafana, onde você pode alterar o que é exibido e como parece. Estamos interessados na caixa de consulta destacada em vermelho, à direita do botão Metrics browser.

Por padrão, essa caixa tem isto nela:

node_hwmon_temp_celsius{job="node", chip="", sensor=""}

Existem dois campos neste texto que estão atualmente em branco: chip e sensor. Estes são únicos para cada máquina, então você terá que preenchê-los com base no que sua máquina fornece.

Para fazer isso, siga estes passos:

  1. Remova a parte , sensor="" para que termine com chip=""}. Para clareza, o todo agora deve ser node_hwmon_temp_celsius{job="node", chip=""}.
  2. Coloque seu cursor entre as aspas de chip="" e pressione Ctrl+Spacebar. Isso abrirá uma caixa de preenchimento automático com as opções disponíveis, que se parece com isto:
  1. Selecione a opção que corresponde à CPU do seu sistema.
  2. Uma vez selecionado, adicione , sensor="" de volta na string. Coloque seu cursor entre as aspas de sensor="" e pressione Ctrl+Spacebar para obter outro menu de preenchimento automático. Selecione o sensor que você deseja monitorar.
Dica

Se você não sabe qual chip ou sensor está correto, você terá que tentar todos eles até encontrar o que parece certo. Para ajudar com isso, instale o pacote lm-sensors (por exemplo, sudo apt install lm-sensors no Debian / Ubuntu) e execute o comando sensors -u para fornecer quais sensores seu computador tem. Você pode tentar correlacionar um ID de chip da lista do Grafana com o que você vê aqui com base em seus nomes e IDs.

Por exemplo, esta é uma das saídas do nosso comando sensors -u:

k10temp-pci-00c3
Tctl:
  temp1_input: 33.500
Tdie:
  temp2_input: 33.500

No nosso caso, o chip correspondente no Grafana é pci0000:00_0000:00:18_3 e o sensor correspondente é temp1.

Uma vez que você esteja satisfeito com suas seleções, clique no botão azul Apply no canto superior direito da tela para salvar as configurações.

NOTA

Nem todos os sistemas expõem informações de temperatura da CPU - notadamente máquinas virtuais ou sistemas baseados em nuvem. Se o seu não tiver nada no campo de preenchimento automático para chip, este é provavelmente o caso e você não poderá monitorar a temperatura da sua CPU.

SSD Latency

O gráfico SSD Latency rastreia quanto tempo leva para operações de leitura/escrita ocorrerem. Isso é útil para avaliar quão rápido seu SSD é, para que você saiba se ele se torna um gargalo se seu validador sofre de desempenho ruim. Para atualizar o SSD que você deseja rastrear no gráfico, clique no título SSD Latency e selecione Edit.

Este gráfico tem quatro campos de consulta (quatro caixas de texto) com oito partes device="" no total. Você precisará atualizar as primeiras quatro dessas partes com o dispositivo que você deseja rastrear.

Simplesmente coloque seu cursor entre as aspas e pressione Ctrl+Spacebar para obter a lista de preenchimento automático do Grafana, e selecione a opção correta de lá para cada uma das partes device="". Você quer começar pela configuração vazia mais à esquerda primeiro, ou a lista de preenchimento automático pode não aparecer.

Dica

Se você não sabe qual dispositivo rastrear, execute o seguinte comando:

lsblk

Isso exibirá uma árvore mostrando sua lista de dispositivos e partições, por exemplo:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
loop25        7:25   0   132K  1 loop /snap/gtk2-common-themes/9
loop26        7:26   0  65,1M  1 loop /snap/gtk-common-themes/1515
nvme0n1     259:0    0 238,5G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/efi
├─nvme0n1p2 259:2    0 150,1G  0 part /
├─nvme0n1p3 259:3    0  87,4G  0 part
└─nvme0n1p4 259:4    0   527M  0 part

Se você não mudou a localização padrão do Docker para um drive diferente durante sua instalação do Smartnode, então o disco que você quer rastrear será aquele em que seu Sistema Operacional está instalado. Procure na coluna MOUNTPOINT por uma entrada simplesmente rotulada /, então siga isso de volta para seu dispositivo pai (aquele com disk na coluna TYPE).

Tipicamente isso será sda para drives SATA ou nvme0n1 para drives NVMe.

Se você mudou a localização padrão do Docker para um drive diferente, ou se você está executando uma configuração híbrida / nativa, você deve ser capaz de usar a mesma técnica de "seguir o ponto de montagem" para determinar em qual dispositivo seus dados de cadeia residem.

Opcionalmente, você também pode rastrear a latência de um segundo disco no seu sistema. Isso é destinado a pessoas que mantêm seu Sistema Operacional e dados de cadeia em drives separados. Para configurar isso, simplesmente siga as instruções acima para os últimos dois campos de consulta, substituindo os valores da parte device="" com os do disco que você deseja rastrear.

Uma vez que você esteja satisfeito com suas seleções, clique no botão azul Apply no canto superior direito da tela para salvar as configurações.

Network Usage

Este gráfico rastreia quanto dados você está enviando e recebendo em uma conexão de rede específica. Como você deve esperar, o dashboard precisa saber qual rede você quer que ele rastreie.

Para alterá-la, clique no título Network Usage e selecione Edit.

Este gráfico tem dois campos de consulta com duas partes device="" no total. Você precisará atualizar estes com a rede que você deseja rastrear.

Coloque seu cursor entre as aspas e pressione Ctrl+Spacebar para obter a lista de preenchimento automático do Grafana, e selecione a opção correta de lá para cada uma das partes device="".

Dica

Se você não sabe qual dispositivo rastrear, execute o seguinte comando:

sudo route

A saída ficará algo assim:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.1     0.0.0.0         255.255.255.255 UH    100    0        0 eth0

Procure na coluna Destination pela linha com o valor de default. Siga essa linha até o final da coluna Iface. O dispositivo listado lá é o que você quer usar - neste exemplo, eth0.

Uma vez que você esteja satisfeito com suas seleções, clique no botão azul Apply no canto superior direito da tela para salvar as configurações.

Total Net I/O

Isso rastreia a quantidade total de dados que você enviou e recebeu. Você pode achar útil observar se, por exemplo, seu provedor de internet limita você a uma certa quantidade de dados por mês.

A configuração é idêntica à caixa Network Usage acima, então simplesmente siga essas instruções para esta caixa também.

Disk Space Used

Isso fica de olho em quão cheio seu disco do Sistema Operacional está ficando, para que você saiba quando é hora de limpar (e se seus dados de cadeia estiverem no mesmo drive, hora de podar Geth ou Nethermind).

Os passos são os mesmos da caixa SSD Latency acima, então simplesmente siga essas instruções para esta caixa também. Como lembrete, você quer o drive que abriga a partição que tem / na coluna MOUNTPOINT para este, porque esse será seu drive do Sistema Operacional. Preencha isso no primeiro campo de consulta.

Opcionalmente, você também pode rastrear o espaço livre de um segundo disco no seu sistema. Isso é destinado a pessoas que mantêm seu Sistema Operacional e dados de cadeia em drives separados. Configure isso seguindo o mesmo processo, mas em vez de procurar qual partição tem / na coluna MOUNTPOINT, você quer procurar a que tem qualquer que seja o ponto de montagem do seu segundo drive. Atualize o segundo campo de consulta com o disco associado a essa partição.

Disk Temp

Isso rastreia a temperatura atual do seu disco do Sistema Operacional. Os passos são os mesmos da caixa CPU Temp acima, então simplesmente siga essas instruções para esta caixa também, substituindo valores de chip e sensor de CPU com os do seu disco do Sistema Operacional. Preencha esses valores no primeiro campo de consulta.

Opcionalmente, você também pode rastrear a temperatura atual de um segundo disco no seu sistema. Configure isso seguindo o mesmo processo, substituindo os valores de chip e sensor com os do seu segundo drive. Preencha esses valores no segundo campo de consulta.

Personalizando o Dashboard

Embora o dashboard padrão tente fazer um bom trabalho capturando tudo que você gostaria de ver rapidamente, é bastante fácil personalizar um dashboard do Grafana como você quiser. Você pode adicionar novos gráficos, alterar a aparência dos gráficos, mover as coisas, e muito mais!

Dê uma olhada na página Tutoriais do Grafana para aprender como brincar com ele e configurá-lo ao seu gosto.

Personalizando a Pilha de Métricas

As ferramentas usadas na Pilha de Métricas do Rocket Pool oferecem uma ampla variedade de opções de configuração além do que está incluído na instalação padrão do Rocket Pool. Esta seção inclui exemplos de configuração para diferentes casos de uso.

Em geral, opções de configuração do Grafana devem ser passadas usando variáveis de ambiente em override/grafana.yml. Qualquer opção de configuração pode ser convertida em uma variável de ambiente usando a seguinte sintaxe:

GF_<SectionName>_<KeyName>

Configurações SMTP do Grafana para Envio de Emails

Para enviar emails do Grafana, por exemplo, para alertas ou para convidar outros usuários, as configurações SMTP precisam ser configuradas na Pilha de Métricas do Rocket Pool. Consulte a página configuração SMTP do Grafana para referência.

Docker and Hybrid Mode
Native

Abra ~/.rocketpool/override/grafana.yml em um editor de texto. Adicione uma seção environment abaixo da linha x-rp-comment: Add your customizations below this line, substituindo os valores abaixo com os do seu provedor SMTP.

version: "3.7"
services:
grafana:
x-rp-comment: Add your customizations below this line
environment:
## SMTP settings start, replace values with those of your SMTP provider
- GF_SMTP_ENABLED=true
- GF_SMTP_HOST=mail.example.com:`port` # Gmail users should use smtp.gmail.com:587
- GF_SMTP_USER=admin@example.com
- GF_SMTP_PASSWORD=password
- GF_SMTP_FROM_ADDRESS=admin@example.com
- GF_SMTP_FROM_NAME="Rocketpool Grafana Admin"
## SMTP server settings end
Dica

Se estiver usando Gmail e a Verificação em 2 Etapas estiver habilitada, crie uma Senha de App para este serviço.

Depois de fazer essas modificações, execute o seguinte para aplicar as alterações:

Docker and Hybrid Mode
Native
docker stop rocketpool_grafana

rocketpool service start

Para testar as configurações SMTP, vá para o menu Alerting e clique em Contact points.

Clique em New contact point e selecione Email como tipo de Contact point. Digite um endereço de email na seção Addresses e clique em Test.

Verifique se o email de teste foi recebido. Clique em Save contact point* quando terminar.