Zabbix, un excellent logiciel de supervision réseau

Toujours dans le cadre de mon stage, je suis en train d'étudier et de mettre en place Zabbix.
Pour l'instant je suis dans la phase de tests. Dans quelques jours je mettrai en place cette solution au sein de VersusMind et enfin, d'ici quelques mois, je devrai le mettre en place au sein d'un département entier (plus de 100 lieux géographiques différents). J'ai donc décidé de vous faire découvrir ce superbe logiciel sur lequel je travaille depuis 2 semaines et sur lequel je pense encore y travailler (avec plaisir) plusieurs mois.

I. Présentation

Zabbix est un logiciel de monitoring réseau Opensource et multiplateforme créé en 2002 par un Letton, Alexei Vladishev. Il permet de surveiller le statut de divers services réseau, serveurs, postes de travail et autres matériels (routeurs, parefeu, imprimantes, etc.).

Ce que Zabbix peut surveiller :

  • Les protocoles : HTTP, SSH, FTP, IMAP, SMTP, etc.
  • Les ports : 21, 80, 1434, 10050, etc.
  • Les processus tournant sur une machine : apache2, sshd, etc.
  • Les ressources matérielles : mémoire vive, espace disque, CPU, température, etc.
  • Les sites web : temps de réponse, vitesse de transfert, etc.
  • L'intégrité des fichiers : /etc/passwd à été modifié, etc.
  • Analyse des logs

Comment Zabbix peut-il surveiller :
  • Des tests de connexion simples (ping, test de ports, etc.)
  • Interrogation d'un agent SNMP présent sur la machine à surveiller
  • Installation d'un agent Zabbix sur la machine à surveiller (agent disponible sur toutes les plateformes)

En résumé, le contrôle d'une machine fonctionne de cette façon :

On créé un objet, par exemple, l'objet température processeur.
Nous pouvons ensuite :
  • générer un graphique nous montrant l'évolution de la valeur de cet objet (ici la température du processeur tout au long de la journée)
  • créer un déclencheur (trigger) qui s'active si la valeur de l'objet rempli une certaine condition (par exemple, si la température dépasse 90°C).
Si ce trigger se déclenche, en plus de l'alerte sur le panel web, nous pouvons être averti par mail, SMS, messagerie instantanée (Jabber) ou bien exécuter un script sur la machine concernée.
Typiquement, si la température du processeur dépasse 100°C, je demande l'envoi d'un mail à la personne responsable puis j'exécute un script qui va arrêter la machine à distance.

II. Installation

Il y a plusieurs paquets à installer pour utiliser Zabbix :

  • zabbix-server : le serveur de supervision en lui même
  • zabbix-frontend-php : le panel web d'administration et de supervision de Zabbix
  • zabbix-agent : optionnel, il s'agit de l'agent interrogé par le serveur pour monitorer une machine

Ubuntu

Ces trois paquets sont présents dans les dépôts officiels d'Ubuntu.
Dans Intrepid Ibex, c'est l'avant dernière version stable de Zabbix qui est disponible (1.4). En revanche, pour Jaunty Jackalope, les dépôts contiennent la dernière version stable de Zabbix (1.6).

Debian

Les dépôts de la Debian Lenny contiennent eux aussi l'avant dernière version de Zabbix, la 1.4. Si vous voulez installer la dernière version, il vous faudra la compiler à partir des sources. Pour ma part, je l'ai fait en suivant ce tutoriel.

Durant l'installation du serveur (via les dépôts), il se peut que vous obteniez l'erreur suivante :
ERROR 2002 (HY000) : Can’t connect to local MySQL server through socket ’/var/run/mysqld/mysqld.sock’ (2)
Si c'est le cas, vérifiez que votre serveur mysql tourne toujours...

Une fois le frontend-php installé, il est accessible sur http://hostname/zabbix
login : admin
pass : si vous avez installé la version 1.4, rien, si vous avez la version 1.6, zabbix

Il est probable que vous obteniez cette erreur dans l'interface web :
Timezone for PHP is not set. Please set "date.timezone" option in php.ini
Dans ce cas, ajoutez cette ligne dans votre fichier /etc/php5/apache2/php.ini
date.timezone = "Europe/Paris"


III. Présentation

Mes screenshots ont été faits sur la version 1.4, je l'ai utilisé 1 semaine puis j'ai installé la version 1.6. il n'y a pas d'énormes changements au niveau de l'interface web, je conserve donc ces screenshots.
Note : Tous mes screenshots sont en anglais. Zabbix est très bien traduit, cependant je préfère utiliser la version anglaise car c'est plus simple pour suivre les tutos ou pour poster sur le forum officiel ;)


Partie supervision

Voici la page d'accueil de l'interface de supervision (dans la version 1.6, la page d'accueil est un tableau de bord qui récapitule les différentes évènements récents) :

Nous pouvons y voir les différents triggers (ou déclencheurs), autrement dit, les alertes des machines surveillées.

Onglet suivant, nous pouvons voir le contrôle d'un site Web (en l'occurrence ici le temps de réponse de ce site et la vitesse de téléchargement) :

Nous pouvons ensuite voir les différentes données recueillis par les objets, triés par type (disponibilité, intégrité, système de fichiers, logs, ...) :

L'onglet suivant nous indique les triggers déclenchés pour chaque hôte :

Voici une possibilité de Zabbix très appréciable : la possibilité de créer des cartes du réseau :


Malheureusement, Zabbix ne permet pas la création automatique de ce genre de map. Vous devrez entrer à la main les différents hôtes. Cependant, une fois que vos hôtes sont renseignés, ils sont actualisés en temps réel (par exemple, nous pouvons voir le nombre de problèmes) et cliquer sur l'hôte pour voir les problèmes associés (schéma ci-dessus).

Nous allons voir ensuite un des gros avantages de Zabbix : sa capacité à faire des graphiques. En effet, il est possible de coupler différentes données pour en sortir un graphique.
Voici par exemple un graphique couplant les ressources CPU (idle, CPU system, CPU user) :

Il est également possible de regrouper différents graphiques sur le même écran, de manière à avoir une vue la plus synthétique possible :

Il est possible de découvrir automatiquement un réseau. Nous donnons à Zabbix le pool d'adresses Ip qu'il doit sonder (par exemple 192.168.2.1 -> 192.168.2.254 puis nous spécifions quel port doit-il vérifier. Sur cette capture d'écran, les ports 21, 22, 25, 80 et 10050 (l'agent Zabbix) :

L'inventaire du réseau :


Pour le moment, l'inventaire n'est pas automatique, il serait plus qu'appréciable de pouvoir le coupler avec un outil du style d'OCS inventory mais cette fonctionnalité n'est pas encore intégrée.


Partie configuration

Voici les principaux onglets de la partie configuration :

Ajout d'un hôte :

Voici les différents objets d'une machine :

Maintenant les différents triggers :

La liste des utilisateurs de Zabbix :

Pour terminer avec cette petite présentation, je vais vous énoncer quelques avantages qu'a Zabbix par rapport à Nagios (je vois déjà les pro-Nagios fumer, j'ai trouvé ces comparaisons sur Internet car je ne connais pas Nagios.
Je suis donc ouvert à tout commentaire, que vous soyez pro-Zabbix ou pro-Nagios, venez compléter cette liste :) :

  • Toutes les fonctionnalités sont intégrées à Zabbix. En effet, là où il faut installer des plugins supplémentaires pour Nagios (pour les graphiques par exemple), Zabbix fourni d'office tous les outils.
  • Ceci fait que la mise à jour de zabbix est moins risquée. Si on met à jour Nagios, les plugins seront-ils toujours aussi fonctionnels ?
  • Installation et et mise en place de cette Zabbix beaucoup plus simple et rapide
  • Interface de supervision et de configuration plus intuitive et plus clair


J'espère vous avoir donné envie de tester cet outil. En tout cas, selon moi, c'est un outil vraiment parfait que nous inclurons dans les logiciels de notre (ou de votre) projet *Box !

À bientôt ;)
Vus : 996
Publié par Génération Linux : 126