[Supervision] Ajouter une métrique personnalisée sur EyesOfNetwork

Je pense que vous serez tous d’accord avec moi, à savoir, qu’à l’heure actuelle, une supervision est obligatoire au sein d’un Système d’Information.

C’est pour cela que j’ai décidé de vous présenter dans cet article, comment ajouter une métrique personnalisée sur EyesOfNetwork (E.O.N).

Qu’est-ce qu’Eyes Of Network ?

Eyes Of Network (E.O.N.) est une solution Open Source qui regroupe un système d’exploitation et un ensemble d’applications utiles à la supervision.

Tous est prêt à l’emploi.

Je ne vais pas développer ici car ce n’est pas le sujet mais vous pouvez aller jeter un œil sur le site Web et l’installer:

https://www.eyesofnetwork.com/?lang=fr

Les pré-requis pour mettre en place une métrique personnalisée

  • Un serveur avec Eyes Of Network installé, c’est mieux 🙂
  • Les Outils WinSCP et Putty
  • Avoir un équipement à monitorer sur lequel vous avez activé le SNMP et vous avez ajouté la communauté. Il est fortement recommandé de changer la communauté par défaut et d’autoriser le serveur. Dans les exemples ci-dessous, j’utiliserai « MA_COMMUNAUTE » et en version SNMP 2c (Vous trouverez toutes les informations sur le SNMP et ses versions ICI par exemple.) et je vais monitorer le pourcentage de RAM utilisé par un FortiGate F60 D
  • Des connaissances en scripting Bash sont un plus…pour ma part ça a été dur car ce n’est pas mon domaine…mais cela servira uniquement si vous voulez réaliser des métriques plus avancées, ce qui devient essentiel pour certains matériels.

 

Mise en place:

Etape 1: Téléchargez la ou les Mibs du constructeur et placez la dans le dossier prévu à cet effet.

1) Les Mibs, je les récupère directement sur mon boitier dans l’interface Web. Allez dans « Config \ SNMP » pour paramétrer votre communauté et autres informations et pouvoir télécharger les deux Mibs.

FortiGate

2) Pour ce faire, connectez-vous via WinSCP sur votre serveur E.O.N et mettez vos Mibs dans /usr/share/snmp/mibs. Dans mon exemple, j’ai besoin de deux Mibs (Cf. image ci-dessous) car j’ai des dépendances entre les deux. Laissez le nom tel qu’il est et remplacez l’extension « .mib » en « .txt ».

Mibs

3) Vérifiez les droits du fichier en faisant un clic droit puis « Propriété » pour faire correspondre à l’image ci-dessous.

Mib2

Etape 2: Identifiez la métrique que vous voulez monitorer

1) Dans la Mib, recherchez la métrique que vous souhaitez monitorer et comment doivent être interprétés les résultats.

Dans notre cas, pour la RAM du FortiGate, j’ai retrouvé dans la Mibs FORTINET-FORTIGATE-MIB.txt le paragraphe suivant:

fgSysMemUsage OBJECT-TYPE
SYNTAX Gauge32 (0..100)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current memory utilization (percentage)"
::= { fgSystemInfo 4 }

Ma métrique sera donc fgSysMemUsage.

2) Traduisez le nom de la métrique en OID

Pour ce faire, rien de plus simple, connectez-vous via Putty sur votre serveur E.O.N. et tapez la commande « snmptranslate -On -IR fgSysMemUsage » qui vous permettra d’avoir son OID

# snmptranslate -On -IR fgSysMemUsage
.1.3.6.1.4.1.12356.101.4.1.4

Si vous souhaitez revoir toutes les informations faites un:

# snmptranslate -On -Td -IR fgSysMemUsage
.1.3.6.1.4.1.12356.101.4.1.4
fgSysMemUsage OBJECT-TYPE
-- FROM FORTINET-FORTIGATE-MIB
SYNTAX Gauge32 (0..100)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Current memory utilization (percentage)"
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) fortinet(12356) fnFortiGateMib(101) fgSystem(4) fgSystemInfo(1) 4 }

Etape 3: Utilisez une commande pour récupérer la valeur de la métrique

Une fois l’OID en votre possession, vous pouvez lancer cette commande pour récupérer la valeur de votre métrique:

snmpget -c MA_COMMUNAUTE -v MA_Version  MonIPDeMachineAMonitorer .1.3.6.1.4.1.12356.101.4.1.4

# snmpwalk -c MA_COMMUNAUTE -v 2c 192.168.62.250 .1.3.6.1.4.1.12356.101.4.1.4
FORTINET-FORTIGATE-MIB::fgSysMemUsage.0 = Gauge32: 30

Ce qui indique que j’utilise 30% de ma RAM.

Pour que ce soit plus facile à lire, ajouter | cut -d’:’ -f 4 à la fin de la commande pour récupérer uniquement la valeur 30.

# snmpwalk -c MA_COMMUNAUTE -v 2c 192.168.62.250 .1.3.6.1.4.1.12356.101.4.1.4 | cut -d':' -f 4
30

Etape 4: Créez une « Nagios Command »

Allez dans la partie « Administration » puis au niveau du menu latéral gauche choisissez « Nagios \ Configuration ».

Cliquez ensuite sur « Nagios Command ».

NagiosCommand

Le mieux est en fait de dupliquer un service existant et de le modifier.

Pour ce faire, cochez une « nagios command », sélectionnez « Duplicate » puis validez par « Submit ».

NagiosCommand2

Cela duplique avec le même nom mais ajoute un « -NuméroAleatoire » au bout. Cliquez donc sur l’objet dupliqué pour l’éditer et le nom, la commande et la description choisie.

Dans la commande utilisez $HOSTADDRESS$ comme variable permettant d’utiliser l’adresse IP de l’équipement sur lequel le check est effectué.

Nagioscommand3

Voilà votre « Nagios command » est prête !

Etape 5: Création d’un Service traitant la commande

Pour créer un service, faites comme pour une « Nagios command », à savoir, allez dans  la partie « Administration » puis au niveau du menu latéral gauche choisissez « Nagios \ Modèles » puis descendez jusqu’à la rubrique « Services ».

Services

Egalement, faites une duplication d’un service et éditez le afin de modifier ceci:

  • Nom et Description == > puis faire un « update General »
  • Allez sur l’onglet « Checks » puis cliquez sur « Edit » et cochez la case « provide value » pour la « check command » et mettant la commande préalablement créée et faire « update check ».

Services2

Etape 6: Création du modèle de Host pour ajouter le Service

Pour créer un modèle de Host, faites comme pour service, allez dans  la partie « Administration » puis au niveau du menu latéral gauche choisissez « Nagios \ Modèles » et tout en haut vous verrez la catégorie « Host Templates ».

Dupliquez un template…Vous commencez à connaître….et éditez-le pour vous rendre à l’onglet « Service » et cliquez sur « Create a New Service For This Template ». Remplissez les champs et ajoutez votre « Service » dans la partie Template et validez avec « Add Template » puis « Add service » en bas. Par ailleurs, vous auriez pu directement mettre la check commande sans passer par l’étape 5.

Host

Vous avez aussi des notions de variables par exemple $ARG1$ que vous pouvez utiliser dans vos commandes.

Une fois validé, vous verrez apparaître votre service et si vous avez fait une erreur vous pouvez le supprimer en cliquant du « Delete ».

Host2

Etape 7: Ajoutez le périphérique à monitorer et attribuez-lui un modèle.

Toujours dans  la partie « Administration » et au niveau du menu latéral gauche choisissez « Nagios \ Equipements » puis dupliquez un host et remplacez les informations de nom, ip et description et validez par « update general »

Rendez-vous ensuite sur l’onglet « inheritance », sélectionnez votre Template créé à l’étape précédente puis validez par « Add template ».

Host3

Etape 8: Exportez la configuration

Si vous souhaitez pouvoir utiliser votre nouveau host, vous devez « exporter » la configuration. Pour ce faire, rien de plus simple, allez dans  la partie « Administration » et au niveau du menu latéral gauche choisissez « Nagios \ Appliquez la configuration » puis cliquez sur « restart » si vous avez déjà votre job d’export sinon créez en un rapidement en dessous.

restart

Cet export doit obligatoirement se solder par un « Complete » sinon cela indique qu’il y a une erreur de configuration dans vos Templates. Personnellement c’est pour cela que je duplique les Template à chaque fois car j’ai déjà eu des erreurs sur les créations incompréhensibles…. J’ai donc pris cette habitude qui fonctionne pas mal !!!

restart2

Etape 9: Ajoutez l’équipement sur une carte Nagvis

Toujours dans la partie « Administration » et dans le menu latéral gauche mais cette fois-ci cliquez sur « Cartographie \ Nagvis » et cliquez sur votre carte.

Ensuite dans le menu « Editer la carte », vous devez cliquer sur « Ajouter une icône » puis « host ».

nagvis

Choisissez le périphérique que vous venez de créer dans la liste déroulante et valider en cliquant sur « Sauvegarder » en bas.

nagvis2

Cette icône (coche blanche dans un carré vert ci-dessous) sera dynamique afin de pouvoir en un coup d’œil repérer que tout est ok (vert), en warning (orange) ou critical (rouge) et vous pouvez aussi ajouter une « Figure » (ici j’ai mis le logo Fortinet).

nagvis3

 

En le survolant ou en cliquant dessus vous pourrez avoir plus de détails sur les services que vous ajoutez à l’équipement.

nagvis4

Conclusion:

Vous savez maintenant monitorer un service qui ne l’était pas de base sur Eyes OF Network et ça fonctionne plutôt pas mal !!

La mise en place peut vous paraître un peu fastidieuse mais après l’avoir fait une ou deux fois ça va assez vite.

N’hésitez pas à poster des avis sur l’article, questions ou encore commentaires j’y répondrai avec plaisir.

Petit plus:

Voici un script que j’ai adapté pour mes FortiGates donc si ça vous tente, amusez-vous avec et surtout améliorez-le !!!!

Il suffit de le mettre dans /srv/eyesofnetwork/nagios-3.5.1/plugins/ avec les droits suivants:

Script

Ensuite vos « nagios Command » seront de la forme:

$USER1$/Check_Fortigate.sh -v 2c -C MA_COMMUNAUTE -H $HOSTADDRESS$ --fonction RAM -w 85 -c 95

Cela correspond à :

$USER1$ : Variable défini dans "Nagios \ Configuration \ Nagios ressources" ici "/srv/eyesofnetwork/nagios/plugins"

$HOSTADDRESS$ : Variable permettant d’utiliser l’adresse IP de l’équipement sur lequel le check est effectué, attention à bien mettre le « -H » en utilisant le script.

— fonction RAM: pour checker la RAM, les autres fonctions disponibles dans ce script sont CPU, FortiVersion, RAM, Disk et VPNStatut qui check les tunnels IpSec.

-w : permet de définir un seuil de Warning

-c : permet de définir un seuil critical

Téléchargement du script

18 pensées sur “[Supervision] Ajouter une métrique personnalisée sur EyesOfNetwork

  1. Marcel G Répondre

    Bonjour,
    Très bon article sur Eyesofnetwork. Merci

    Un question: Connaissez-vous la date de sortie de eyesofnetwork release 4.2 ?

    Merci d’avance

  2. Blaise Joel Répondre

    Bonjour, je suis nouveau sur EyesOfNetwork je souhaiterais l’installer afin de superviser notre environnement mais je ne sais comment m’y prendre. mon gros soucis c’est comment configurer la partie SNMP. mon adresse privé 192.168.1.0/24

    Celui qui dit qu’il ne sait pas veut apprendre.

    • Alexandre J. Auteur de l’articleRépondre

      Oup’s désolé pour le temps de réponse…Je n’avais pas fait attention… Pourriez-vous être plus précis pour savoir sur quels environnements vous souhaitez activer le snmp?

  3. kaio Répondre

    Bonjour,
    Bravo pour ce super Tuto
    Lorsque je rajoute un MIB, et que je teste la commande snmptranslate -O -Td -IR …. j’ai le message suivant :
    Unknown object identifier:

    Avez-vous des pistes ?
    Merci par avance,

  4. Alexandre J. Auteur de l’articleRépondre

    Bonjour kaio, merci pour le compliment.
    Etes-vous sur que l’OID est le bon dans votre commande?
    Avez-vous essayé avec -On plutôt que -O ?

    • kaio Répondre

      Merci de m’avoir répondu,
      Du coup j’ai trouvé la solution, A priori il faut executer la commande :
      export MIBS=all
      J’ai ensuite réussi un bon résultat lors de ma commande snmptranslate

  5. Ines Répondre

    Bonjour,
    Très bon article sur EON.
    Ma question : je veux utiliser 3 communautés snmp DS mon système
    Il me semble que on ne peux utiliser qu une seul, est ce que on peut modifier le nombre de communauté ou pas.

    • Alexandre J. Auteur de l’articleRépondre

      Bonjour, dans les variables on ne peut en positionner qu’un seul je pense. Cependant, vous pouvez mettre la valeur dans une commande et lié cette commande à vos équipements.

  6. toure Répondre

    moi je suis un etudiant mon projet porte sur la supervision reseau et j’ai pris eyesofnetwork mais la notification ne part pas si quelqu’un pourait m’aider c’est serait super interessant pour moi.
    merci pour votre bonne comprehension et colaboration

    • Alexandre J. Auteur de l’articleRépondre

      Quelle notification? Les emails vous indiquant qu’un service tombe par exemple?

  7. julien.G Répondre

    Bonjour,

    Tout d’abord, merci pour votre article, qui est clair, et précis !! beau travail ! Les gens comme vous aident les gens comme moi 🙂

    Après avoir suivie ton tuto a la lettre, pour ajouter une sonde de température Sensor prob2 AKCP a mon EON, cela fonctionnne… mais le service : Check temperature est en STATUS : Warning, avec un « Check your options!  » je ne vois ou je suis bloqué …

    si des fois tu as des pistes….

    En te remerciant

    Cordialement
    Julien.G

  8. aurma97 Répondre

    Bonsoir, moi j’ai un problème avec les notifications par SMS avec Gnokki, si quelqu’un peut me débloquer ca me serait d’une grande aide. Merci

  9. Placide Répondre

    Bonjour,

    Excellent script nagios. Dans le’outil de supervision eyesofnetwork, cela marche bien.

    Cependant, attention au format du pourcentage du Disk. Pour avour la valeur en %, sur la ligne 219 du script, remplacer :
    DiskPourcent=$(($DiskUsage/$DiskCapacity))
    Par :
    DiskPourcent=$((100*$DiskUsage/$DiskCapacity))

    • Alexandre J. Auteur de l’articleRépondre

      Généralement de base c’est un check via des requêtes ICMP. Bonne continuation dans votre implémentation.

  10. NIKIEMA Répondre

    bonjour très interessant votre tuto j’utilise EON pour mon projet de fin d’etude LICENCE seulement j’ai des difficultes pour la configuration

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *