Surveiller Geth avec InfluxDB et Grafana
Ce tutoriel vous aidera à configurer la surveillance de votre nœud Geth afin de mieux comprendre ses performances et d'identifier les problèmes potentiels.
Prérequis
- Vous devez déjà exécuter une instance de Geth.
- La plupart des étapes et des exemples sont destinés à un environnement Linux, des connaissances de base du terminal seront utiles.
- Découvrez cet aperçu vidéo de la suite de métriques de Geth : Surveiller une infrastructure Ethereum par Péter Szilágyi (opens in a new tab).
Pile de surveillance
Un client Ethereum collecte de nombreuses données qui peuvent être lues sous la forme d'une base de données chronologique. Pour faciliter la surveillance, vous pouvez les intégrer dans un logiciel de visualisation de données. Plusieurs options sont disponibles :
- Prometheus (opens in a new tab) (modèle pull)
- InfluxDB (opens in a new tab) (modèle push)
- Telegraf (opens in a new tab)
- Grafana (opens in a new tab)
- Datadog (opens in a new tab)
- Chronograf (opens in a new tab)
Il existe également Geth Prometheus Exporter (opens in a new tab), une option préconfigurée avec InfluxDB et Grafana.
Dans ce tutoriel, nous allons configurer votre client Geth pour qu'il pousse les données vers InfluxDB afin de créer une base de données, et vers Grafana pour créer une visualisation graphique des données. Le faire manuellement vous aidera à mieux comprendre le processus, à le modifier et à le déployer dans différents environnements.
Configuration d'InfluxDB
Tout d'abord, téléchargeons et installons InfluxDB. Diverses options de téléchargement sont disponibles sur la page des versions d'Influxdata (opens in a new tab). Choisissez celle qui convient à votre environnement. Vous pouvez également l'installer à partir d'un dépôt (opens in a new tab). Par exemple, dans une distribution basée sur Debian :
curl -tlsv1.3 --proto =https -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update
sudo apt install influxdb -y
sudo systemctl enable influxdb
sudo systemctl start influxdb
sudo apt install influxdb-client
Après avoir installé InfluxDB avec succès, assurez-vous qu'il s'exécute en arrière-plan. Par défaut, il est accessible à l'adresse localhost:8086.
Avant d'utiliser le client influx, vous devez créer un nouvel utilisateur avec des privilèges d'administrateur. Cet utilisateur servira à la gestion de haut niveau, à la création de bases de données et d'utilisateurs.
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"
Vous pouvez maintenant utiliser le client influx pour accéder au shell InfluxDB (opens in a new tab) avec cet utilisateur.
influx -username 'username' -password 'password'
En communiquant directement avec InfluxDB dans son shell, vous pouvez créer une base de données et un utilisateur pour les métriques de Geth.
create database geth
create user geth with password choosepassword
Vérifiez les entrées créées avec :
show databases
show users
Quittez le shell InfluxDB.
exit
InfluxDB est en cours d'exécution et configuré pour stocker les métriques de Geth.
Préparation de Geth
Après avoir configuré la base de données, nous devons activer la collecte de métriques dans Geth. Faites attention à METRICS AND STATS OPTIONS dans geth --help. Plusieurs options y sont disponibles, dans ce cas nous voulons que Geth pousse les données vers InfluxDB.
La configuration de base spécifie le point de terminaison où InfluxDB est accessible et l'authentification pour la base de données.
geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"
Ces indicateurs (flags) peuvent être ajoutés à une commande de démarrage du client ou enregistrés dans le fichier de configuration.
Vous pouvez vérifier que Geth pousse les données avec succès, par exemple en listant les métriques dans la base de données. Dans le shell InfluxDB :
use geth
show measurements
Configuration de Grafana
L'étape suivante consiste à installer Grafana, qui interprétera les données graphiquement. Suivez le processus d'installation pour votre environnement dans la documentation de Grafana. Assurez-vous d'installer la version OSS si vous ne souhaitez pas faire autrement. Exemple d'étapes d'installation pour les distributions Debian utilisant un dépôt :
curl -tlsv1.3 --proto =https -sL https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
Une fois que Grafana est en cours d'exécution, il devrait être accessible à l'adresse localhost:3000.
Utilisez votre navigateur préféré pour accéder à ce chemin, puis connectez-vous avec les identifiants par défaut (utilisateur : admin et mot de passe : admin). Lorsque vous y êtes invité, modifiez le mot de passe par défaut et enregistrez.
Vous serez redirigé vers la page d'accueil de Grafana. Tout d'abord, configurez vos données sources. Cliquez sur l'icône de configuration dans la barre de gauche et sélectionnez « Data sources » (Sources de données).
Aucune source de données n'a encore été créée, cliquez sur « Add data source » (Ajouter une source de données) pour en définir une.
Pour cette configuration, sélectionnez « InfluxDB » et continuez.
La configuration de la source de données est assez simple si vous exécutez les outils sur la même machine. Vous devez définir l'adresse InfluxDB et les détails d'accès à la base de données. Référez-vous à l'image ci-dessous.
Si tout est complet et qu'InfluxDB est accessible, cliquez sur « Save and test » (Enregistrer et tester) et attendez que la confirmation apparaisse.
Grafana est maintenant configuré pour lire les données d'InfluxDB. Vous devez maintenant créer un tableau de bord qui les interprétera et les affichera. Les propriétés des tableaux de bord sont encodées dans des fichiers JSON qui peuvent être créés par n'importe qui et facilement importés. Dans la barre de gauche, cliquez sur « Create and Import » (Créer et Importer).
Pour un tableau de bord de surveillance Geth, copiez l'ID de ce tableau de bord (opens in a new tab) et collez-le dans la page « Import » (Importer) de Grafana. Après avoir enregistré le tableau de bord, il devrait ressembler à ceci :
Vous pouvez modifier vos tableaux de bord. Chaque panneau peut être édité, déplacé, supprimé ou ajouté. Vous pouvez modifier vos configurations. C'est à vous de décider ! Pour en savoir plus sur le fonctionnement des tableaux de bord, consultez la documentation de Grafana (opens in a new tab). Vous pourriez également être intéressé par les Alertes (opens in a new tab). Cela vous permet de configurer des notifications d'alerte lorsque les métriques atteignent certaines valeurs. Divers canaux de communication sont pris en charge.







