Configuration du monitoring des nœuds
Configuration d'une infrastructure pour surveiller les performances de votre nœud.
Introduction
Ce tutoriel suppose que vous avez Ubuntu 18.04 ou 20.04 en cours d'exécution sur votre nœud. Une version Mac OS X de ce tutoriel viendra plus tard.
Ce tutoriel montrera comment configurer une infrastructure pour surveiller une instance d'AvalancheGo. Nous utiliserons :
Prometheus pour collecter et stocker des données.
Node_exporter pour obtenir des informations sur la machine.
AvalancheGo metrics API pour obtenir des informations sur le nœud.
Grafana pour visualiser les données sur un tableau de bord.
Conditions préalables :
Un nœud AvalancheGo en cours d'exécution.
Shell access à la mahcine exécutant le nœud.
Privilèges d'administrateur sur la machine.
Mise en garde : Sécurité
Le système décrit ici ne doit pas être ouvert à l'Internet public. Ni Prometheus ni Grafana, comme illustré ici, ne sont protégés contre les accès non autorisés. Assurez-vous que les deux ne sont accessibles que via un proxy sécurisé, un réseau local ou un VPN. Cette configuration dépasse le cadre de ce didacticiel, mais soyez prudent. De mauvaises pratiques de sécurité pourraient amener les attaquants à prendre le contrôle de votre nœud! Il est de votre responsabilité de suivre les bonnes pratiques de sécurité.
Contributions
La base du tableau de bord Grafana a été tirée des gars de ColmenaLabs, qui n'est apparemment plus disponible. Si vous avez des idées et des suggestions pour améliorer ce didacticiel, veuillez le dire, publier un problème ou faire une pull request sur Github.
Configurer Prometheus
Nous devons d'abord ajouter un compte d'utilisateur système et créer des répertoires (vous aurez besoin des informations d'identification du superutilisateur) :
Ensuite, obtenez le lien vers la dernière version de Prometheus sur la page de téléchargement (assurez-vous de sélectionner l'architecture de processeur appropriée) et utilisez wget
pour le télécharger, et tar
pour décompresser l'archive :
Ensuite, nous devons déplacer les binaires, définir la propriété et déplacer les fichiers de configuration vers les emplacements appropriés :
/etc/prometheus
est utilisé pour la configuration et /var/lib/prometheus
pour les données.
Configurons Prometheus pour qu'il s'exécute en tant que service système. Faites :
Et entrez la configuration suivante :
Enregistrez le fichier. Nous pouvons maintenant exécuter Prometheus en tant que service système :
Prometheus devrait maintenant fonctionner. Pour nous en assurer, nous pouvons vérifier avec :
Ce qui devrait produire quelque chose comme :
Vous pouvez également vérifier l'interface Web de Prometheus, disponible sur http://your-node-host-ip:9090/
Vous devrez peut-être faire sudo ufw allow 9090/tcp
si le pare-feu est activé).
Installez Grafana
Pour configurer les référentiels de Grafana avec Ubuntu :
Pour installer Grafana :
Pour le configurer en tant que service :
Pour vous assurer qu'il fonctionne correctement :
Cela devrait monter Grafan comme actif. Grafana devrait maintenant être disponible sur http://your-node-host-ip:3000/
Connectez-vous avec le nom d'utilisateur / mot de passe admin / admin et configurez un nouveau mot de passe sécurisé. ** Nous devons maintenant connecter Grafana à notre source de données, Prometheus.
Vous devrez peut-être faire sudo ufw allow 3000/tcp
si le pare-feu est activé.
Sur l'interface Web de Grafana :
Accédez à Configuration dans le menu de gauche et sélectionnez "Data Sources".
Cliquez sur "Add Data Source".
Sélectionnez Prometheus.
Dans le formulaire, entrez le nom (Prometheus fera l'affaire) et
http://localhost:9090
comme URL.Cliquez sur
Save & Test
Vérifiez que le message vert suivant apparait "Data source is working".
Configurer node_exporter
En plus des métriques d'AvalancheGo, mettons en place la surveillance de la machine elle-même, afin que nous puissions vérifier l'utilisation du processeur, de la mémoire, du réseau et du disque et être au courant de toute anomalie. Pour cela, nous utiliserons node_exporter, un plugin Prometheus.
Obtenez la dernière version avec:
Changez linux-amd64 si vous avez une architecture différente (RaspberryPi est linux-arm64, par exemple).
Décompressez et déplacez l'exécutable :
Ensuite, nous ajoutons node_exporter en tant que service. Faites :
Et remplissez le formulaire avec :
Cela configure node_exporter pour collecter diverses données que nous pourrions trouver intéressantes. Démarrez le service et activez-le au démarrage :
Nous sommes maintenant prêts à tout lier ensemble.
Configurer les tâches AvalancheGo et node_exporter Prometheus
Assurez-vous que votre nœud AvalancheGo fonctionne avec les arguments de ligne de commande appropriés. L'API de métriques doit être activée (par défaut, c'est le cas). Si vous utilisez l'argument CLI --http-host
pour effectuer des appels d'API depuis l'extérieur de la machine hôte, notez l'adresse à laquelle les API écoutent.
Nous devons maintenant définir un emploi Prometheus approprié. Modifions la configuration de Prometheus:
Faites :
Et ajouter :
L'indentation est importante. Assurez-vous que -job_name est aligné sur l'entrée existante -job_name et que les autres lignes sont également correctement mises en retrait. Assurez-vous d'utiliser la bonne adresse IP d'hôte, ou localhost, en fonction de la configuration de votre nœud.
Enregistrez le fichier de configuration et redémarrez Prometheus :
Vérifiez l'interface Web de Prometheus sur http://your-node-host-ip:9090/targets
. Vous devriez voir trois cibles activées :
Prometheus
Avalanchego
Avalanchego-machine
Ouvrez Grafana; vous pouvez maintenant créer un tableau de bord en utilisant l'une de ces sources. Vous pouvez également utiliser les tableaux de bord préconfigurés [ici].
Pour importer le tableau de bord préconfiguré :
Ouvrez l'interface Web de Grafana.
Cliquez sur + dans la barre d'outils de gauche.
Sélectionnez Import JSON, puis téléchargez le fichier JSON.
C'est tout ! Vous pouvez maintenant vous émerveiller de tout ce que fait votre nœud. Woohoo!
Dernière mise à jour