Configuration du tableau de bord Grafana

Maintenant que votre nœud est opérationnel, vous voudrez probablement avoir un moyen pratique de surveiller tout ce qui le concerne d'un coup d'œil pour vous assurer qu'il fonctionne correctement (et quel type de revenus il génère pour vous).

Il existe de nombreux outils qui font ce travail. L'un des plus populaires s'appelle Grafana - un système de tableau de bord général facile à utiliser auquel vous pouvez accéder avec un navigateur.

Rocket Pool est livré avec un support intégré pour Grafana et ses dépendances ; il est même livré avec un tableau de bord pré-construit pour chacun des clients de consensus. Par exemple, voici un instantané de ce à quoi ressemble le tableau de bord sur le réseau de test Hoodi :

Le tableau de bord standard comprend les informations suivantes toutes dans un format pratique :

  • En haut à gauche : quelques statistiques importantes sur la santé et les performances de votre machine, et toutes les mises à jour système en attente
  • En haut à droite : l'activité et les performances de vos validateurs sur la Beacon Chain, ainsi que quelques statistiques des clients d'exécution et de consensus
  • En bas à gauche : détails sur l'ensemble du réseau Rocket Pool, pour référence
  • En bas à droite : détails sur vos récompenses de staking, ETH et RPL

Dans ce guide, nous vous montrerons comment activer le système de métriques de Rocket Pool afin que vous puissiez utiliser ce tableau de bord - ou même construire le vôtre !

Vue d'ensemble de la pile de métriques Rocket Pool

Si vous choisissez d'activer les métriques pendant le processus de configuration Smartnode, votre nœud ajoutera les processus suivants :

  • Prometheus - un système de collecte, de stockage et de reporting de données qui capture toutes les métriques que vous voyez ci-dessus (et bien d'autres) et les stocke, afin qu'elles puissent être consultées au fil du temps
  • Le Node Exporter de Prometheus - un service qui collecte des informations sur la santé de votre machine (telles que l'utilisation du CPU, l'utilisation de la RAM, l'espace disque libre et l'espace swap, etc.) et les rapporte à Prometheus
  • Grafana, l'outil qui expose les données de Prometheus via un site Web pratique hébergé sur votre nœud
  • Un ensemble optionnel de scripts personnalisés qui signalera toutes les mises à jour disponibles du système d'exploitation à Prometheus, afin que vous sachiez si votre système doit être corrigé

La configuration par défaut créera des conteneurs Docker avec tous ces services qui vivent aux côtés du reste des conteneurs Docker du Smartnode. Il ouvrira un port sur votre machine de nœud pour Grafana, afin que vous puissiez accéder à son tableau de bord depuis n'importe quelle machine de votre réseau local avec un navigateur.

Activation du serveur de métriques

Docker
Hybrid
Native

Activer les métriques en mode Docker est le plus facile de tous.

Commencez par exécuter à nouveau la commande de configuration Smartnode :

rocketpool service config

Accédez à la section Monitoring / Metrics et cochez la case Enable Metrics.

Pour ceux qui préfèrent affiner leurs paramètres de port, vous pouvez le faire ici. Notez que tous ces ports sont limités au réseau interne de Docker à l'exception du port Grafana - celui-ci sera ouvert sur votre machine (afin que vous puissiez y accéder via un navigateur depuis d'autres machines, telles que votre ordinateur de bureau ou votre téléphone), vous voudrez donc peut-être le changer si le port par défaut entre en conflit avec quelque chose que vous avez déjà.

Enregistrez et quittez, et smartnode démarrera les conteneurs Docker Prometheus, Node Exporter et Grafana pour vous.

Il modifiera également vos clients de consensus et de validateur afin qu'ils exposent leurs propres métriques à Prometheus.

Le tracker de mises à jour du système d'exploitation et de Rocket Pool n'est pas installé par défaut pour une flexibilité maximale, mais le processus est simple. Si vous souhaitez l'installer afin que votre tableau de bord vous montre combien de mises à jour sont disponibles pour votre système, vous pouvez le faire avec cette commande :

rocketpool service install-update-tracker

Sous le capot, cela installera un service qui se connecte au gestionnaire de paquets de votre système d'exploitation, vérifie périodiquement les mises à jour et envoie ces informations à Prometheus. Ce service est différent pour chaque système d'exploitation, mais il a été confirmé qu'il fonctionne sur les suivants :

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

NOTE

L'activation automatique du service est incompatible avec SELinux. Si votre système a SELinux activé par défaut (comme c'est le cas avec CentOS et Fedora), la commande d'installation vous mènera presque jusqu'au bout mais vous donnera également des instructions sur la façon de terminer le processus manuellement à la fin.

Pendant cette vérification, il comparera également votre version installée de Rocket Pool Smartnode avec la dernière version, et vous informera s'il y a une nouvelle version disponible.

Si vous avez activé le tracker de mise à jour, la dernière étape consiste à redémarrer le Node Exporter avec la commande suivante :

docker restart rocketpool_exporter

Après cela, vous devriez être prêt.

Configurer le pare-feu pour autoriser les connexions de surveillance

NOTE

Si vous avez UFW activé comme référencé dans la section Sécuriser votre nœud, vous devrez ouvrir quelques ports afin d'autoriser les connexions locales entre Prometheus et vos clients d'exécution/consensus. Suivez les étapes ci-dessous.

Docker
Native

Exécutez ce qui suit, et remplacez les ports si nécessaire :

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"

Vous pouvez ensuite ouvrir le pare-feu pour permettre aux appareils externes d'accéder à votre tableau de bord Grafana.

Network
Subnet
Anywhere

Utilisez ceci si vous souhaitez accéder à Grafana depuis n'importe quelle machine de votre réseau local, mais refuser l'accès partout ailleurs. Ce sera le cas d'utilisation le plus courant.

Veuillez d'abord vérifier si votre réseau local utilise la structure 192.168.1.xxx. Vous devrez peut-être modifier la commande ci-dessous pour correspondre à la configuration de votre réseau local s'il utilise une structure d'adresse différente (par exemple 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'

Configuration de Grafana

Maintenant que le serveur de métriques est prêt, vous pouvez y accéder avec n'importe quel navigateur sur votre réseau local.

Référez-vous aux onglets ci-dessous pour votre mode d'installation Smartnode.

Accédez à l'URL suivante, en remplaçant les variables par votre configuration si nécessaire :

http://<votre IP de nœud>:<port grafana>

Par exemple, si l'IP de votre nœud était 192.168.1.5 et que vous avez utilisé le port Grafana par défaut de 3100, vous iriez à cette URL dans votre navigateur :

http://192.168.1.5:3100

Vous verrez un écran de connexion comme celui-ci :

Les informations Grafana par défaut sont :

Nom d'utilisateur: admin
Mot de passe: admin

Vous serez ensuite invité à modifier le mot de passe par défaut du compte admin. Choisissez quelque chose de fort et ne l'oubliez pas !

Astuce

Si vous perdez le mot de passe admin, vous pouvez le réinitialiser en utilisant la commande suivante sur votre nœud :

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

Vous pourrez vous connecter à Grafana en utilisant à nouveau les identifiants admin par défaut, puis vous serez invité à modifier le mot de passe du compte admin.

Grâce au travail du membre de la communauté tedsteen, Grafana se connectera automatiquement à votre instance Prometheus afin qu'elle ait accès aux métriques qu'elle collecte. Tout ce que vous avez à faire est de récupérer le tableau de bord !

Importation du tableau de bord Rocket Pool

Maintenant que vous avez connecté Grafana à Prometheus, vous pouvez importer le tableau de bord standard (ou créer le vôtre en utilisant les métriques qu'il fournit, si vous êtes familier avec ce processus).

Commencez par aller dans le menu Create (l'icône plus dans la barre latérale droite) et cliquez sur Import :

Lorsqu'on vous demande l'ID du tableau de bord dans la boîte Import via grafana.com, entrez 21863 ou utilisez l'URL complète ((https://grafana.com/grafana/dashboards/24900-rocket-pool-dashboard-v1-4-0/) et appuyez sur le bouton Load.

Vous serez invité avec quelques informations sur le tableau de bord ici, telles que son nom et où vous souhaitez le stocker (le dossier General par défaut convient à moins que vous n'utilisiez beaucoup de tableaux de bord et que vous souhaitiez les organiser).

Sous le menu déroulant Prometheus en bas, vous ne devriez avoir qu'une seule option étiquetée Prometheus (default). Sélectionnez cette option.

Votre écran devrait ressembler à ceci :

Si le vôtre correspond, cliquez sur le bouton Import et vous serez immédiatement dirigé vers votre nouveau tableau de bord.

Au premier coup d'œil, vous devriez voir beaucoup d'informations sur votre nœud et vos validateurs. Chaque boîte est livrée avec une info-bulle pratique dans le coin supérieur gauche (l'icône i) sur laquelle vous pouvez survoler pour en savoir plus. Par exemple, voici l'info-bulle pour la boîte Your Validator Share :

Cependant, nous n'avons pas encore fini de tout configurer - il y a encore un peu plus de configuration à faire.

NOTE

Certaines des boîtes (notamment celles d'APR) ont été temporairement désactivées en raison de la façon dont Shapella fournit les récompenses écrémées.

Elles seront réactivées dans une future version du Smartnode qui pourra suivre correctement les récompenses historiques.

Adapter le moniteur matériel à votre système

Maintenant que le tableau de bord est opérationnel, vous remarquerez peut-être que quelques boîtes sont vides telles que SSD Latency et Network Usage. Nous devons adapter le tableau de bord à votre matériel spécifique afin qu'il sache comment capturer ces éléments.

CPU Temp

Pour mettre à jour votre jauge de température CPU, cliquez sur le titre de la boîte CPU Temp et sélectionnez Edit dans le menu déroulant. Votre écran ressemblera maintenant à quelque chose comme ceci :

Ceci est le mode d'édition de Grafana, où vous pouvez modifier ce qui est affiché et comment cela est affiché. Nous nous intéressons à la boîte de requête mise en évidence en rouge, à droite du bouton Metrics browser.

Par défaut, cette boîte contient ceci :

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

Il y a deux champs dans ce texte qui sont actuellement vides : chip et sensor. Ceux-ci sont uniques à chaque machine, vous devrez donc les remplir en fonction de ce que votre machine fournit.

Pour ce faire, suivez ces étapes :

  1. Supprimez la portion , sensor="" afin qu'elle se termine par chip=""}. Pour plus de clarté, le tout devrait maintenant être node_hwmon_temp_celsius{job="node", chip=""}.
  2. Placez votre curseur entre les guillemets de chip="" et appuyez sur Ctrl+Espace. Cela fera apparaître une boîte de saisie semi-automatique avec les options disponibles, qui ressemble à ceci :
  1. Sélectionnez l'option qui correspond au CPU de votre système.
  2. Une fois cela sélectionné, rajoutez , sensor="" dans la chaîne. Placez votre curseur entre les guillemets de sensor="" et appuyez sur Ctrl+Espace pour obtenir un autre menu de saisie semi-automatique. Sélectionnez le capteur que vous souhaitez surveiller.
Astuce

Si vous ne savez pas quelle chip ou quel sensor est correct, vous devrez tous les essayer jusqu'à ce que vous trouviez celui qui semble correct. Pour vous aider, installez le paquet lm-sensors (par exemple, sudo apt install lm-sensors sur Debian / Ubuntu) et exécutez la commande sensors -u pour fournir les capteurs dont votre ordinateur dispose. Vous pouvez essayer de corréler un ID de puce de la liste de Grafana avec ce que vous voyez ici en fonction de leurs noms et ID.

Par exemple, voici l'une des sorties de notre commande sensors -u :

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

Dans notre cas, la puce correspondante dans Grafana est pci0000:00_0000:00:18_3 et le capteur correspondant est temp1.

Une fois que vous êtes satisfait de vos sélections, cliquez sur le bouton bleu Apply dans le coin supérieur droit de l'écran pour enregistrer les paramètres.

NOTE

Tous les systèmes n'exposent pas d'informations sur la température du CPU - notamment les machines virtuelles ou les systèmes basés sur le cloud. Si le vôtre n'a rien dans le champ de saisie semi-automatique pour chip, c'est probablement le cas et vous ne pourrez pas surveiller la température de votre CPU.

SSD Latency

Le graphique SSD Latency suit combien de temps prennent les opérations de lecture/écriture. Ceci est utile pour évaluer la rapidité de votre SSD, afin que vous sachiez s'il devient un goulot d'étranglement si votre validateur souffre de mauvaises performances. Pour mettre à jour le SSD que vous souhaitez suivre dans le graphique, cliquez sur le titre SSD Latency et sélectionnez Edit.

Ce graphique a quatre champs de requête (quatre zones de texte) avec huit portions device="" au total. Vous devrez mettre à jour les quatre premières de ces portions avec l'appareil que vous souhaitez suivre.

Placez simplement votre curseur entre les guillemets et appuyez sur Ctrl+Espace pour obtenir la liste de saisie semi-automatique de Grafana, et sélectionnez l'option correcte à partir de là pour chacune des portions device="". Vous voulez commencer par le paramètre vide le plus à gauche en premier, sinon la liste de saisie semi-automatique peut ne pas apparaître.

Astuce

Si vous ne savez pas quel appareil suivre, exécutez la commande suivante :

lsblk

Cela affichera un arbre montrant votre liste d'appareils et de partitions, par exemple :

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

Si vous n'avez pas modifié l'emplacement par défaut de Docker sur un autre disque lors de l'installation de votre Smartnode, alors le disque que vous voulez suivre sera celui sur lequel votre système d'exploitation est installé. Regardez dans la colonne MOUNTPOINT pour une entrée simplement étiquetée /, puis remontez jusqu'à son appareil parent (celui avec disk dans la colonne TYPE).

Typiquement, ce sera sda pour les disques SATA ou nvme0n1 pour les disques NVMe.

Si vous avez modifié l'emplacement par défaut de Docker sur un autre disque, ou si vous exécutez une configuration hybride/native, vous devriez pouvoir utiliser la même technique de "suivre le point de montage" pour déterminer sur quel appareil résident vos données de chaîne.

En option, vous pouvez également suivre la latence d'un deuxième disque sur votre système. Ceci est destiné aux personnes qui conservent leur système d'exploitation et leurs données de chaîne sur des disques séparés. Pour configurer cela, suivez simplement les instructions ci-dessus pour les deux derniers champs de requête, en substituant les valeurs de portion device="" par celles du disque que vous souhaitez suivre.

Une fois que vous êtes satisfait de vos sélections, cliquez sur le bouton bleu Apply dans le coin supérieur droit de l'écran pour enregistrer les paramètres.

Network Usage

Ce graphique suit la quantité de données que vous envoyez et recevez sur une connexion réseau particulière. Comme vous pouvez vous y attendre, le tableau de bord doit savoir quel réseau vous souhaitez qu'il suive.

Pour le modifier, cliquez sur le titre Network Usage et sélectionnez Edit.

Ce graphique a deux champs de requête avec deux portions device="" au total. Vous devrez les mettre à jour avec le réseau que vous souhaitez suivre.

Placez votre curseur entre les guillemets et appuyez sur Ctrl+Espace pour obtenir la liste de saisie semi-automatique de Grafana, et sélectionnez l'option correcte à partir de là pour chacune des portions device="".

Astuce

Si vous ne savez pas quel appareil suivre, exécutez la commande suivante :

sudo route

La sortie ressemblera à quelque chose comme ceci :

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

Regardez dans la colonne Destination pour la ligne avec la valeur de default. Suivez cette ligne jusqu'à la colonne Iface. L'appareil listé là est celui que vous voulez utiliser - dans cet exemple, eth0.

Une fois que vous êtes satisfait de vos sélections, cliquez sur le bouton bleu Apply dans le coin supérieur droit de l'écran pour enregistrer les paramètres.

Total Net I/O

Cela suit la quantité totale de données que vous avez envoyées et reçues. Vous pourriez le trouver utile à surveiller si, par exemple, votre FAI vous limite à une certaine quantité de données par mois.

La configuration est identique à la boîte Network Usage ci-dessus, suivez donc simplement ces instructions pour cette boîte également.

Disk Space Used

Cela garde un œil sur la saturation de votre disque de système d'exploitation, afin que vous sachiez quand il est temps de nettoyer (et si vos données de chaîne vivent sur le même disque, il est temps d'élaguer Geth ou Nethermind).

Les étapes sont les mêmes que pour la boîte SSD Latency ci-dessus, suivez donc simplement ces instructions pour cette boîte également. Pour rappel, vous voulez le disque qui héberge la partition qui a / dans la colonne MOUNTPOINT pour celui-ci car ce sera votre disque de système d'exploitation. Remplissez ceci dans le premier champ de requête.

En option, vous pouvez également suivre l'espace libre d'un deuxième disque sur votre système. Ceci est destiné aux personnes qui conservent leur système d'exploitation et leurs données de chaîne sur des disques séparés. Configurez cela en suivant le même processus, mais au lieu de regarder quelle partition a / dans la colonne MOUNTPOINT, vous voulez chercher celle qui a le point de montage de votre deuxième disque. Mettez à jour le deuxième champ de requête avec le disque associé à cette partition.

Disk Temp

Cela suit la température actuelle de votre disque de système d'exploitation. Les étapes sont les mêmes que pour la boîte CPU Temp ci-dessus, suivez donc simplement ces instructions pour cette boîte également, en substituant les valeurs de puce et de capteur du CPU par celles de votre disque de système d'exploitation. Remplissez ces valeurs dans le premier champ de requête.

En option, vous pouvez également suivre la température actuelle d'un deuxième disque sur votre système. Configurez cela en suivant le même processus, en substituant les valeurs de puce et de capteur par celles de votre deuxième disque. Remplissez ces valeurs dans le deuxième champ de requête.

Personnalisation du tableau de bord

Bien que le tableau de bord standard essaie de bien capturer tout ce que vous voudriez voir d'un coup d'œil, il est assez facile de personnaliser un tableau de bord Grafana comme vous le souhaitez. Vous pouvez ajouter de nouveaux graphiques, modifier l'apparence des graphiques, déplacer des éléments, et bien plus encore !

Jetez un œil à la page Tutoriels Grafana pour apprendre comment jouer avec et le configurer à votre guise.

Personnalisation de la pile de métriques

Les outils utilisés dans la pile de métriques Rocket Pool offrent un large éventail d'options de configuration au-delà de ce qui est inclus dans l'installation Rocket Pool par défaut. Cette section comprend des exemples de configuration pour différents cas d'utilisation.

En général, les options de configuration Grafana doivent être transmises en utilisant des variables d'environnement dans override/grafana.yml. Toute option de configuration peut être convertie en variable d'environnement en utilisant la syntaxe suivante :

GF_<SectionName>_<KeyName>

Paramètres SMTP Grafana pour l'envoi d'e-mails

Pour envoyer des e-mails depuis Grafana, par exemple pour les alertes ou pour inviter d'autres utilisateurs, les paramètres SMTP doivent être configurés dans la pile de métriques Rocket Pool. Voir la page Configuration SMTP Grafana pour référence.

Docker and Hybrid Mode
Native

Ouvrez ~/.rocketpool/override/grafana.yml dans un éditeur de texte. Ajoutez une section environment sous la ligne x-rp-comment: Add your customizations below this line, en remplaçant les valeurs ci-dessous par celles de votre fournisseur 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
Astuce

Si vous utilisez Gmail et que la vérification en deux étapes est activée, créez un mot de passe d'application pour ce service.

Après avoir effectué ces modifications, exécutez ce qui suit pour appliquer les modifications :

Docker and Hybrid Mode
Native
docker stop rocketpool_grafana

rocketpool service start

Pour tester les paramètres SMTP, allez dans le menu Alerting et cliquez sur Contact points.

Cliquez sur New contact point et sélectionnez Email comme type de point de contact. Entrez une adresse e-mail dans la section Addresses et cliquez sur Test.

Vérifiez que l'e-mail de test a été reçu. Cliquez sur Save contact point* lorsque vous avez terminé.