Comment installer et configurer Grafana pour tracer de superbes graphes à partir de Zabbix sur CentOS 7

introduction

Zabbix est un excellent outil de surveillance qui collecte des données sur des serveurs, des machines virtuelles et d’autres types de périphériques réseau, afin que vous puissiez les analyser en fonction de tendances ou de problèmes. Il comporte des notifications riches en fonctionnalités sur les problèmes émergents, mais les outils intégrés pour l’analyse et la visualisation des données ne sont pas faciles à utiliser. Vous pouvez combiner des graphiques dans des tableaux de bord, mais vous devez d’abord les créer. Il n’existe pratiquement aucun moyen simple de créer des graphiques affichant des données en temps réel. En outre, il n’existe aucun moyen de collecter les données de différents hôtes sur un même graphique. Bien que la situation s’améliore à chaque nouvelle version, elle est loin d’être idéale.

Grafana est une bonne alternative aux tableaux de bord de Zabbix. Il vous permet de créer des graphiques et des tableaux de bord basés sur les données de divers systèmes de surveillance. Il est spécialisé dans l’affichage et l’analyse de ces données. Il est léger, facile à installer et beau.

Dans ce didacticiel, vous allez installer Grafana et le configurer pour afficher les données de Zabbix. Vous apprendrez également à composer votre propre tableau de bord personnalisé qui surveille l’utilisation du processeur et des fichiers.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

Étape 1 - Installation de Grafana

Avant de pouvoir utiliser Grafana, nous devons l’installer. Nous utiliserons le même serveur que nous avons utilisé pour le serveur Zabbix. Connectez-vous à votre serveur Zabbix avec votre utilisateur non root:

ssh @

Grafana n’est pas disponible par défaut via le gestionnaire de paquets, nous allons donc configurer le fichier de configuration du référentiel. Tout d’abord, créez un nouveau fichier de référentiel pour Grafana:

sudo vi /etc/yum.repos.d/grafana.repo

Collez les données de configuration suivantes dans le fichier:

/etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

Puis enregistrez et quittez l’éditeur de texte et exécutez la commande suivante pour installer Grafana:

sudo yum install grafana

Au cours du processus d’installation, il vous sera demandé d’importer une clé GPG. Confirmez que vous souhaitez importer cette clé pour que l’installation puisse continuer.

Une fois l’installation terminée, démarrez le service Grafana:

sudo systemctl daemon-reload
sudo systemctl start grafana-server

Ensuite, vérifiez si le service Grafana fonctionne correctement:

sudo systemctl status grafana-server

Vous verrez l’état suivant:

Output● grafana-server.service - Starts and stops a single grafana instance on this system
  Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)

    Docs: http://docs.grafana.org
Main PID: 16639 (grafana-server)
 ...

Enfin, activez le service pour qu’il démarre au démarrage:

sudo systemctl enable  grafana-server

Grafana est en cours d’exécution, installons donc le composant qui permet à Grafana d’extraire des données de Zabbix.

Étape 2 - Installation du plug-in Zabbix pour Grafana

Vous pouvez étendre les fonctionnalités de Grafana en installant des plugins. Vous pouvez explorer les plugins disponibles here. Il existe trois types de plugins:

  • * Panneaux *: nouveaux blocs utilisables sur le tableau de bord, tels que les camemberts ou les histogrammes.

  • * Sources de données *: nouveaux espaces de stockage pour vos données de série chronologique, vous permettant ainsi d’extraire des données d’autres sources.

  • * Apps *: plugins complexes qui regroupent des sources de données et des panneaux dans un même package.

Nous utiliserons le plug-in Zabbix app, qui comprend une source de données Zabbix, un panneau de déclencheurs, un tableau de bord du serveur Zabbix et un modèle pour afficher les données.

Le moyen le plus simple d’installer des plugins est d’utiliser l’outil CLI + grafana-cli + qui est fourni avec Grafana. Exécutez la commande suivante pour installer le plugin Zabbix App:

sudo grafana-cli plugins install alexanderzobnin-zabbix-app

Vous verrez la sortie suivante, indiquant que le plugin a été installé:

Output✔ Installed alexanderzobnin-zabbix-app successfully

Chaque fois que vous ajoutez ou modifiez des plugins, vous devez redémarrer + grafana-server + pour que les modifications prennent effet.

sudo systemctl restart grafana-server

Une fois le plug-in installé, vous pouvez vous connecter à Grafana et le configurer pour pouvoir parler à Zabbix.

Étape 3 - Configuration du plugin Zabbix

Connectez-vous à l’interface Web de Grafana en accédant à l’adresse + http: //: 3000 +.

Les identifiants de connexion par défaut sont + / +. Vous pouvez changer votre mot de passe sur la page * Profil * une fois que vous êtes connecté. Lorsque vous vous connecterez, vous serez accueilli par le tableau de bord * Accueil *.

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/uPwU0Li.png [Tableau de bord personnel]

Accédez au menu principal de Grafana en cliquant sur le logo Grafana dans le coin supérieur gauche de l’interface utilisateur. Ensuite, sélectionnez * Plugins. * Puis sélectionnez l’onglet * Applications *. Cliquez ensuite sur l’application Zabbix et activez-la en appuyant sur le bouton * Activer *.

Vous pouvez maintenant ajouter une nouvelle source de données. Sélectionnez à nouveau le logo Grafana et accédez à * Sources de données. * Cliquez ensuite sur le bouton * Ajouter une source de données *. Vous verrez la page de configuration pour la source de données:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/69rHGUx.png [Ajouter une source de données]

Configurez la source de données comme suit:

  • Entrez un nom pour cette nouvelle source de données dans le champ * Nom *.

  • Cochez l’option * Par défaut * pour que cette source de données soit présélectionnée dans les nouveaux panneaux que vous créez.

  • Sélectionnez * Zabbix * dans la liste déroulante * Type *.

  • Renseignez le champ * Url * avec le chemin complet de l’API Zabbix, qui sera + http: /// zabbix / api_jsonrpc.php +.

  • Remplissez les champs * Nom d’utilisateur * et * Mot de passe * avec le nom d’utilisateur et le mot de passe de Zabbix. Le nom d’utilisateur par défaut est «» et le mot de passe par défaut est «».

  • Activer l’option * Tendances *; cela augmentera les performances de Grafana lors de l’affichage de longues périodes.

Vous pouvez laisser les autres options à leurs valeurs par défaut.

Cliquez sur le bouton * Ajouter * pour tester et enregistrer la configuration. Vous verrez un message de réussite ressemblant à ceci:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/Meq7eZv.png [Test réussi de la connexion à Zabbix]

Si vous ne voyez pas ce message, vérifiez vos informations d’identification et testez à nouveau.

Regardons maintenant le tableau de bord Zabbix fourni avec le plugin. Sélectionnez * Tableau de bord du serveur Zabbix * dans la liste déroulante en haut de l’écran. Lorsque vous le sélectionnez, le tableau de bord affiche des informations sur votre serveur Zabbix:

image: http: //skitch.bphogan.com/2016-11-03_4h9cn31lu8vn82s_Grafana_-_Zabbix_Server_Dashboard.png [Tableau de bord du serveur Zabbix]

Ce tableau de bord est assez informatif, mais vous pouvez créer votre propre tableau de bord personnalisé à partir de zéro.

Étape 4 - Création d’un tableau de bord Zabbix personnalisé

Créons un tableau de bord pour Zabbix qui indique l’utilisation du processeur et les informations du système de fichiers en temps réel.

Ouvrez la liste déroulante en haut de l’écran et cliquez sur le bouton * Créer nouveau *. Un nouveau tableau de bord vide sera créé.

Chaque tableau de bord est constitué de lignes contenant des blocs. Lorsque vous créez un nouveau tableau de bord, vous obtenez automatiquement une ligne. Cliquez sur le menu vert à gauche de la rangée pour accéder au menu d’action de la rangée. Ici, vous pouvez ajouter de nouveaux panneaux, définir la hauteur de la ligne, le déplacer, le réduire ou le supprimer.

Nous allons d’abord créer un graphique qui affiche l’utilisation du processeur par notre serveur Zabbix. Sélectionnez l’élément * Ajouter un panneau *, puis cliquez sur * Graphique * pour insérer un nouveau graphique dans la ligne.

Vous serez accueilli par un formulaire comportant plusieurs onglets, avec l’onglet * Métriques * sélectionné. Depuis que nous avons défini notre source de données Zabbix comme base par défaut, une nouvelle requête a été ajoutée pour vous. Il vous suffit de spécifier les options suivantes:

  • Définissez * Host Group * sur ++.

  • Définissez * Host * sur ++.

  • Définissez * Application * sur ++.

  • Définissez * Item * sur ++.

Vous verrez la charge actuelle du processeur sur le graphique.

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/h3TY7qh.png [Options de métrique]

Accédez ensuite à l’onglet * Général * et définissez le champ * Titre * sur + Processor load + et définissez l’option * Span * sur + 6 +. Une ligne peut contenir jusqu’à 12 blocs. Par conséquent, si vous définissez cette valeur sur 6, le panneau occupe la moitié de l’écran.

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/JjDiO8Z.png [Options générales du graphique]

Maintenant, vous pouvez cliquer sur * Retour au tableau de bord * pour voir le résultat:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/UJCc6Wm.png [Tableau de bord]

Ajoutons un autre graphique. Pour ce faire, vous pouvez répéter les étapes précédentes ou dupliquer le graphique existant. Pour dupliquer le graphique existant, sélectionnez le titre du panneau, puis cliquez sur * Dupliquer *. Sélectionnez ensuite le titre du nouveau graphique et sélectionnez l’option * Modifier *. Appliquez ensuite les paramètres suivants:

  • Remplacez * Title * par ++.

  • Sélectionnez l’onglet * Metrics * et changez le champ * Item * en ++.

Vous pouvez utiliser des modèles d’expression régulière pour des noms d’hôte ou de métrique. Veillez simplement à envelopper le motif dans des barres obliques (+ / +).

Vous pouvez également afficher des statistiques récapitulatives. Sélectionnez l’onglet * Légende * et vous verrez certaines options et valeurs que vous pouvez sélectionner.

  • Sous * Options *, cochez * As table * et * To the right *.

  • Sous * Values ​​*, sélectionnez * Min *, * Max *, * Avg * et * Actuel *.

Maintenant, cliquez sur * Retour au tableau de bord * pour voir le résultat, qui ressemblera à ceci:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/AlI2UKI.png [Tableau de bord]

Ensuite, ajoutez un panneau * Singlestat * pour afficher une valeur unique pour une métrique particulière. Créez une nouvelle ligne en cliquant sur le bouton * Ajouter une ligne *, puis sélectionnez le menu de la ligne, choisissez * Ajouter un panneau * et sélectionnez l’élément * Singlestat *.

Définissez les options * Métriques * comme suit:

  • Définissez * Host Group * sur ++.

  • Définissez * Host * sur ++.

  • Définissez * Application * sur ++.

  • Définissez * Item * sur ++.

Ensuite, passez à l’onglet * Général * et définissez le champ * Titre * sur ++.

Puis passez à l’onglet * Options * et configurez ces options:

  • Activez l’option + Show + pour * Gauge *.

  • Définissez * Thresholds * sur ++. Cela affichera ces seuils sur la jauge.

  • Sélectionnez l’option + current + dans la liste déroulante * Valeur *.

La jauge ressemble maintenant à ceci:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/38ybcGT.png [Jauge]

Retournez au tableau de bord et appuyez sur + CTRL + S + pour le sauvegarder.

Voyons maintenant comment cette jauge réagit aux événements en temps réel. Pour ce faire, nous allons réduire manuellement l’espace libre sur le disque et voir ce que le tableau de bord affiche.

Connectez-vous à votre serveur Zabbix si vous n’êtes pas connecté:

ssh sammy@

Une fois connecté, déterminez l’espace libre disponible sur le système de fichiers. Vous pouvez le faire avec la commande + df +:

df -h

Vous verrez la sortie suivante:

OutputFilesystem      Size  Used Avail Use% Mounted on

devtmpfs        236M     0  236M   0% /dev
tmpfs           245M     0  245M   0% /dev/shm
tmpfs           245M  8.3M  237M   4% /run
tmpfs           245M     0  245M   0% /sys/fs/cgroup
tmpfs            49M     0   49M   0% /run/user/0

Dans ce cas, il y a 18 Go d’espace libre. La quantité d’espace libre sur votre serveur varie. Réduisez l’espace disponible sur la partition racine en dessous du seuil de 20% en utilisant la commande + fallocate + pour créer un gros fichier temporaire:

fallocate -l  /tmp/test.img

Définissez la taille du fichier en fonction de la quantité d’espace libre sur votre serveur.

Donnez ensuite quelques minutes à Zabbix pour mettre à jour ses données. Actualisez le tableau de bord et vous constaterez que la jauge a changé de couleur pour refléter le problème d’espace libre:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/cTfYrH7.png [Avertissement]

Enfin, montrons les déclencheurs Zabbix actifs sur le tableau de bord. Créez une nouvelle ligne, puis sélectionnez le menu de la ligne, sélectionnez * Ajouter un panneau *, puis choisissez l’élément * Déclencheurs Zabbix *.

Vous verrez le déclencheur actif vous avertir du manque d’espace libre sur le serveur.

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/vJtrBT6.png [Déclencheur d’espace libre]

Sélectionnez * Retour au tableau de bord * et enregistrez le tableau de bord avec + CTRL + S +. Votre tableau de bord va maintenant ressembler à ceci:

image: https: //assets.digitalocean.com/articles/grafana_zabbix_cent7/u63Higl.png [Le tableau de bord complété]

Vous pouvez maintenant utiliser ce tableau de bord simple pour obtenir un aperçu rapide de l’état actuel de votre serveur.

N’oubliez pas de supprimer le fichier temporaire que vous avez créé pour libérer de l’espace sur votre disque. Sur votre serveur Zabbix, lancez la commande:

rm /tmp/test.img

Cela supprimera le fichier + test.img +. Dans quelques minutes, le tableau de bord sera à nouveau mis à jour pour refléter les modifications apportées au système de fichiers.

Conclusion

Dans ce tutoriel, vous avez appris à installer et à configurer Grafana et vous avez créé un tableau de bord personnalisé avec des panneaux affichant les données de Zabbix. Vous pouvez afficher ces tableaux de bord sur des ordinateurs de bureau ou même sur de grands écrans pour permettre aux administrateurs de voir l’état de votre infrastructure informatique. Chaque panneau d’un tableau de bord peut afficher les données d’un serveur différent. Vous pouvez utiliser Grafana pour filtrer les données de nombreuses manières utiles. Il est difficile de décrire toutes les fonctionnalités de Grafana dans un seul tutoriel. Explorez, expérimentez et créez vos propres tableaux de bord.