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

Alexandre J.
Alexandre J. 22 commentaires 12e lecture en min

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.

 

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

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:

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

En Résumé :

  1. Prérequis : Installation d’EyesOfNetwork, compétences en SNMP et Bash, utilisation des outils WinSCP et Putty.
  2. 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.
  3. Création d’une Commande Nagios : Mise en place d’une commande Nagios pour la métrique.
  4. Configuration d’un Service : Création d’un service pour traiter la commande Nagios.
  5. 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.
  6. Export de la Configuration : Exportation nécessaire pour l’utilisation du nouveau host.
  7. Utilisation de Nagvis : Ajout de l’équipement sur une carte Nagvis pour un suivi visuel.
  8. Script pour FortiGates : Conseils pour l’utilisation d’un script adapté aux FortiGates.
Partager cet article
Par Alexandre J. Expert Informatique et Directeur des Systèmes d'Information
Alexandre JOUFFROY est un expert en informatique. Diplômé en "Responsable en Ingénierie des Réseaux", il a créé sa propre entreprise de dépannage, conseil et formation informatique. Fort d'une expérience chez Scasicomp et actuellement Directeur des Systèmes d'Information au sein d'un grand Groupe, il est également certifié en Cisco, Microsoft et Symantec. Son dynamisme et sa réactivité en font un atout précieux pour toute entreprise.
22 commentaires