Shinken : quand un python rencontre Nagios
( 02 Jul 2009 )J'ai commencé voila quelques temps le projet Shinken. C'est une ré-implémentation de Nagios en Python qui va me permettre de maqueter certains principes pour Nagios avant de me les fader en C.
NOTE: (Jean 2021): oui bah finalement le recodage en C n'est jamais arrivé ^^
C'est pour cela que j'ai choisi le langage Python qui est particulièrement élégant et jouissif. Si vous ne le connaissez pas, aller faire un petit tour sur http://www.python.org/ et laissez vous emporter par ce super langage.
Shinken est le résultat de mon étude de Nagios dont je parlerai un peu plus tard. Ce projet est déjà très efficace, mais j'étais persuadé que certains petits détails étaient encore améliorables:
- Par exemple, le lancement des sondes est ce qui coute le plus cher en terme de performance pour Nagios. Éviter de forker en ayant un pool de processus peut être bien plus intéressant. Ceci se code en quelques lignes de Python.
- De même, les aspects distribué de Nagios ne sont pas parfait. Les Nagios n'ont aucune connaissance des autres. Si avec des solutions comme Centreon il est facile de les gérer, certains problèmes persistent comme les notifications qui sont envoyées par chaque Nagios et ce séquentiellement.
L'intérêt de Shinken est de reprendre la configuration de Nagios ainsi que ses principes de supervision qui sont très pousés tout en proposant une novuelle architecture pour le programme à proprement parlé. Shinken est par exemple capable de couper automatiquement la configuration en partie totalement indépendantes qui vont pouvoir être, encore automatiquement, envoyées vers un scheduler qui va ordonnancer les vérifications et prendre les décisions en cas de problèmes.
Le nom du projet n'a pas été facile à trouver : je suis très long pour trouver des noms. Je peux dire merci à Wikipedia pour celui-là. je cherchai un nom de sabre japonais (j'aime bien la sonorité des noms japonais) et je suis tombé sur celui-là. Le sabre illustre la faculté de couper la charge automatiquement sur plusieurs machines. Et le Shinken est le sabre qui coupe le plus.
Le code est déjà bien avancé et est en licence AGPLv3.
Je reviendrai plus tard sur ce choix. Je suis en train de monter une première version sur sourceforge. Et plus important encore, le logo est déjà prêt :)
Merci à l'auteur cisoun pour sa mascotte ouaaargh qui a servi de base à ce logo :)
NOTE: (Jean 2021): Ca reste encore à ce jour le logo que je préfère, il montrait bien ce que je pensais de Shinken: un truc un peu fou qui fonce dans le tas sans se poser trop de questions :p
Pour ceux qui veulent voir un peu ce que cela donne, vous pouvez obtenir la dernière version du code avec git (paquet git-core sous debian):
git clone git://github.com/naparuba/shinken.git