/ Zabbix

Zabbix : Utiliser les Trappers pour faire des Graphs customs

Pour ce tutoriel, nous considérons les choses suivantes comme acquises :

¤ Vous avez un serveur Zabbix 3 fonctionnel (sinon, allez voir ICI).

¤ Le serveur sur lequel vous exécutez les scripts communique bien avec le serveur Zabbix.

[?] La version du serveur Zabbix utilisé pour ce tutoriel est la version : zabbix_server (Zabbix) 3.0.0beta2 Revision 58097 29 January 2016 (compilé depuis le tuto de Punkeel, sur un serveur Ubuntu 15.04.

[?] La version de l'agent Zabbix est : Zabbix agent v2.2.7 (Installé avec apt sur un serveur Ubuntu 15.04 )

Bonswar !!

Vous qui utilisez Zabbix, et qui, comme moi, en êtes tombés amoureux, voici mon premier tutoriel pour vous sur UnGeek !

Utiliser Zabbix pour monitorer des machines grâce à l'agent, c'est parfait et fonctionne plutôt bien. Mais comment faire si je veux faire des Graphs perso ?

Dans ce tutoriel, je vous propose la problématique suivante :

Comment puis-je avoir un Graph avec le nombre de joueurs de mes serveurs de jeu ?

L'une des réponse est : Grâce aux Trappers Zabbix.

1. Créer le Trapper

Tout d'abord, il nous faut un Trapper.
Un Trapper c'est une sorte de conteneur, où vous allez envoyer vos données.

Pour créer le Trapper, rendez-vous sur le panel Zabbix, Menu Configuration puis Hosts

Par ici

Le Trappeur doit être relié à un hôte. Pour ce tutoriel, je vais utiliser l’hôte Master2 ou est situé mon serveur de jeu (Un serveur CS:GO classique). Le serveur Zabbix est quand à lui sur le serveur "Master1".

Cliquez sur le lien Item correspondant au serveur hôte auquel vous souhaitez rattachez le Trapper.
Ici je choisis donc l'hôte Master2.

Une fois dans l'interface de gestion de l’hôte, cliquez sur le bouton Create Item en haut à gauche.

par ici !

Remplissez le formulaire.
par la !
1: Le nom "user friendly" du Trapper

2: Le type d'item (Ici, Zabbix Trapper)

3: la clé (key) du Trapper (elle sera utilisée pour l'envoi des données)

4: vérifiez que la case est bien cochée pour pouvoir activer notre Trapper

5: Validez en cliquant sur le bouton "Add"

6: Cueillir des cerises

Avec les listes déroulantes "Type of information" & "Data Type", vous pouvez définir le type de données que vous souhaitez stocker. Ici on utilise Numeric / Decimal, afin d'y stocker un nombre de joueur (de 0 vers l'infini, et on ne peux pas avoir de joueurs à virgule [ même unijambiste, un joueur vaut 1 ;) ] )

Vous pouvez aussi utiliser un Trapper pour sauvegarder des données non numériques. Il vous sera bien entendu impossible de réaliser un Graph à partir de ces données, mais ça peut toujours être utile !

Une fois ajouté, vous devriez avoir une ligne dans la liste d'item qui ressemble à celle-ci :

Imgur

2. Utiliser le Trapper

Bon, on a notre trapper, il faut maintenant l'alimenter.

On passe donc côté serveur, avec une belle console.

Lorsque vous installez l'agent, vous installez une commande qui est zabbix_sender
Cette commande va nous permettre d'envoyer les informations depuis l’hôte vers le serveur Zabbix.

Pour cela, voici la commande :

zabbix_sender -s {hote_trapper} -z {ip_du_serveur_Zabbix} -k {clé} -o {valeur}

On la décortique :

  • -s {hote_trapper} : le nom de l’hôte auquels on a rattaché le Trapper un peu plus haut. Attention, vous devez utiliser le nom Host name et non pas le Visible Name.
  • -z {ip_du_serveur_Zabbix} : l'ip du serveur Zabbix vers lequel on va envoyer les informations
  • -k {clé} : la clé (key) que vous avez renseigné plus haut dans le formulaire
  • -o {valeur} : la valeur à retourner

Lorsque vous allez exécuter cette commande, le serveur Zabbix va enregistrer la valeur, ainsi que la date & l'heure à laquelle il l'a reçue, ce qui va nous permettre de faire des graphiques un peu plus tard.

Pour le tutoriel, la commande ressemble à ceci :

Imgur

Une fois que je valide la commande, l'information apparait dans l'onglet Monitioring puis Lastest Data

Imgur

et voila, on peux désormais envoyer des données personnalisées au serveur Zabbix.

/!\ Zabbix gére un cache au niveau de ses objets, et notamment des Items. Si lorsque vous exécutez la commande, en retour vous obtenez :

Info from server: "Processed 0 Failed 1 Total 1 Seconds spent 0.000257"
sent: 1; skipped: 0; total: 1

Patientez une minute ou deux, et ré-essayez. Si cela ne fonctionne toujours pas, vérifiez la configuration faite aux étapes précédentes.

Un petit exemple d'utilisation :

Imgur

J'utilise un script exécuté toutes les minutes par Cron qui récupère les informations de mon serveur via une fonction php (mais vous faites comme vous voulez). L'avantage d'utiliser ce fichier est qu'en un seul fichier, je peux configurer plusieurs envois d'informations vers différents Trappers.

3. Du Trapper vers le graphique

Soit, on a un beau Trapper tout neuf, il stocke nos données. Mais comment l'afficher sous forme de graph ?

Vous avez plusieurs moyens :

Avec un Screen

Rendez-vous dans l'onglet Monitoring puis Screens et appuyez sur le bouton Create screen.

Imgur

Créez un screen de la taille désirée.
Cliquez sur Constructor (Flèche bleue sur l'image précédente).
Vous arrivez dans l'interface de construction du screen. Cliquez sur le lien Change.
Une nouvelle interface apparait : remplissez le formulaire:

Imgur

  • Ressource : Simple Graph
  • Item : Cliquez sur select, une popup s'ouvre. En haut à gauche, sélectionnez l’hôte auquel vous avez rattaché le Trapper, puis sélectionnez le Trapper en cliquant sur son nom.

Et voila vous avez un beau screen avec la courbe des données que vous fournissez au Trapper.

Avec un Graph

Rendez-vous sur le panel Zabbix, Menu Configuration > Hosts, puis cliquez sur le lien Graph de l’hôte auxquels vous avez rattaché le Trapper.

Imgur

Cliquez sur le bouton Create Graph en haut à gauche

Imgur

Donnez un nom à votre graphe, puis cliquez sur le lien add dans la zone Items (en bas).
Une popup s'ouvre. En haut à gauche, sélectionnez l’hôte auxquels vous avez rattaché le Trapper, puis sélectionnez le Trapper en cliquant sur son nom.

Imgur

Validez et voilà, vous avez un Graph avec la courbe des données que vous fournissez au Trapper.
L'avantage du graph, c'est que si vous avez plusieurs Trappers, vous pouvez les afficher les un avec les autres pour une lecture facile.


Et voila, un premier tutoriel simple, mais qui m'est aujourd'hui assez utile, je souhaitais donc vous le partager. Have FUN !