Agent check_mk pour Freebox Server

MAJ 08/06/2014 : Enfin packagé sous forme de fichier MKP

MAJ 25/08/2014 : Nouvelle version 1.2 : Correction d’un bug si pas de freeplug (merci à Sylvain Lemoine). Correction bug sur état des interfaces réseau.

MAJ 06/04/2015: Version 1.4 : Correction d’un bug si un le nom d’un périphérique connecté en wifi comporte un accent (merci encore Sylvain !). Meilleure remontée des traces même en mode debug.

MAJ 24/03/2016 : Version 1.5 : Meilleure gestion d’une erreur rencontrée avec une freebox neuve.

MAJ 04/11/2016 : Version 1.6 : Meilleure gestion d’une erreur rencontrée quand le dernier Freeplug est déconnecté.

MAJ 18/02/2018 : Version 1.8 : Le calcul d’uptime générait parfois des erreurs, il est désormais basé sur uptime_val, qui a été créé à ma demande.

Le serveur de la Freebox Révolution (v6) n’est pas accessible via SNMP, ce qui rend les possibilités de supervisions bien ternes, alors que ce boitier gère en réalité de nombreuses opérations.
Courant 2013 l’API REST a été mise à jour, elle permet d’interroger de nombreux compteurs concernant la freebox.

Voici un script python qui fait office d’agent pour la solution de supervision check_mk. Pour ceux qui ne connaissent pas, c’est du Nagios sans les inconvénients de Nagios, les parties les plus rébarbatives étant remplacées par des scripts et une interface web efficaces.

Cet agent permet l’inventaire, la supervision et la création de graphiques pour les éléments suivants:

  • Freeplugs et autres équipements CPL
  • Température des processeurs, du switch et du disque
  • Vitesse du ventilateur
  • Activation du wifi
  • Connexion et force du signal des stations wifi
  • Espace libre des partitions
  • Statistiques sur les 4 interfaces du switch (état, trafic, vitesse)
  • Etat de la connexion ADSL (et peut-être VDSL)
  • Erreurs ADSL
  • Uptime

Je pense avoir intégré tout ce qui était possible.
Cependant:

  • C’est mon premier essai en python, le code n’est pas des plus sexys
  • L’état de la connexion FFTH n’a pas été implémenté
  • La gestion des erreurs sur les ports de switchs n’est pas complète

Pour l’installer, suivre la procédure suivante:

  • Installer le module « python request » (sur Debian: apt-get install python-requests)
  • Télécharger le fichier MKP ci-dessous ou sur Check MK Exchange
  • Se logger avec l’utilisateur exécutant nagios (ou l’instance d’OMD)
  • L’installer avec la commande « cmk -P install freebox-v6-1.0.mkp »
  • Repérer l’emplacement du script installé avec la commande « cmk -P list freebox-v6 »
  • Lancer le script avec l’option « -a » pour lancer la procédure d’authentification sur la freebox
  • Autoriser l’application sur l’afficheur LCD du freebox server
  • Ouvrir ensuite une session sur l’interface web du freebox server, aller dans « Paramètres / Gestion des accès / Applications » et donner le droit « Modification des réglages de la freebox » à l’application
  • Relancer manuellement le script, sans option, et vérifer que la sortie ait l’air correcte. Pour (beaucoup) plus de détails, ajouter l’option -v
  • Via WATO, ajouter un hôte Freebox avec l’IP LAN de la Freebox
  • Toujours via WATO, ajouter une règle de type « Datasource Programs / Individual program call instead of agent » pour l’hôte correspondant à la freebox
  • Indiquer le chemin complet du script, sans paramètre supplémentaire
  • Appliquer la configuration de WATO
  • Lancer un inventaire des services via WATO, sélectionner les services désirés et appliquer la configuration
  • Et hop :

nagios_freebox

Notez aussi que:

  • L’IP LAN de la Freebox n’est pas utilisée par le script (mais mafreebox.freebox.fr), mais Nagios pingera cette adresse pour vérifier l’état de l’hôte
  • Il est possible d’utiliser l’option -v pour avoir une sortie (très) détaillée ce qui se passe
  • Il est possible d’utiliser l’option -d pour logger cette sortie détaillée dans /tmp/check_mk_agent_freebox_revolution.log

Pour les curieux, cet agent utilise si possible le format standard de l’agent check_mk linux, et sinon des checks locaux.
Si vous préférez cacti, voir http://glr81.free.fr/blog/index.php?2013(..)

Reste à faire

S’il reste encore des gens motivés dans la salle, il reste à :

  • Créer des templates pnp4nagios, notamment pour l’ADSL
  • Gérer correctement les erreurs sur interfaces du switch (écrire un vrai plugin check_mk ?)
  • Compléter le package mkp, avec une page man, des perf-o-meter et tout et tout

Télécharger

freebox-v6-1.8.mkp ou depuis Check_MK Exchange