Des solutions plus complètes de supervision
Nous allons donc étudier cinq solutions open-source en matière de supervision qui se veulent assez complètes. Cette étude ressemble à un banc d'essai puisque pour chacun des logiciels nous allons : Faire une courte présentation et expliquer son fonctionnement, Faire le tour des fonctionnalités puis finir sur les avantages et inconvénients.
NetMRG
Présentation
Créé en 2001, NetMRG veut se distinguer des autres en proposant des petites améliorations : Visualisation des graphiques avec historiques et "auto-scroll", utilisation de modèles (templates) pour plus facilement ajouter de nouveaux graphiques, mise à jour du logiciel simplifiée, Gestion des jours de travail.
L'architecture logicielle est découpée en composants :
- Un moteur C++ chargé de récolter les données (Via scripts, Données SNMP ou MySQL). Conçu dans le but de supporter une charge conséquente (Application multithreadée grâce à pthreads). Ce moteur est au coeur de l'application, il ordonnance les tâches et gère les interactions en plus de son rôle de "récolteur".
- RRDTOOL composant vu précédemment qui apporte sa puissante gestion des données ainsi que ses atouts indéniables en matière de génération de graphique.
- Une base de donnée MySQL permettant de sauvegarder la configuration.
- Une interface réalisée grâce à PHP, qui permet de modifier la configuration et d'afficher les graphiques au format PNG générés par RRDTOOL. Pour retrouver les graphiques on doit tout d'abord passer par un arbre qui organise les différentes machines et statistiques associées. Ce "Device Tree" affiche tout d'abord des groupes (Group) lesquels contiennent des machines (Device), puis on accède aux différents services ou valeurs monitorées (Sub device) avant de trouver à l'intérieur les graphiques (Monitors). Des "events" sont également visibles en cas de problème.
Avantages
- Performances : L'application semble pouvoir tenir la charge avec énormément de machines surveillées grâce au moteur multithreadé.
- Alarmes : Il est possible de configurer des évènements qui avertissent l'administrateur d'un fonctionnement anormal.
- Interface : L'interface permet de gérer un grand nombre de machines, classées dans des groupes.
- Gestion des utilisateurs
Inconvénients
- Interface : L'interface n'est pas très accueillante et est déroutante au début.
- Configuration : Il n'est pas très aisé d'ajouter de nouveaux équipements à surveiller si l'on sort du cadre du template prédéfinie.
- Un développement lent, peu de versions et très espacées dans le temps (environ une année).
- Aucune gestion de carte de réseau, et aspect rudimentaire des alarmes. Aucune gestion de panne.
Cacti
Présentation
Tout comme NetMRG, Cacti se base sur RRDTOOL et se présente lui même comme étant l'interface la plus complète à celui-ci. Cacti utilise également une base MySQL pour stocker la configuration.
Depuis la version 0.8.6, Cacti propose un moteur de récolte des données en C, nommé Cactid, utilisant avantageusement les Threads POSIX. Une stratégie qui ressemble étrangement à celle réalisée par NetMRG sauf que Cacti propose de l'utiliser seulement si vous avez réellement besoin de performances (dans le cas contraire c'est le moteur PHP qui prend le relais).
On retrouve les mêmes fonctionnalités que NetMRG : Sources de données multiples via scripts dans de multiples langages, gestion des utilisateurs et ajout d'équipement à partir de modèles (templates)de configuration.
L'interface est divisée en deux, une partie nommée "Console" permettant de tout configurer et une autre nommée "Graphs" permettant d'afficher les graphiques. L'originalité réside dans le fait que la partie affichage de graphiques possède trois modes d'affichages :
- Tree mode : Ressemble à l'interface de NetMRG, classement en arbre des différentes machines par groupes. Utile pour gérer un grand nombre de machines ou équipements.
- List mode : Permet de lister les graphiques présents sur une machine sélectionnée dans la liste.
- Preview mode : Ressemble à List Mode excepté que les graphiques sont affichées directement au lieu d'un lien vers celui-ci. Utile pour avoir un aperçu rapide de l'état d'une machine et de ses services.
Avantages
- Interface : Beaucoup plus claire que celle de NetMRG elle permet également beaucoup plus de choses (Plus de modes d'affichages et plus de possibilités de configuration)
- Configuration : Avec l'utilisation des templates pour les machines, les graphiques, et la récupération des données tout se configure aisément et entièrement via l'interface web. Import/ Export très simple des templates au format XML. On peut aussi très facilement utiliser des options poussées de RRDTOOL
- Performance : Avec le choix du moteur de récolte des données, On peut opter pour la performance ou la simplicité
- Gestion des utilisateurs
- Communauté sur le web, présence d'une dizaine de plugins permettant d'étendre les fonctionnalités
Inconvénients
- Pas de gestion d'alarmes, sauf avec un plugin nommé Thold
- Pas de gestion de panne et absence d'une cartographie de réseau
- Un développement lent tout comme NetMRG
Zabbix
Présentation
Créé en 2001, puis donnant naissance à une entreprise nommée Zabbix SIA en 2005, Zabbix est une solution de supervision open-source de plus en plus prisée. L'entreprise vise à faire de Zabbix un logiciel reconnu dans le milieu de la supervision et créer une communauté autour de lui pour permettre une évolution plus rapide. A côté de cela, cette societé propose un service de maintenance commercial.
Zabbix permet plusieurs moyen d'acquérir les données :
- Via SNMP : comme tous ses concurrents
- Via test de service : Il n'y a rien a installer sur l'équipement surveillé, mais les tests sont limités à des ping ou test de protocoles (SMTP, HTTP,...)
- Via l'agent Zabbix local : C'est une originalité, installer un agent permet d'obtenir toute information sur l'équipement sans utiliser le protocole SNMP
- Serveur : Le serveur est le coeur de l'application Zabbix. Il centralise les données et permet de les attendre (trapping) ou d'aller les chercher (polling). Il centralise aussi toutes les informations de configuration et permet d'alerter les administrateurs en cas de problème.
- Le proxy : Élément optionnel de l'architecture, il permet de bufferiser les données reçus des différents sites dans le but d'alléger les traitements pour le serveur.
- L'agent : Une fois installé sur un système, l'agent va collecter les données locales et les envoyer au serveur.
- L'interface Web : Celle-ci est une partie du serveur bien qu'il n'est pas obligatoire qu'elle se trouve sur la même machine que le serveur. L'interface permet de configurer entièrement Zabbix, d'accéder aux statistiques ainsi qu'à d'autres informations
Tous ces composants sont écrits en C afin de garder de hautes performances, ormis bien évidemment l'interface Web développée en PHP.
L'interface est divisée en cinq parties :
- Monitoring : La partie affichage des statistiques, graphiques, alertes, cartographie..etc..
- Inventory : l'inventaire des machines et équipements
- Report : Statistiques sur le serveur Zabbix et rapport de disponibilité des services sur les machines supervisées
- Configuration : Comme son nom l'indique, permet de configurer entièrement Zabbix
- Administration : Permet de gérer les moyens d'alertes (SMS, Jabber, Email, ...) et les utilisateurs
Avantages
- Une solution très complète : cartographie de réseaux, gestion poussée d'alarmes via SMS, Jabber ou Email, gestion des utilisateurs, gestion de pannes, statistiques et reporting
- Une entreprise qui pousse le développement, et une communauté croissante
- Une interface vaste mais claire
- Une gestion des templates poussée, avec import/export xml, modifications via l'interface
- Des performances au rendez-vous : l'application a été testée avec succès avec 10000 équipements supervisés
- Compatible avec MySQL, PostgreSQL, Oracle, SQLite
Inconvénients
- Interface est un peu vaste, la mise en place des templates n'est pas évidente au début : petit temps de formation nécessaire
- L'agent zabbix communique par défaut en clair les informations, nécessité de sécuriser ces données (via VPN par exemple)
- Commence à être connu, mais pas encore auprès des entreprises : Peu d'interfaçage avec d'autres solutions commerciales
Nagios
Présentation
Successeur de NetSaint, Nagios est certainement le logiciel libre le plus connu dans le milieu de la supervision réseau. Appréciée des entreprises ainsi que des particuliers, cette application possède une très grande communauté qui participent activement au développement.
L'architecture logicielle est modulaire comme chez ses concurrents :
- Le moteur qui gère l'ordonancement de la supervision, écrit en C
- L'interface Web réalisé à l'aide des CGI
- Des greffons, ou plugins qui étendent les possibilités de Nagios (Plus de 1200 plugins existants sur nagiosexchange.org)
L'interface est divisée en trois :
- Partie monitoring, qui permet plusieurs vues : vue globale, vue précise, vue de la carte du réseau, vue des problèmes, ... même une vue "3D".
- Partie reporting regroupant les tendances des statistiques, les alertes et évènements ainsi qu'un rapport de disponibilités des services.
- Partie configuration classique permettant de tout configurer.
Avantages
- Reconnu auprès des entreprises, grande communauté
- Plétore de plugins qui permettent d'étendre les possibilités (agents comme zabbix, reporting amélioré, etc...)
- Une solution complète permettant le reporting, la gestion de panne et d'alarmes, gestion utilisateurs, ainsi que la cartographie du réseaux
- Beaucoup de documentations sur le web
- Performances du moteur
Inconvénients
- Interface non ergonomique et peu intuitive
- Configuration fastidieuse via beaucoup de fichiers
- Pour avoir toute les fonctionnalités il faut installer des plugins, de base c'est assez limité.
Centréon
Présentation
Centréon, basé sur Nagios, se présente comme une évolution de celui-ci pour tout d'abord son interface mais aussi ses fonctionnalités. Créé en 2003 par des français souhaitant améliorer Nagios et son interface très austère, Centréon (anciennement Oréon) a été repris par une nouvelle entreprise nommée Merethis.
Centréon reprend donc les avantages du moteur de Nagios et permet ainsi d'être entièrement compatible avec des solutions existantes. Son interface reprend un découpage classique :
- Home : Page d'accueil avec Le "Tactical Overview" de Nagios permettant un coup d'oeil rapide aux problèmes survenus et accès aux statistiques des performances du moteur et de ses composants.
- Monitoring : Possède plusieurs vues, mais reprend la grande idée de l'arbre des groupes d'équipements. Reprend également la vue Nagios.
- Views : Permet d'accéder à tous les graphiques avec un menu arborescent. Accès à une cartographie du réseau en applet Java.
- Reporting : Un dashboard ressemblant à celui de Zabbix en ajoutant une frise chronologique de la disponibilité de l'équipement.
- Configuration : Pour tout configurer de A à Z.
- Administration : Configuration des accès utilisateurs.
Toujours visibles en haut à gauche, un tableau récapitulatif du nombre de machines actives et des éventuelles machines ne répondant plus pour toujours garder un oeil sur l'ensemble du réseau.
Avantages
- La robustesse et la renommée de Nagios
- Une interface beaucoup plus sympathique, permettant de tout configurer, de garder un oeil sur tout le réseau en permanence
- Les utilisateurs de Nagios ne seront pas perdus pour autant, l'interface reprenant avantageusement certaines vues Nagios
- Une solution complète permettant le reporting, la gestion de panne et d'alarmes, gestion utilisateurs, ainsi que la cartographie du réseaux
- Une entreprise qui pousse le développement
- Peut être décorelé du serveur Nagios et tourner tout seul sur un autre serveur
Inconvénients
- L'interface peut paraître complexe car il existe beaucoup d'options, de vues....cela nécessite une petite formation
- Un développement qui n'est pas encore en phase avec celui de Nagios : Parfois des problèmes de compatibilité
- Un peu plus lourd que du Nagios pur