Surveillez eZ Publish avec JVMonitoring
Y a-t-il un site web dans la salle ?
Une fois le développement de votre site web achevé et mis en ligne, vous êtes vous déjà demandé :
Comment être sûr que tout fonctionne correctement sur mon site ?
Et oui, une fois que le site est lancé, c'est le début de sa phase de production et nombre de problèmes peuvent survenir en fonction de la chance/malchance de chacun, du prestataire d'hébergement, de la position de la Lune... C'est aussi à ce moment que l'on peut se rendre réellement compte de la qualité de son développement et que les problèmes peuvent commencer (audience, charge du serveur, erreurs incompréhensibles).
Certes, il existe des plateformes très complètes permettant de monitorer des serveurs, voire même des fermes entières de serveurs, aussi bien au niveau physique (hardware) qu'applicatif (je pense notamment à Nagios ou Cacti ), mais on a souvent besoin d'un outil simple permettant de vérifier la santé de son application.
JVMonitoring : un outil parmi d'autres
JVMonitoring est une extension pour eZ Publish permettant de surveiller la santé de votre site via HTTP. Elle fournit notamment un module effectuant divers tests basés sur différents handlers (vous pouvez d'ailleurs en avoir un aperçu sur la page de monitoring de mon blog ). Chaque test affiche individuellement son statut (OK ou KO), avec un éventuel message d'erreur en cas d'échec. Si tous les tests sont effectués avec succès, le mot-clé OKMonitor est affiché en tant que statut général (le mot-clé est bien sûr configurable), et un code HTTP 200 est envoyé. Dans le cas contraire, c'est le mot-clé KOMonitor qui est affiché, associé avec un code d'erreur HTTP 500 .
Associé à des services de monitoring comme Site24x7 (service de base gratuit), vous avez l'assurance d'avoir un site web qui fonctionne correctement et êtes avertis par e-mail, voire par SMS en cas de problème.
Par défaut, JVMonitoring fournit des tests de base portant sur :
- La santé de la Base de données (connexion et requêtes basiques nécessaires).
- L'accès HTTP externe depuis le serveur (utilisant le proxy s'il est configuré)
- L'accès à la ligne de commande PHP
- La disponibilité du système de redimension d'image (GD et ImageMagick , si ce dernier est activé)
Il est bien sûr possible de développer ses propres handlers afin de monitorer des parties plus spécifiques de votre application. Il suffit pour cela de créer une classe implémentant l'interface IJVMonitoringHandler . Cette interface définit plusieurs méthodes indispensables, et notamment la méthode isUp() qui permettra de savoir si votre composant est en bonne santé ou non. Pour plus de détails, je vous invite à lire la documentation de l'extension ainsi que les commentaires de son fichier de configuration .
Conclusion
JVMonitoring, bien que très pratique et répondant à la plupart des besoins en matière de monitoring, reste un outil simple et limité au protocole HTTP. Par ailleurs, depuis eZ Publish 4.1, si aucune connexion au serveur de Base de Données ne peut être effectuée, une exception eZDBNoConnectionException levée par le kernel et ne pouvant être attrapée empêche l'affichage du module (une erreur HTTP 500 est tout de même envoyée). Enfin, il n'est pas possible - pour le moment - de connecter cette extension aux systèmes de monitoring globaux cités plus haut (Nagios et Cacti entre autres). Pour cela, vous pouvez vous tourner vers l'extension eZSNMPd qui prend totalement en charge le protocole SNMP utilisés par ces systèmes.
Ces limitations mises à part, c'est une extension qui répondra aux besoins courants en matière de monitoring.







Commentaires
Mignon (par Karles)
Limité mais utile malgré tout (par Jérôme Vieilledent)
eZSNMPd (par Karles)
re: eZSNMPd (par gggeek)
Pas tout à fait d'accord (par Jérôme Vieilledent)
Voir le coté plugin (par Sébastien)