FEDSnmp (07/06/2004) - Version 0.2

FEDSnmp (10/07/2004) - Version 0.3

FEDSnmp (17/10/2004) - Version 0.4

FEDSnmp (15/11/2004) - Version 0.5

FEDSnmp (15/05/2005) - Version 0.6 (version de développement)

FEDSnmp (20/04/2006) - Version 0.7
FEDSnmp (19/05/2007) - Version 0.8 (Développement commencé)

FEDSnmp (25/02/2008) - Version 0.8 (Phase de test)


Détails de l'avancement du développement de la version 0.8, par module :
SurvScanPre.pl : 100% --> Supprimé
SurvScanSec.pl :100% --> Supprimé
SurvScan.pl: 100%
SurvAffich.pl : 100%
start.sh : 100%
GeneBD.sh : 100%
CorrecRetCpt.pl : 100%
Arborescence.pm : 100%
Historique.pm : 100%
AlarmeDebit.pm : 100%
Acquit.pl : 100%




Eh bien ! Je ne sais pas comment vous êtes arrivés là, mais une chose qui est sûre c'est que le hasard y est pour beaucoup ...
Bon ben, puisque vous êtes là, je ne vais pas être impoli et vous présenter votre camarade de jeux : FEDSnmp.

C'est un logiciel écrit/codé/torturé en Perl dont le but originel était d'effectuer de la supervision très simple de PC ou switchs ou routeurs. Ensuite il a évolué pour devenir plus complet.


Sommaire :

  1. Dernières infos
  2. Tout d'abord quelques captures d'écrans :
  3. Les étapes du projet :
  4. Histoire de la frustration d'un ingénieur télécoms et réseaux
  5. Ce que fais FEDSnmp et ce qu'il ne fait pas par rapport à la plupart des outils de supervision :
  6. Comment se procurer FEDSnmp ? :
  7. Comment installer FEDSnmp ? :
  8. Introduction rapide à l'utilisation de FEDSnmp (de la page Surv.html) :
  9. Sous quelle licence se trouve FEDSnmp ? Quel est son coût ? :
  10. Me contacter :

Dernières infos

25/03/2008
    Je ne peux tester en ce moment le logiciel car l'environnement de production sur lequel se déroule le test est fortement instable. Tester un logiciel sur celui-ci risquerait d'empirer les choses. Wait & see une ou 2 semaines encore avant de reprendre les tests ... Au pire, je prendrai un autre environnement de production pour les tests (mais cela me demande de reprendre toutes les conf :'(  ).

27/02/2008
Version 0.8 rc2
    Retour d'expérience des premiers tests :
--> Le fichier Historique.txt grossit trop vite ==> travail sur Historique.pm. Désormais seuls les changements d'états et les mesures de compteurs sont enregistrés. Quelques corrections également dans le module.
--> Les scanneurs ne relèvent pas les compteurs ==> problème avec l'utilisation de la nouvelle lib SNMP. J'ai retrouvé le paquet pour installer l'ancienne et j'ai recode SurvScan.pl pour utiliser cette dernière.
Dans AlarmeChgt.pm, on écrivait le résultat dans un fichier. Cela a été supprimé étant donné que maintenant cela est stocké dans Historique.txt. En revanche, la génération de la page html pour SurvAffich.pl est gardée.
Voir le fichier README pour connaître toutes les corrections qui ont réalisées.

25/02/2008
Version 0.8 rc1
    C'est parti pour le test grandeur nature ! L'objectif est de réussir à faire tourner le bouzin 15 jours d'affilés sans bug. A chaque bug trouvé, on corrige et on repart pour 15 jours.

24/02/2008
Version 0.8 béta 6
    Dernière version avant le grand saut dans le monde réel ...
    Préparation de la page que vous lisez pour mettre à jour les explications suite à la sortie prochaine de FEDSnmp v0.8.

22/02/2008
Version 0.8 béta 5
    Ca avance, ca avance. SurvScan.pl est, pour ainsi dire, terminé. Les seuls cas où j'aurai à revenir dessus seraient suite à une détection de code ou la nécessité de réaliser quelques modifications suite à des changements provenant de d'autres modules. Acquit.pl, la console, et start.sh sont dans le même cas. SurvAffich.pl est bien avancé également. Je pense que l'on peut espérer la version 0.8 en test pour début mars et la version testée fin mars (compter 15 jours de tests plus les vacances !).

20/02/2008 :
Version 0.8 béta 4
    A recoder beaucoup de choses dans le scanneur, j'ai revu entièrement le fonctionnement. On n'a plus plusieurs scanneurs qui se synchronisent à l'aide de verrous, le tout piloté par SurvScan qui synchronise également SurvAffich. L'utilisation des threads permet de lancer les scanneurs, quel que soit leurs nombres, sans problème de synchronisation. CEla va donc impacter SurvAffich car les données ne seront plus passées de la même manière à SurvAffich.

03/02/2008 :
Version 0.8 béta 3
    Ca avance, ca avance. J'ai revu le module de scan car le module SNMP installé sous GNU/Linux Debian n'est plus par défaut Net::SNMP, mais SNMP. Cela implique de gros changements dans le codage car biensûr les primitives ne sont plus les mêmes :-@ Cette mauvaise "blague" m'oblige à reprendre pas mal de choses dans les scanneurs. Le problème est alors pour ceux qui installent maintenant FEDSnmp sur Debian Etch : les versions <= 0.7 utilisent Net::SNMP et non pas SNMP. Les primitives n'étant plus les mêmes, cela ne permet plus aux scanneurs de FEDSnmp de fonctionner. Il faut donc installer Net::SNMP à la main en allant chercher les sources sur www.cpan.org. Pour toute demande d'aide sur la manip, m'envoyer un email.

21/12/2007 :
Version 0.8 béta1
    Ca faisait trèèèèès longtemps que je n'avais touché au code. J'ai fais du nettoyage et je me suis surtout remis en tête le fonctionnement de la bête. Bientôt les tests.

20/04/2006 :
Version 0.7
    La foule est en délire, les mains se lèvent, les trompettes sonnent et les majorettes se trémoussent ... la version 0.7 est sortie !

Tout d'abord quelques captures d'écrans :

Version 0.3 :
Page d'accueil première partie (états des groupes de niveau 1).
Page d'accueil deuxième partie (listing sans classement des machines surveillées).
Etats des groupes de niveau 2 étant sous-niveau du groupe 1 appellé France.
Etats des machines du "niveau machines" (sous-niveau du groupe 5).

Version 0.4 :
Rien pour le moment ! J'ai la flemme de faire les captures d'écran vu que c'est assez proche de la version 0.3 au niveau présentation.

Version 0.5 :
Page d'accueil (états des groupes de niveau 1 + alarmes en cours + alarmes non acquitées de changements d'état + alarmes non acquitées de débit)

Version 0.6 :
Page d'accueil
Etat des machines de niveau 2
Exemple de carte

Version 0.7 :
Page d'accueil
Le design des autres niveaux est similaire à la version 0.6.

Version 0.8 :
Toutes les pages

Les étapes du projet :

Étape 0 : Développement non commencé = Pas de nouveau besoin pour le moment. Projet arrêté (pas nécessairement définitivement).
Étape 1 : Développement commencé = De nouveaux besoins exprimés. Début du développement d'une nouvelle version.
Étape 2 : Développement en cours = Implémentation des fonctionnalités. Attente de nouveaux besoins et implémentation de ceux-ci.
Étape 3 : Phase de tests = Toutes les fonctionnalités recherchées sont implémentées et plus de nouveaux besoins exprimés depuis plusieurs jours. Tests en environnement de production.
Étape 4 : Publication = Logiciel stable et documenté, prêt à être mis en production.

Histoire de la frustration d'un ingénieur télécoms et réseaux

L'ingé, c'est moi. J'ai du utiliser un logiciel (Netview pour ne pas le nommer) pour superviser un réseau, essentiellement de niveau 2. La plupart des utilisateurs (c'est-à-dire tout le monde, excepté les quelques illuminés à l'origine du projet de déploiement de Netview dans l'entreprise), au sein de l'entreprise, au niveau national, lui trouvaient plus de défauts que de qualités. Bon, ce n'est pas le premier programme instable, plus gros bouffeur de ressources que tout ce que j'ai vu jusqu'à présent, et qui suit un comportement scrupuleusement non-déterministe. Mais ce qui est "dommage" <mettre le gros mot de votre choix> avec ce logiciel, c'est que l'éditeur (Tivoli/IBM) n'a que faire de nous, car on n'est pas un client assez gros, et on ne peut pas mettre ses petits doigts dans le code source, logiciel/licence propriétaire oblige.

En plus, il y a 2-3 trucs qui ne répondent pas correctement à nos besoins, voir des fonctionnalités dont nous aurions besoin et qui brillent par leur absence.

Bref, un peu frustré de devoir travailler avec un mauvais outil qui ne répond pas entièrement à mes besoins, et que je ne peux personnaliser, je me suis tourné vers une autre solution : faire mon propre outil de supervision.

Je remarque juste une chose cependant, c'est alors que je suis tout sauf un codeur fou, j'ai réussi à faire un logiciel de supervision stable et léger en partant de rien... Et dans cette entreprise, ca fait plusieurs moins que toute la supervision des LANs repose sur cet outil artisanal.

Ce que fais FEDSnmp et ce qu'il ne fait pas par rapport à la plupart des outils de supervision :

  Voici une présentation powerpoint de FEDSnmp (valable jusqu'à la version 0.7).

  FEDSnmp, contrairement à la plupart des outils de supervision, ne fait pas une jolie carte du réseau (enfin, ces logiciels découvrent le réseau et font un gros tas de tous les éléments et à toi de faire le ménage ensuite) : Pour la supervision, je m'appuis sur des schémas de réseaux tenus à jour. Je n'ai pas besoin d'avoir une seconde fois l'architecture réseau. De plus, l'info remontée est représentée selon le schéma logique (modification de la perception du réseau par l'utilisation de STP/RSTP, RIP/OSPF, ...) et non physique. Enfin, on peut avoir un réseau physique, un réseau logique différent, et on peut vouloir avoir un découpage de la supervision encore différent.
  FEDSnmp fait du monitoring sur les interfaces (Erreurs en entrée, en sortie, Débits en entrée, en sortie).
  On peut remonter l'état d'un port (link state UP ou DOWN).
  FEDSnmp est modulaire, ce qui fait que si une partie du logiciel plante (un module), cela n'impacte la stabilité des autres. On n'est pas non plus obligé de faire fonctionner tous les modules disponibles si cela ne nous est pas nécessaire. La communication d'un module à l'autre se fait par des fichiers textes.
  FEDSnmp se veut simple à comprendre, à modifier (le code est très commenté). Son architecture modulaire permet d'ajouter facilement des modules pour personnaliser l'outil ou ajouter des fonctionnalités propres à notre supervision. Quand je dis "simplement", comprendre que je me place du point de vue d'un administrateur réseau compétent. Avec FEDSnmp, ne vous faites pas d'illusion : un incompétent passera pour un incompétent.
  FEDSnmp, bien qu'il genère des pages html, ne nécessite pas de serveur web. C'est plus difficile à coder, mais plus simple à gérer et à déployer par la suite. L'utilisation de pages html statiques pour l'affichage permet de rester indépendant de toute présentation graphique (GTK, QT, ...) ; tout le monde a au-moins un navigateur, mais pas forcément la bonne boîte à outils graphique. Dès la version 0.6, l'utilisation de CSS permet de personnaliser plus facilement l'interface si besoin (attention, il faudra alors mettre les mains dans le cambouis).
  FEDSnmp, bien qu'il stocke des données, ne nécessite pas de base de données jusqu'à la version 0.7. En effet, une des principale nouveauté de cette version est l'utilisation de MySQL. Cependant, la communication entre chaque module reste par des fichiers textes. Ce dernier point est modifié dans la version 0.8 : la communication entre les modules passent par la base de données (chacun lit et écrit dans la même base).
  FEDSnmp est très rapide dans les différents traitements (le plus long est d'interroger les éléments actifs), et consomme très très peu de ressources (< 32 Mo de RAM).
  La configuration se fait à la fois dans des fichiers de configurations (pour tout ce qui est listing des éléments actifs à surveiller). On peut ne pas se statisfaire du fonctionnement interne et aller modifier dans le code source. On peut adapter certains paramètres comme la fréquence de scan, mais les paramètres principaux sont tous à définir dans des fichiers de configuration.
  À partir de la version 0.6, on peut voir la consommation de la bande-passante en entrée et en sortie sur une carte du réseau (à générer). C'est une sorte de "network weather map". Cette fonctionnalité a disparu dans la version 0.8 car pas de besoin exprimé pour maintenir cette fonctionnalité. Je peux à nouveau l'intégrer si demandé.
  FEDSnmp est stable en production (tous les bogues que j'ai rencontré ont été résolu, mais si vous en trouvez d'autres, dites-le moi !)
Bref, FEDSnmp suit le principe KISS, avec une architecture modulaire pour être facilement personnalisable.


Comment se procurer FEDSnmp ? :

FEDSnmp est composé de plusieurs modules et fichiers.

Divers :
README : Changelog +  quelques explications sur l'utilisation du logiciel + diverses infos sur la vie du logiciel vu côté développement.
start.sh : Script permettant de créer les fichiers nécessaires à une première exécution des modules et de positionner les droits (ne fonctionne que sous GNU/Linux et Unix).
Historique.txt : Fichier
non nécessaire à l'installation car il est automatiquement créée par la suite, mais je le donne ici pour fournir un aperçu du modèle de stockage des infos.

Fichiers de configuration :
images : Répertoire où se trouvent les différentes images inclues dans la page html.

ConfSurvScanPre.txt : Fichier de configuration du module de scan SurvScanPre.pl.
ConfSurvScanSec.txt : Fichier de configuration du module de scan SurvScanSec.pl.
ConfSurvScanTer.txt : Fichier de configuration du module de scan SurvScanTer.pl.
ConfSurvScanQua.txt : Fichier de configuration du module de scan SurvScanQua.pl.
ConfArborescence.txt : Fichier de configuration définissant l'arborescence des groupes et sous-groupes. Ce fichier est utilisé par SurvAffich.pl et non par Arborescence.pm.
ConfAlarmeDebit.txt : Fichier de configuration du module de surveillance des débits AlarmeDebit.pm.
GeneBD.sh : Création de la base de données et des tables. Configuration des droits (à personnaliser avant exécution !).
AccesBD.txt : Fichier contenant les logins et mots de passe pour accéder à la BD. Fichier très sensible !

Modules principaux :
SurvScan.pl : Lance les threads de scan (au nombre de 4 par défaut) et récupère les données pour faire un pré-traitement avant que SurvAffich.pl les lise pour les afficher.
ModelePage.pm : Afin de simplifier le code de SurvAffich.pl, la génération des pages html (sauf celle de l'accueil) a été sortie de SurvAffich.pl pour être traitée dans ce moddule.
SurvAffich.pl : Ce module s'occupe de l'affichage, des calculs divers à partir des mesures effectuées par SurvScan.pl. Il archive les différentes informations dans une base de données et dans un fichier.
Acquit.pl : Console d'administration CLI. Permet de visualiser et d'acquiter les alarmes, en inter-agissant directement avec la BD.

Modules optionnels :
CorrecRetCpt.pl : Lors des relevés des compteurs, on a parfois des sauts de compteurs qui font que la valeur entre 2 relevés est très très grande (à peu près égale à la valeur max du compteur). Ce module parcours modifie la BD des données archivées, met à zéro les valeurs qui sont au-dessus d'une valeur que l'utilisateur spécifiera. Ne traite que les débits et pas les compteurs d'erreurs.
AlarmeDebit.pm : Ce module est appelé par SurvAffich.pl. Il contrôle les débits (savoir s'ils ne dépassent par des seuils prédéfinis dans le fichier de configuration) et genère une page des alarmes. Cette page est inclue dans la page principale mais peut être consultée séparement.
Historique.pm : Appelé par SurvAffich.pl, ce module se charge d'enregistrer toutes les données remontées dans un premier fichier texte, et les alarmes d'état dans un second (cette fois avec écrasement).
Arborescence.pm : Récapitulatif de l'arborescence telle qu'elle a été configurée. Ce module est optionnel, et permet surtout de s'assurer de la cohérence et la validité de l'arborescence des groupes et sous-groupes que l'on a défini dans le fichier ConfArborescence.txt. Le module génère un fichier .txt étant une arborescence en ASCII Art. Il génère également un fichier .dot qui permet de générer un graphique (.jpeg, .png, ...) avec Graphviz.
AlarmeChgt.pm : Ce module est appélé par SurvAffich.pl. Il surveille le changement d'état d'un équipement, l'enregistre dans une table de la BD (sortie texte également), et génère du code html qui est utilisé par SurvAffich.pl pour afficher ces alarmes. Ainsi, si un équipement passe down puis up, on en garde une trace. Très utile pour l'administrateur qui s'absente de temps en temps.

Comment installer FEDSnmp ? :

Un interpréteur perl doit être présent sur la machine, ainsi que les bibliothèques Time::localtime, SNMP, Date::Calc et DBI. Sous GNU/Debian Etch, Time::localtime est inclus par défaut, Net::SNMP est disponible en installant le paquet libnet-snmp-perl, Date::Calc installant libdate-calc-perl et DBI en installant libdbi-perl.

Un serveur MySQL doit aussi être installé et actif. Sous GNU/Debian Etch, c'est le paquet mysql-server. Se connecter à MySQL et y exécuter le script GeneBD.sh.

Créer un répertoire dans lequel installer le logiciel. Nous l'appellerons FEDSnmp.

Se placer dans ce répertoire et y copier les fichiers de configuration et des modules principaux définis ci-dessus. Y copier aussi les modules optionnels que vous voudrez utiliser.

Créer aussi le répertoire images (y placer les images/icônes).

Donner les droits d'exécution au script start.sh.

Éditez les fichiers ConfSurvScanPre.pl, ConfSurvScanSec.pl,
ConfSurvScanTer.pl, ConfSurvScanQua.pl, ConfArborescence.txt, ConfAlarmeDebit.txt et AccesBD.txt  à votre sauce en vous inspirant du modèle donné dans chaque fichier.

Éditez le fichier SurvAffich.pl et commentez ou décommentez les modules optionnels que vous voulez enlever ou utiliser. Ce sont des lignes ressemblant à MonModule::main().

Lancer start.sh qui créera à la fois les derniers répertoires et fichiers manquants, positionnera les droits adéquats sur tous les fichiers et répertoires et lancera le navigateur pour y charger la page Surv.html (interface de supervision).

Comme indiqué par la sortie de start.sh, lancer les modules dans des consoles séparées :
./SurvScan.pl
./SurvAffich.pl

Il est possible de lancer tous les modules dans la même console en tapant la commande ci-dessous, mais les sorties des modules se mélangent et cela devient illisible (ces sorties sont utiles surtout pour débugguer ou surveiller la bonne exécution des modules) :
./SurvScan.pl &./SurvAffich.pl &

Ensuite lancer la console d'administration :
./Acquit.pl


Introduction rapide à l'utilisation de FEDSnmp (de la page Surv.html) :

  C'est un logiciel très simple à utiliser (un peu moins à configurer, c'est vrai) et intuitif dans son utilisation. Si l'icône précédent un groupe est rouge, c'est qu'au moins une machine dans ce groupe est down. Si l'icône est verte, c'est que tout est OK. Par défaut, l'icône est bleu (état OTHER). On peut également avoir l'icône OTHER si l'équipement n'a pas été scanné depuis plus de 10 minutes. Si l'icône est jaune, c'est qu'un port surveillé est down mais pas l'équipement entier. Sinon, l'icône serait rouge, car l'état général DOWN d'un équipement est prioritaire sur l'état DOWN d'un port.
  Pour passer d'un groupe à un sous-groupe, il suffit de cliquer sur les liens hypertextes. Des équipements peuvent se trouver dans tous les sous-niveaux et pas seulement dans le dernier.
  Pour plus de détails, voir le fichier README ou contactez moi par email.


Sous quelle licence se trouve FEDSnmp ? Quel est son coût ? :

  FEDSnmp ne se présente pas comme un logiciel commercial, mais un outil aidant les administrateurs réseaux. Il est gratuit. Sauf contre rémunération convenue au prélable, je ne n'assure aucun engagement de résultat ou de moyen.
  Ce logiciel est sous licences GPL v3. Les bibliothèques utilisées peuvent être sous une autre licence.

Me contacter :

voir http://lehmann.free.fr, en bas de page


Valid HTML 4.01!