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).
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:
- 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.
2) Pour ce faire, connectez-vous via WinSCP sur votre serveur E.O.N et mettez vos Mibs dans /usr/share/snmp/mibs
.
#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
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 ».
3) Vérifiez les droits du fichier en faisant un clic droit puis « Propriété » pour faire correspondre à l’image ci-dessous.
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 ».
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 ».
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é.
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 ».
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 ».
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.
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 ».
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 ».
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.
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 !!!
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 ».
Choisissez le périphérique que vous venez de créer dans la liste déroulante et valider en cliquant sur « Sauvegarder » en bas.
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).
En le survolant ou en cliquant dessus vous pourrez avoir plus de détails sur les services que vous ajoutez à l’équipement.
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
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
En Résumé :
- Prérequis : Installation d’EyesOfNetwork, compétences en SNMP et Bash, utilisation des outils WinSCP et Putty.
- Configuration des Mibs : Téléchargement et placement des Mibs du fabricant, identification et récupération des valeurs de la métrique désirée.
- Création d’une Commande Nagios : Mise en place d’une commande Nagios pour la métrique.
- Configuration d’un Service : Création d’un service pour traiter la commande Nagios.
- Modèle de Host : Création d’un modèle de Host pour ajouter le Service.
Ajout du Périphérique : Intégration du périphérique à monitorer, attribution d’un modèle. - Export de la Configuration : Exportation nécessaire pour l’utilisation du nouveau host.
- Utilisation de Nagvis : Ajout de l’équipement sur une carte Nagvis pour un suivi visuel.
- Script pour FortiGates : Conseils pour l’utilisation d’un script adapté aux FortiGates.
Bonjour,
Très bon article sur Eyesofnetwork. Merci
Un question: Connaissez-vous la date de sortie de eyesofnetwork release 4.2 ?
Merci d’avance
Bonjour Marcel,
Merci pour ce commentaire très sympathique.
Malheureusement, je n’ai pas la date de sortie officielle de la nouvelle version d’E.O.N. cependant elle devrait arriver très prochainement car initialement prévue fin mai 2015 !
https://www.eyesofnetwork.com/?page_id=290
Bonne journée.
Bonjour Marcel,
La date a changée, la 4.2 est désormais prévue pour Septembre 2015:
https://www.eyesofnetwork.com/?page_id=290&lang=fr
Bonne journée.
Alexandre.
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.
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?
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,
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 ?
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
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.
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.
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
Quelle notification? Les emails vous indiquant qu’un service tombe par exemple?
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
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
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))
Comment avoir l’uptime ?
Généralement de base c’est un check via des requêtes ICMP. Bonne continuation dans votre implémentation.
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
pourriez vous m’aider?
salut , je travaille sur la supervision. je voudrais superviser des switchs et des routers ubiquity et je voudrais utiliser nagios seulement je n’arrive pas à superviser les services comme dhcp sur le router.
je sollicite votre aide.
Bonjour,
Merci à vous pour ce tutos, mais je suis un peu bloqué dans le cadre d’apprentissage. J’aimerais savoir comment procéder pour ajouter un routeur/switch cisco avec EoN.
Je suis sur une version 5.1 sous CentOs en virtuel.
Bonjour, merci pour ce tuto!!
J’ai un soucis!! J’ai rajouté des fichiers MIB Cisco (Switch 3560-CG), et que je teste la commande snmptranslate -On -Td -IR (ex: cpeExtMainPseRemainingPower) et j’avais le message suivant : Unknown object identifier.
Puis j’ai tapé la commande « export MIB=all », et dès que j’ai retesté la commande translate j’ai cette fois « Cannot adopt OID in CISCO-POWER-ETHERNET-EXT-MIB:… » et pareil avec les autres fichiers MIB Cisco, pour finir par « Unknown object identifier: cpeExtMainPseRemainingPower ».
Auriez-vous la solution à mon probème svp?
Merci d’avance