Passer au contenu principal

Surveillance de Geth avec InfluxDB et Grafana

clientsnœuds
Intermédiaire
Mario Havel
13 janvier 2021
5 minutes de lecture minute read

Ce tutoriel vous aidera à mettre en place une surveillance de votre nœud Geth afin de mieux comprendre ses performances et identifier les problèmes potentiels.

Prérequis

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 l'intégrer dans le logiciel de visualisation des données. Plusieurs options sont disponibles :

Il existe également Geth Prometheus Exporter(opens in a new tab), une option préconfigurée avec InfluxDB et Grafana. Vous pouvez le configurer facilement en utilisant docker et Ethbian OS(opens in a new tab) pour RPi 4.

Dans ce tutoriel, nous allons configurer votre client Geth pour pousser des données sur InfluxDB afin de créer une base de données, et Grafana pour créer une visualisation graphique des données. Réaliser cela manuellement vous aidera à mieux comprendre le processus, à le modifier et à le déployer dans différents environnements.

Configuration de InfluxDB

Tout d'abord, téléchargeons et installons InfluxDB. Diverses options de téléchargement peuvent être trouvées sur la page des versions de Influxdata(opens in a new tab). Choisissez celles qui conviennent à votre environnement. Vous pouvez également l'installer depuis un dépôt(opens in a new tab). Par exemple dans la distribution basée sur Debian :

1curl -tlsv1.3 --proto =https -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add
2source /etc/lsb-release
3echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
4sudo apt update
5sudo apt install influxdb -y
6sudo systemctl enable influxdb
7sudo systemctl start influxdb
8sudo apt install influxdb-client

Après avoir installé InfluxDB avec succès, assurez-vous qu'il fonctionne en arrière-plan. Par défaut, il est accessible via localhost:8086. Avant d'utiliser le client influx, vous devez créer un nouvel utilisateur avec les privilèges d'administrateur. Cet utilisateur servira à la gestion de haut niveau, à la création de bases de données et d'utilisateurs.

1curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"

Maintenant, vous pouvez utiliser le client influx pour entrer InfluxDB shell(opens in a new tab) avec cet utilisateur.

1influx -username 'username' -password 'password'

En communiquant directement avec InfluxDB dans son invite de commande, vous pouvez créer une base de données et un utilisateur pour les métriques Geth.

1create database geth
2create user geth with password choosepassword

Vérifiez les entrées créées avec :

1show databases
2show users

Quitter l’invite de commande InfluxDB.

1exit

InfluxDB est en cours d'exécution et configuré pour stocker les métriques Geth.

Préparation de Geth

Après avoir configuré la base de données, nous devons activer la collecte des métriques dans Geth. Faites attention aux OPTIONS METRICS ET STATS dans geth --help. Plusieurs options peuvent y être trouvées. Dans ce cas, nous voulons que Geth envoie des données dans InfluxDB. La configuration de base spécifie le point de terminaison où InfluxDB est accessible ainsi que l'authentification pour la base de données.

1geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"

Ces options peuvent être ajoutées à une commande démarrant le client ou enregistrées dans le fichier de configuration.

Vous pouvez vérifier que Geth envoie les données avec succès, par exemple en listant les paramètres dans la base de données. Dans l'invite de commande InfluxDB :

1use geth
2show measurements

Configuration de Grafana

L'étape suivante est l'installation de Grafana qui interprétera les données graphiquement. Suivez le processus d'installation au regard de votre environnement dans la documentation de Grafana. Assurez-vous d'installer la version OSS si vous ne voulez pas le contraire. Exemple d'étapes d'installation pour les distributions Debian en utilisant le dépôt :

1curl -tlsv1.3 --proto =https -sL https://packages.grafana.com/gpg.key | sudo apt-key add -
2echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
3sudo apt update
4sudo apt install grafana
5sudo systemctl enable grafana-server
6sudo systemctl start grafana-server

Lorsque Grafana est en cours d'exécution, il devrait être accessible via 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é, changez 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 ».

Il n'y a pas encore de sources de données créées, cliquez sur « Add data source » pour en définir.

Pour cette configuration, sélectionnez « InfluxDB » et continuez.

La configuration des données sources est assez directe si vous utilisez des outils sur la même machine. Vous devez définir l'adresse InfluxDB et les détails pour accéder à la base de données. Reportez-vous à l'image ci-dessous.

Si la configuration est complète et que InfluxDB est joignable, cliquez sur « Save and test » et attendez que la confirmation apparaisse.

Grafana est maintenant configuré pour lire les données depuis InfluxDB. Maintenant, vous devez créer un tableau de bord qui les interpréter et les affichera. Les propriétés des tableaux de bord sont encodées en 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 ».

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 « Import page » sur Grafana. Après avoir enregistré le tableau de bord, il devrait ressembler à ceci :

Vous pouvez modifier vos tableaux de bord. Chaque panneau peut être modifié, déplacé, supprimé ou ajouté. Vous pouvez modifier vos configurations. C'est à vous ! Pour en savoir plus sur le fonctionnement des tableaux de bord, reportez-vous à la documentation de Grafana(opens in a new tab). Vous pourriez également être intéressé par Alerte(opens in a new tab). Cela vous permet de configurer des notifications d'alerte lorsque les paramètres atteignent certaines valeurs. Différents canaux de communication sont pris en charge.

Dernière modification: @nhsz(opens in a new tab), 15 août 2023

Ce tutoriel vous a été utile ?