Questions fréquentes
Ce qu’un administrateur veut savoir avant de confier son parc à banshee, de l’agent à la licence.
L’architecture
Faut-il installer un agent sur chaque machine ?
Non. Les pollers interrogent les équipements à distance, en SNMP, en SSH ou en HTTPS, et rien ne s’installe sur les machines surveillées.
Un poller est un programme à part, que vous installez où vous voulez, au plus près des équipements : une machine virtuelle dans le datacenter, un petit serveur chez un client, ou l’un des serveurs surveillés.
Comment un poller passe-t-il un pare-feu ?
En sortant. C’est le poller qui ouvre la connexion vers le master, et le master ne s’adresse jamais à lui. Il lui suffit de pouvoir joindre le master, comme un navigateur joint un site web. Sur le site supervisé, vous n’ouvrez aucun port entrant et vous ne montez aucun VPN.
Quand le master a du travail pour un poller, il le lui signale en réponse à son signe de vie, et le poller vient chercher la tâche.
Sur quels systèmes s’installe banshee ?
Le master tourne sous Linux amd64, Debian ou Alpine, avec une base PostgreSQL. systemd ou OpenRC le relancent s’il s’arrête.
Les pollers tournent sous Linux, FreeBSD, macOS (Intel et ARM) et Windows Server 2016 et suivants, chacun en un seul binaire, sans rien à installer à côté. Un Windows Server 2008 ou 2012 ne reçoit pas de poller, mais il se supervise à distance depuis un poller voisin.
banshee offre-t-il de la haute disponibilité ?
Non. Il n’existe pas de mécanisme de secours dédié pour le master, ni de second master qui prendrait le relais.
Le master est conçu pour ne pas tomber de lui-même : quand la base de données ou le disque vient à manquer, il met en pause ce qui en dépend, puis reprend seul à leur retour.
Jusqu’à quelle taille de parc ?
L’architecture est dimensionnée pour 80 000 hôtes et 600 000 sondes. C’est une cible de conception, volontairement très au-delà des besoins courants, contre laquelle chaque choix technique se mesure. L’inventaire a déjà été éprouvé avec 680 001 dossiers, hôtes et sondes.
Côté réseau, un poller dont toutes les sondes vont bien n’envoie qu’un signe de vie par minute, avec un bit par sonde. Le détail ne part que pour ce qui ne va pas.
La collecte
Quelles versions de SNMP sont prises en charge ?
SNMP v2c et v3. En v3, l’authentification va de MD5 à SHA-512, et le chiffrement de DES à AES-256. Les sondes SNMP ne font que lire : banshee n’a aucune fonction d’écriture SNMP.
Dans un collecteur, une table SNMP se lit en une ligne. snmp.table rapproche les colonnes par leur index : le nom d’une interface arrive avec ses compteurs, sans deux tables à recouper à la main.
Que fait banshee en SSH ?
Un collecteur lance une commande sur la cible, puis lit sa sortie, ses erreurs et son code de retour. Chaque argument est transmis séparément et protégé, jamais collé dans la commande. La clé d’hôte est vérifiée avant l’envoi du moindre identifiant, mot de passe ou clé privée.
Ce que fait la commande est écrit en clair dans le collecteur, et c’est à vous d’en juger quand vous le relisez. Avec un compte sans droit d’écriture sur la cible, une commande mal relue ne peut rien y changer.
Et en HTTPS ?
Un collecteur lit une page ou une API, et reçoit le code de réponse, les en-têtes, le corps et le temps de réponse. Aucune redirection n’est suivie en silence : une réponse 3xx est rendue telle quelle. Un POST est possible aussi, quand une API l’exige, et comme pour une commande SSH, ce qu’il fait est à votre jugement.
L’identité du serveur se vérifie par les autorités de certification du système ou par l’empreinte d’un certificat épinglé. Chaque connexion a son profil TLS, du mode « Récent », en TLS 1.3 seulement, jusqu’à un mode qui accepte encore un Windows XP. Un jeton ou un mot de passe posé sur un dossier ne part que vers les cibles dont le collecteur le demande lui-même.
À quoi ressemble une sonde, et comment en écrire une ?
Une sonde fait tourner un collecteur, un court programme écrit en Keen, le langage de banshee. Keen a la forme d’un PHP procédural à l’ancienne, que la plupart des administrateurs lisent sans apprentissage. Voici l’essentiel d’un collecteur d’onduleur interrogé en SNMP :
need('protocol:snmp');
output('charge', 'number', array('label' => 'Battery charge', 'unit' => '%'));
output('runtime', 'number', array('label' => 'Time left on battery', 'unit' => 'min'));
watch.below('charge-low', 'Battery not charged', 'charge', array('warning' => 80, 'critical' => 50));
watch.below('runtime-short', 'Little time left on battery', 'runtime', array('warning' => 15, 'critical' => 5));
value('charge', snmp.get('1.3.6.1.2.1.33.1.2.4.0'));
value('runtime', snmp.get('1.3.6.1.2.1.33.1.2.3.0')); Les deux lignes watch.below sont des surveillances, nommées en clair, avec des seuils que l’auteur propose. Sur la page de la sonde, vous cochez celles qui vous intéressent et vous ajustez les seuils si vous le voulez ; un seuil laissé vide ne déclenche rien. Plus d’option de greffon à retrouver dans une aide, plus d’expression régulière pour savoir qu’un onduleur est passé sur batterie.
Le master vérifie le code à chaque enregistrement et signale chaque faute à sa ligne. Et si vous préférez ne rien écrire, les collecteurs se récupèrent depuis des dépôts, celui de la communauté ou le vôtre. Chaque version est gardée : elle se compare à une autre et se rétablit en un clic.
Que se passe-t-il quand un poller se tait ?
Ses sondes cessent d’être vertes. Chaque poller envoie un signe de vie toutes les minutes, et un site devenu muet se voit à l’écran, au lieu de passer pour un site où tout va bien.
Les alertes
Comment banshee évite-t-il les tempêtes d’alertes ?
Un problème n’alerte qu’une fois confirmé, au bout du délai ou du nombre d’échecs que vous réglez, sur une sonde, un hôte ou tout un dossier. Pendant une tempête, les messages partent au plus une fois toutes les quelques minutes, au rythme que vous fixez ; ce qui arrive entre-temps est regroupé dans le message suivant, sans rien perdre.
Peut-on couper les alertes pendant une intervention ?
Oui, sur n’importe quel dossier, hôte ou sonde, et pour tout ce qu’il contient. Une maintenance a un début, une fin, un auteur et un commentaire. Pendant ce temps, les sondes continuent de tourner et leur état reste affiché : seules les notifications sont coupées.
Un acquittement, lui, porte sur un problème précis. Il tombe seul quand la sonde revient à OK, et l’alerte repart si l’état s’aggrave.
La sécurité
Où sont gardés les mots de passe et les communautés SNMP ?
Dans un coffre chiffré, jamais en clair. Sur le poller, le coffre est chiffré par une clé liée à sa machine, et il s’ouvre seul au redémarrage. Sur le master, vous choisissez : il oublie le secret dès qu’il l’a transmis au poller, ou il le garde, chiffré par une clé liée à sa propre machine. Une clé de secours permet de récupérer un coffre dans tous les cas.
Un master compromis peut-il prendre la main sur les pollers ?
Non, et c’est une règle de conception. Le master ne pousse aucune mise à jour : un poller ne change ses collecteurs que sur le geste d’un administrateur, sur le poller lui-même, qui voit les changements avant de confirmer. Et comme le master ne se connecte jamais aux pollers, il n’a aucune porte à ouvrir vers eux.
La licence et l’adoption
Combien coûte banshee ?
Rien. banshee est un logiciel libre, sous licence AGPL-3.0, sans licence par hôte ni par sonde, et il n’en existe qu’une édition, la même pour tous. Des sponsors soutiennent le projet.
Peut-on migrer depuis un autre outil de supervision ?
Aucun outil d’import depuis un autre logiciel de supervision n’est prévu à ce jour : les hôtes et les sondes se créent dans banshee.
Peut-on se faire accompagner pour le déployer ?
Le projet cherche à constituer un réseau de partenaires, spécialisés dans le déploiement de banshee et l’écriture de collecteurs, pour que les entreprises qui l’adoptent aient des garanties et de l’assistance. Le logiciel, lui, reste le même pour tous. Pour en parler, ou pour devenir l’un d’eux, écrivez à l’équipe.
Pour une vue d’ensemble, lisez banshee en bref. Une question qui n’est pas ici ? Contactez l’équipe.