LogicielsServicesWeb

Grafana : Superviser tous vos serveurs et périphériques avec classe

Aujourd’hui on va parler un peu supervision. C’est génial d’avoir des dizaines de serveurs, de faire du clustering, d’avoir des périphériques tels que des routeurs, switchs, onduleurs ou autres joyeusetés. Mais s’il n’y a aucune supervision sur tous ces appareils, cela peut vite devenir catastrophique sans que l’on en s’aperçoive.

Alors des systèmes de supervision, il en existe des dizaines, payant ou gratuit, bon ou moins bon. On va ici s’intéresser à Grafana qui est celui que j’ai récemment mis en place.

Avec Grafana, vous allez pouvoir monter de magnifiques Dashboard qui plairons à coup sûr à votre direction. Et ce qui plaira encore plus à votre direction, c’est que Grafana est Open-Source.

Mon responsable quand il voit mon dashboard

Vous en doutez ? Regarder bien ces quelques Dashboard :

Du Dashboard en veux-tu en voilà !

Dashboard Lab

Dans l’exemple ci-dessous un Dashboard qui récupère les infos d’un LAB ESXi, avec les remontées d’info des NAS Synology et de l’onduleur.

Dashboard Synology

Récupération des infos de serveur NAS Synology via SNMP.

Dashboard Hyper-V

Récupération des informations à l’aide de telegraf.

Dashboard Zimbra

Alors convaincu ? Si ce n’est pas encore le cas, une petite vidéo avec toutes les nouveautés de Grafana version 5 :

Et si on installait Grafana ?

Grafana peut être installé sur de nombreuse plateforme. De Linux à Windows en passant par Mac, Docker ou Arm.

Cela reste assez facile à installer, notamment si vous choisissez l’option Docker. Par contre la configuration des Dashboard peut être un peu plus compliquée en fonction de ce que vous souhaitez récupérer.

Je vais ici vous décomposer les étapes que j’ai effectuées pour installer mon serveur Grafana sous Linux (Ubuntu Server)

Installation du serveur Linux

Bon, je ne vais pas détailler l’installation du serveur Linux, ça reste assez basique. Pensez juste à mettre à jour le serveur après l’installation avec les commandes suivantes :

sudo apt-get update
sudo apt-get upgrade

On passe dans le dur ensuite avec l’installation de toute la panoplie nécessaire au bon fonctionnement de Grafana.

InfluxDB

InfluxDB est une base de données Time Series (TSDB) dont les principaux avantages sont les performances, la durée de rétention importante et la scalabilité (enfin ça c’est si tu mets la main au porte-monnaie).

Pour être sûr de télécharger et installer la dernière version, n’hésitez pas à faire un tour sur le site InfluxData.

Installation InfluxDB

Exécuter les commandes suivantes pour le téléchargement et l’installation d’InfluxDB.

cd /tmp
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.6.0_amd64.deb
sudo dpkg -i influxdb_1.6.0_amd64.deb

Puis démarrer le service :

sudo systemctl start influxd

Configuration InfluxDB

Nous pouvons créer une base de données pour pouvoir pousser les données qui seront remontées par Telegraf :

influx -execute "CREATE DATABASE influx_db_telegraf"

Créons l’utilisateur influx_user :

influx -execute "CREATE USER telegraf_user WITH PASSWORD 'telegraf_password'"
influx -execute "GRANT ALL ON influx_db_telegraf TO telegraf_user"

Il est possible de créer une politique de rétention pour déterminer la durée de conservation des données (52 semaines dans l’exemple ci-dessous) :

influx -execute "CREATE RETENTION POLICY "a_year" ON "influx_db_telegraf" DURATION 52w REPLICATION 1 DEFAULT"

Telegraf

Telegraf est un agent qui collecte des métriques. Cet agent sait récupérer des métriques sur le système sur lequel il tourne. Il est capable de récupérer les métriques via deux modes :

  • push : la métrique est poussée dans Telegraf
  • pull : Telegraf récupère la métrique en interrogeant le composant qui l’expose (le mode le plus utilisé)

Ces métriques seront insérées au fil de l’eau dans InfluxDB.

Par la suite, vous pouvez installer Telegraf sur chacun des systèmes que vous souhaitez superviser, qu’il tourne sous Linux, Windows ou macOS…

Télécharger Telegraf

Installation de Telegraf

Nous installerons ici Telegraf sur notre serveur Ubuntu.

cd /tmp
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.7.1-1_amd64.deb
sudo dpkg -i telegraf_1.7.1-1_amd64.deb

puis on démarre le service

sudo systemctl start telegraf

Configuration de Telegraf

Il est possible de configurer énormément de paramètres sur Telegraf, mais il fonctionne aussi très bien sorti du carton. Puisque nous avons créé une base de données spécifique pour Telegraf sur Influx, autant l’utiliser !

Éditer le fichier /etc/telegraf/telegraf.conf pour y ajouter l’adresse du serveur, mais surtout la base de données à utiliser et  les identifiants.

 sudo vi telegraf.conf

Dans mon cas, telegraf est installé sur le même serveur que le serveur de base de données, bien entendu, si c’est sur un autre serveur, il convient d’ajouter également l’url de votre serveur influx.

database = "influx_db_telegraf"
username = "telegraf_user"
password = "telegraf_password"

Redémarrer ensuite le service telegraf.

sudo systemctl restart telegraf

Chronograf

Chronograf n’est pas indispensable, mais il vous permettra de visualiser plus facilement les data récupérées par InfluxDB et de gérer vos bases de données.

Télécharger Chronograf

Installation de Chronograf

Comme pour les autres applications, vérifiez bien que vous téléchargez la dernière version de Chronograf.

cd /tmp
wget https://dl.influxdata.com/chronograf/releases/chronograf_1.3.3.0_amd64.deb
sudo dpkg -i chronograf_1.3.3.0_amd64.deb

Démarrer ensuite le service

sudo systemctl enable chronograf
sudo systemctl start chronograf

Puis vérifier l’installation de Chronograf en visitant l’adresse : http://votre_server_chronograf:8888

Configuration de Chronograf

Depuis Chronograf, vous pouvez gérer vos bases de données et vérifier que votre politique de rétention a bien été créé sur votre base de données influx.

Vous pouvez même jouer un peu à faire un Dashboard sur Chronograf. Cependant, on ne va pas perdre de temps avec ça puisque nous utiliserons Grafana pour ça.

Grafana

On y est !

Grafana est un outil supervision simple et élégant, permettant de s’intégrer facilement à une TSDB, ici InfluxDB. Grafana permet de créer des dashboards avec les métriques brutes ou agrégées provenant d’InfluxDB ou d’ailleurs et permet de définir des seuils d’alertes et les actions associées.

Télécharger Grafana

Installation de Grafana

Attention de changer l’url de grafana par la dernière version (vous pouvez vérifier la dernière version ici).

cd /tmp
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.2.1_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.2.1_amd64.deb sudo service grafana-server start sudo update-rc.d grafana-server defaults 95 10

Par défaut, l’interface web de Grafana est publiée sur le port TCP 3000 Vous pouvez le changer dans la configuration de Grafana.

Ouvrez votre navigateur et allez sur http://ip-de-votre-serveur:3000 pour confirmer que ça fonctionne bien et que vous pouvez accéder à Grafana.

Le nom d’utilisateur et le mot de passe sont « admin » par défaut. Vous serez invité à changer le mot de passe dès la première connexion.

Configuration de Grafana

Vous voilà maintenant sur Grafana, pour commencer à jouer avec, il va falloir ajouter des sources de données. Cliquez sur « Configuration », puis « Data Sources ».

Dans notre cas, nous ajouterons notre base de données Telegraf qui est hébergée sur InfluxDB. Cliquez sur « Add data source ». Puis entrer les informations nécessaires.

Grafana est compatible avec de nombreux autres types de sources, vous pouvez donc facilement vous amuser à créer des dashboards pour un peu tout et n’importe quoi.

Maintenant que vous avez ajouté votre première source de données, vous pouvez commencer à ajouter des « Panel » à votre « Dashboard ».

En fonction de ce que vous souhaitez afficher sur votre Dashboard, sélectionner le Panel adéquat. Vous devrez ensuite créer une requête pour récupérer les données que vous souhaitez afficher dans votre dashboard.

Voici un exemple ici avec l’utilisation du CPU sur le serveur Grafana :

Ou encore, l’espace disque restant sur le serveur Grafana :

Avec Grafana, vous pouvez tout customiser ou presque. Par exemple ici, on change la couleur en fonction de l’espace disque restant sur notre serveur.

Ensuite, on peut mettre en forme le Dashboard très facilement.

Je ne rentrerai pas beaucoup plus dans les détails, cet article est déjà bien long ! Cependant, je reviendrais peut-être dans d’autres articles sur des parties un peu plus spécifiques, comme la récupération des métriques Synology via SNMP. Sachez qu’il existe de nombreux dashboard disponibles gratuitement grâce à la communauté grafana et de nombreux scripts de récupération de métrique sur Github également.

Sources :

Mikaël GUILLERM

Administrateur Système et Autoentrepreneur depuis 2009 pour la société zerobug. Je partage mes connaissances, problèmes et solutions à travers articles ou tweets !

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page