Monitoring CouchDB 3 avec Zabbix

Sur Octopod (www.octopodvr.com), notre solution de gestion de salles VR, nous utilisons actuellement CouchDB 2 pour synchroniser les postes chez les exploitants et nos serveurs. Récemment, une migration vers CouchDB 3 a été décidée pour tirer parti de certaines de ses nouveautés. Pour être sûr que tout se passe bien et que l'écosystème reste stable, il nous faut donc le surveiller de très près pour détecter au plus tôt la moindre anomalie.

Pour monitorer notre infra (serveurs, routeurs, switches, services,...), nous utilisons Zabbix depuis quelque temps maintenant, et nous avons en toute logique voulu faire de même pour garder un œil sur notre nouvel ami. Problème : il semblerait que personne n'ait encore écrit d'extension Zabbix pour CouchDB 3 (on a en tout cas rien trouvé de convaincant). Bon bah tant pis : on va se retrousser les manches et le faire nous-mêmes ! 😅

On a donc commencé par se documenter sur la manière de récupérer les stats de CouchDB : c'est assez simple, il suffit de faire une requête HTTP sur une route spécifique et il nous donne un énorme JSON rempli de données qui vont nous être bien utiles ! 🤩

Une fois renseigné sur CouchDB, on a regardé comment faire une extension pour Zabbix Agent afin de remonter les données. Sans trop rentrer dans les détails, il y a deux grandes solutions :

  • soit on demande à Zabbix de récupérer une par une les informations à intervalle régulier,
  • soit on lui pousse toutes les informations d'un coup par nos propres moyens.

La première solution est la plus simple, mais vu le nombre d'informations différentes (on remonte actuellement plus de 300 statistiques), elle semble assez peu efficiente. La seconde demande plus de travail mais est bien plus efficace.

Quelle solution avons-nous choisie me demanderez-vous ? Eh bien les deux ! 😎

C'est en effet assez pratique de laisser Zabbix demander des informations à intervalle régulier, surtout que ça lui permet de nous donner des paramètres, comme les informations de connexion par exemple, qui peuvent alors être configurées directement via l'interface web.

Mais comme ça ne serait pas du tout efficace de lui faire faire plus de 300 requêtes toutes les 30 secondes pour remonter les infos une par une, on ne lui fait faire qu'une seule requête. Une fois notre extension appelée par cette requête, elle pousse d'elle-même les 300 statistiques dans Zabbix et lui donne comme seule réponse un résumé de si ça s'est bien passé ou pas.

Au final, une fois le fonctionnement du système d'extension de Zabbix comprit, il nous a été assez simple de développer la nôtre. Comme on est vachement sympa chez Wanadev, on a mis le résultat de notre travail sur Github pour qu'il profite à tous.

Vous pouvez donc retrouver notre extension Zabbix pour CouchDB 3 sur notre Github :

Notez toutefois que la peinture est encore fraîche : nous n'avons par exemple pas encore configuré de triggers dans le template : nous sommes en train d'étudier quelles informations remontées sont pertinentes à surveiller et quels seuils d'alertes définir pour chacune d'entre elles. Vous devrez donc pour l'instant définir vous-mêmes les alertes sur les valeurs qui vous intéressent. 😉

Quoi qu'il en soit, n'hésitez pas à vous en servir si vous en avez besoin, et n'hésitez pas à nous remonter le moindre bug ou vos idées d'améliorations ! 😁

Tags de
l'article

Cet article n'est pas taggué.

Catégories de l'article

Kit de survie Développement

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

Articles liés