Un recentrage comme infrastructure de supervision
Le changement important de cette version est un découpage bien plus clair qu’avant entre ce qui concerne le cœur du projet, l’infrastructure de supervision avec ses démons, et les divers modules et packs de supervision. L’objectif est de donner aux utilisateurs les connaissances et les choix pour bâtir leur propre solution.
Ils sont aidés dans cette tâche par un nouveau site d’échange de packs et de modules, shinken.io et la nouvelle commande shinken
permettant d’aller récupérer et installer automatiquement les paquetages :
$ shinken install linux-ssh
Installation via pip
La partie installation a également fortement évolué. Précédemment basée sur un script d’installation, elle suit désormais les standards du monde Python avec un paquet disponible sur Pypi. L’installation de l’infrastructure devient donc tout simplement :
$ pip install shinken
Cette nouvelle méthode est bien plus adaptée pour les empaqueteurs, et des paquets pour les distributions principales sont en cours de finalisation.
Il est à noter que les futures mises à jour de Shinken se feront simplement en relançant cette même commande. :)
Amélioration des règles métiers
Grâce au (gros) travail du contributeur Christophe Simon, les règles métiers (alias bp_rules) ont fortement évolué dans cette version. Il est désormais possible de créer un indicateur agrégé pour un ensemble d’éléments en se basant sur des expressions régulières ou des groupes dans lesquels ils se situent.
Par exemple, pour créer un indicateur unique qui agrège les états de tous les disques de ses serveurs GNU/Linux, il suffit de déclarer :
check_command bp_rule!g:linux,Disks
Un passage au HTTPS entre les daemons
Dernier changement, et non des moindres, les démons communiquent désormais en HTTP(S). Ceci permet de mettre en place facilement un chiffrement efficace (modulo les failles dans OpenSSL, évidemment) de manière simple par rapport aux versions précédentes qui utilisaient la bibliothèque Python Pyro peu compatible avec le SSL.
Il est désormais possible d’interroger directement et facilement les démons Shinken (et leurs indicateurs internes). Par exemple, pour vérifier qu’un démon est en vie, il suffit de lancer :
$ curl http://localhost:7770/ping
"pong"
Ou, par exemple, pour vider tous les hôtes chargés par Shinken :
$ curl "http://localhost:7770/get_objects_properties?table=hosts" | json_pp
Une liste complète des appels API est disponible via :
$ curl http://localhost:7770/api_full | json_pp
Les prochaines versions amélioreront fortement cette API, et les modules pourront également proposer leurs propres appels spécifiques.
Feuille de route et cycle de versions
Cette version a eu une gestation bien longue, notamment expliquée par le fait que le développeur principal de Shinken a lancé sa société d’édition pendant cette période et que les objectifs de réusinage de l’infrastructure étaient assez élevés (tout en assurant une compatibilité ascendante).
Avec désormais un cycle de version propre à l’infrastructure, décorrélé de celui des modules qui peuvent être plus longs (par exemple, celui de l’interface graphique WebUI), et un objectif d’avoir moins de nouvelles fonctionnalités par version, le cycle de sortie devrait fortement réduire. :)
Concernant les améliorations des futures versions, on notera tout particulièrement :
- un rétroportage de certaines vues de la version Enterprise de Shinken dans la version communautaire ;
- l’ajout d’une fonctionnalité tout particulièrement chère au cœur de l’auteur de Shinken : les arbiters relays, permettant de laisser la gestion complète d’un royaume (aka datacenter) à un démon sur place ;
- l’ajout très prochainement des commandes d’instantanées (snapshots) permettant d’avoir une « vue » de l’état d’une machine (ex : par le lancement d’un
ps
) lors d’un souci de charge la nuit, par exemple ;
- accès à toutes les informations internes des démons depuis l’API HTTP.
Mise à jour et cours
Concernant la documentation, elle est désormais disponible en ligne, mais elle est également embarquée avec l’installation de Shinken et disponible sur le port 8080 en lançant :
$ shinken doc-serve
Des cours en vidéos sont disponibles concernant la mise en place de cette nouvelle version et la mise à jour depuis la version 1.4 sur le blog du projet.