Zabbix : le graal des feignants

Vous savez ce que c’est hein… on installe un serveur… puis un autre.. puis un troisième chez un pote… Et très vite se retrouve administrateur de plusieurs machines (famille et amis). Ce qui prenait quelques minutes par jour commence à vous prendre de plus en plus de temps. Car oui, en tant « qu’admin » responsable, vous vous inquiétez de l’état de vos bébés. Les Raids sont ils toujours OK ? Pas de disques HS ? Les systèmes de fichiers ont ils encore de l’espace ? Pas de messages d’erreurs bizarres dans les logs ? Pas d’alertes « Smart » ou autre ? Bref, les quatre ou cinq commandes que vous lanciez régulièrement sont à multiplier par le nombre de machines, et il faut être franc, on a beaucoup mieux à faire de ces journées.

La solution, vous la connaissez déjà bien sur. Utiliser un logiciel de supervision. Le plus connu est Nagios. Sauf que tout ce qu’on vous à dit sur Nagios doit être vrai : Une usine à gaz, qui ne se configure qu’en éditant à la main des fichiers de config, et qui nécessite un temps d’apprentissage certain. Sans parler de son auteur qui s’est mis toute la communauté à dos (car son produit est de plus en plus fermé), ce qui à généré des forks etc…

Alors quoi ? Et bien la solution s’appelle ZABBIX. Cette petite merveille se paramètre entièrement via une interface web, et une fois que l’on a bien compris le fonctionnement, on fait rapidement tout ce que l’on veut avec. Une merveille je vous dit.

Comment ça fonctionne ?

Le principe de base est le suivant. Zabbix enregistre régulièrement des valeurs (nombres ou textes), et stocke tout (les valeurs elles mêmes ou les différences par rapport à la valeur précédente) dans une base de donnée (oracle, mysql, postgres…) Un grand nombre de données à surveiller sont paramétrées de base (occupation cpu, nombre de processus, ram disponible, espace libre sur les fs etc). Mais libre à vous d’ajouter tout ce que vous voulez. Toutes ces valeurs sont donc enregistrés au fur et à mesure (durée de l’historique paramétrable évidement) ce qui permet de tracer tous les graphiques que vous voulez :

zabbix_Graphiques

Quel intérêt ?

Même si en tant que simple particulier on ne vas pas faire du capacity planning, stocker toutes ces informations permet par exemple de savoir quand un fichier système à été modifié précisément. Même si cette information doit aussi être disponible dans la base de votre logiciel de backup incrémental (bacula chez moi), ça reste Intéressant quand même. Bien sur il est aussi possible de voir graphiquement quelles sont les plages horaires durant laquelle le réseau est le plus utilisé, ou à quelle heure un événement quelconque à eu lieu etc.

C’est tout !?

Non bien sur. Le but d’un logiciel de supervision c’est surtout de vous avertir quand quelque chose ne va pas. Donc une fois que vous avez paramétré tout ce que vous voulez que zabbix surveille et enregistre, vous allez pouvoir paramétrer des « triggers ». Un trigger c’est juste une condition qui se vérifie ou non. Par exemple : « la dernière valeur enregistrée pour le paramètre %_libre_/home est inférieur à 5 ». Si l’espace libre dans /home est inférieur à 5%, alors ce trigger est actif. Il ne reste alors plus qu’a définir des actions. Les conditions de déclenchement d’une action peuvent être assez complètes, genre si le trigger A est actif, et que le trigger B l’est aussi, ou seulement le trigger C, alors on fait ceci. Et « ceci » c’est bien évidement vous avertir qu’il y a un soucis. Envoi de mails, lancement d’un script, ou même envoi d’un sms si vous avez un modem connecté sur la machine… On peut imaginer à peu près tous les cas de figure.

Zabbix_action

C’est compliqué à configurer ?

Bof. Il faut évidement prévoir quelques heures pour lire un peu la doc et se faire la main avec le site web (qui sert à la fois à l’administration et au reporting). Mais quelqu’un qui maitrise correctement le shell n’aura aucun soucis pour lui faire faire n’importe quoi, y compris des trucs pas du tout prévu à la base. J’ai par exemple ajouté cette ligne toute simple dans le fichier de config :

UserParameter=custom.who,who | grep -v hoper | wc -l

Vous avez deviné ? custom.who est le nom du paramètre dans lequel seront stockés les valeurs. Tout ce qui est après la virgule sera exécuté. Et oui, il s’agit tout simplement de compter le nombre de personne connectés avec un login autre que hoper. Simple non ? 🙂 Des trucs sympa comme ça, j’en ai définit tout un tas…

Et au final ?

Bien ! Je ne perd plus mon temps à me connecter un peu partout pour vérifier que tout fonctionne. A la moindre alerte potentielle, je reçois un message sur mon téléphone. Ahh… si tout pouvais être aussi simple…

EDIT : Le produit évolue constamment, et un nouveau billet sur le sujet est disponible ici

6 commentaires

  1. mkhadi Répondre

    sil vous plait je demandes comment je réaliser une commend de patch pour prisésie l’espace libre de disque dur sous linux (debian)

  2. Hoper Répondre

    Heu… En français ca donne quoi !?

    Si la question c’est « comment superviser l’espace disque disponible », il n’y a absolument rien de particulier à faire, ce genre de chose est déjà paramétrée par défaut pour les principaux systèmes de fichier (/, /home…)

  3. Fatiha Répondre

    Bonjour,

    Je confirme, Zabbix est très facile à configurer comparé à Nagios ! Je suis sidérée par sa complexité. J’utilise Zabbix depuis décembre 2007 et depuis je ne le regrette pas.

    Merci pour cet article
    Fatiha

  4. hdk Répondre

    Slt c’est interessant tout ca ! Pourrait on avoir la presentation d’une implementation de trigger et d’une action pour voir comment cela reagit sur un poste client xp par exemple? Merci

  5. hoper Répondre

    Je n’ai jamais utilisé zabbix sous windows, mais il existe des agent, donc en théorie on doit pouvoir, comme sous unix, leur faire exécuter n’importe quoi en cas de soucis… (si la configuration est bien faite de chaque coté, client et serveur). Cela dit, scripter sous windows…
    Bon courage 🙂

Répondre à mkhadi Annuler la réponse

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.