User Tools

Site Tools


reseau:monitoring_avance

Monitoring GLPI Avancé

Utilisation de plugins externes

Les plugins sont des extensions autonomes de Nagios qui permettent de surveiller n'importe quel élément..

Les plugins traitent les arguments de ligne de commande, effectuent une vérification spécifique, puis renvoient les résultats à Nagios Core.

Ils peuvent être des binaires compilés (écrits en C, C ++, etc) ou des scripts exécutables (shell, Perl, PHP, etc).

Depuis l'extension Monitoring de GLPI (à ne pas confondre avec les plugins de NAGIOS) on peut :

  • utiliser n'importe quel plugin NAGIOS, puis traiter les résultats.
  • utiliser n'importe quel script/exécutable qui fournisse un résultat respectant le formalisme de NAGIOS

Deux exemples d'intégration seront détaillés:

  • celui d'un plugin Nagios
  • celui d'un plugin autonome

Exemple d'Intégration d'un plugin

Le plugin check_nwc_health est utilisé pour vérifier l'utilisation de l'interface et la santé du matériel (CPU, mémoire, alimentation, ventilateurs, température) les composants du réseau.

Installation du plugin

check_nwc_health étant un module autonome il suffit de l'extraire dans la bibliothèque des plugins de SHINKEN pour pouvoir l'utiliser dans le plugin MONITORING de GLPI.

  tar xzf /check_nwc_health-6.4.1.6.tar.gz
  /check_nwc_health-6.4.1.6/plugins-scripts/check_nwc_health /usr/local/nagios/libexec/check_nwc_health

Ajout de la commande dans GLPI

Dans la vue par défaut du plugin Monitoring appuyer sur = pour accéder à la vue système

Dans le menu Commandes ajouter une élément +

Créer la commande en indiquant

  • Le Nom : Check nwc int
  • Le Nom de commande : check_nwc_health992224191
  • La Ligne de commande : $PLUGINSDIR$/check_nwc_health --hostname $HOSTADDRESS$ --community $ARG1$ --mode $ARG2$ $ARG3$ --morphperfdata '(?:.\*)_(.\*_.\*)'='$1'

Puis Ajouter

Renseigner les arguments

Chaque item défini avec un $ARG#$ désigne un argument variable.

Dans l'exemple la commande check_nwc_health attend 3 arguments en plus de l'adresse IP de l'hôte servie par la variable $HOSTADDRESS$

  • la communauté SNMP $ARG1$
  • le mode $ARG2$
  • l'interface $ARG3$

Retourner dans la commande pour indiquer les libellés à chacun d'eux

puis Sauvegarder

Les valeurs des arguments de la commande qui doivent être renseignés pour l'exécution doivent être formalisées : $ARG#$ ou # représente un le numéro d'ordre de l'argument parsé lors de l'exécution.

Intégration d'un plugin autonome

Le plugin Monitoring de GLPI peut exécuter tout type de commande.

Sans mise en forme le retour de la commande est affiché tel que, cependant si le contrôle retourne des données qui respectent le modèle PERFDATA de NAGIOS ces données peuvent être récupérées pour être présentées de manière graphique.

L'exemple traité ici est la collecte des données de replication du DataDomain, il présentesur :

  • la mise en oeuvre de collectd
  • la mise en oeuvre de datadomain-monitoring
  • l'intégration du plugin dans GLPI

Installation de collectd

Collectd est un démon qui collecte à intervalles réguliers des statistiques sur les performances d'un système et qui offre les mécanismes pour stocker les valeurs récupérées de plusieurs façons, comme par exemple des fichiers Fichiers RRD (Reduced Resolution Dataset).

Il est fourni avec :

  • un frontend web qui permet une présentation graphique des fichiers RRD.
  • le plugin collect-nagios qui permet de mettre en forme les données collectées à destination de NAGIOS

Récupérer le module mod-collectd pour SHINKEN

  shinken install mod-collectd-master --local|

Installer le plugin de confection des graphes rrdtool

  yum install collectd-rrdtool|

Editer le fichier /etc/collectd.conf pour vérifier/renseigner les Directory utilisées lors de l'installation :

  #
  # Config file for collectd(1). # Please read collectd.conf(5) for a list of options.
  # http://collectd.org/
  #
  ##############################################################################
  # Global #
  #----------------------------------------------------------------------------#
  # Global settings for the daemon. #
  ##############################################################################
  Hostname "localhost"
  FQDNLookup true
  BaseDir "/var/lib/collectd"
  PIDFile "/var/run/collectd.pid"
  #PluginDir "/usr/lib/collectd"
  TypesDB "/usr/share/collectd/types.db"|

Activer le font-end web

Copier coller le répertoire /collection3 à la racine du serveur web

cp /usr/share/collectd/collection3 /var/www/html/ -r

Editer le fichier /var/www/html/etc/collection.conf pour renseigner DataDir (emplacement des fichiers rrd produits par collectd)

  DataDir "/var/lib/collectd/"
  GraphWidth 400
  #UnixSockAddr "/var/run/collectd-unixsock"

Lancer le démon

  service collectd start

Mise en oeuvre de datadomain-monitoring

datadomain-monitoring est un script perl qui permet de surveiller la disponibilité et de mesurer les performances des Data Domain de EMC à partir de collectd.

La mise en oeuvre de ce script nécessite :

  • l'intégration de la MIB du DATADOMAIN
  • l'activation du plugin SNMP dans collectd
  • l'ajout de nouveaux types de données dans collectd

Intégrer la MIB du DATADOMAIN

Télécharger la MIB du Datadomain et la placer dans /usr/share/snmp/mibs/

Le script est fourni avec un exemple de collectd.conf à intégrer dans /etc/collectd.conf

  cp /datadomain-monitoring-master/nagios_check/check_datadomain.cfg /etc/shinken/|

Pour activer le plugin SNMP :

  <Plugin snmp>
  #replication
  <Data "dd_replication">
  Type "dd_replication"
  Table true
  Scale 0.0039062
  Instance "DATA-DOMAIN-MIB::replContext"
  Values "DATA-DOMAIN-MIB::replPreCompBytesSent" "DATA-DOMAIN-MIB::replPostCompBytesSent" "DATA-DOMAIN-MIB::replPreCompBytesRemaining" "DATA-DOMAIN-MIB::replPostCompBytesReceived"
  </Data>
  # HOST
  <Host "dd4200.sns.dgfip">
  Address "xx.xxx.xxx.xxx6.250"
  Version 2
  Community "public"
  Collect "dd_replication" "dd_systat" "dd_fsspace" "ifmib_if_octets64" "ifmib_if_packets64"
  Interval 60
  </Host>
  </Plugin>

Ajouter les nouveaux types de données dans collectd

Le script est fourni avec un exemple de my_types.db à intégrer dans /usr/share/collectd/types.db

 cat /datadomain-monitoring-master/collectd/my_types.db >> /usr/share/collectd/types.db

Pour définir les nouveaux types de données :

  dd_space size:GAUGE:0:U used:GAUGE:0:U available:GAUGE:0:U
  dd_systat cpuAvgPercentageBusy:GAUGE:0:100 cpuMaxPercentageBusy:GAUGE:0:100 nfsOpsPerSecond:GAUGE:0:U nfsIdlePercentage:GAUGE:0:100 nfsProcPercentage:GAUGE:0:100 nfsSendPercentage:GAUGE:0:100 nfsReceivePercentage:GAUGE:0:100 cifsOpsPerSecond:GAUGE:0:U diskReadKBytesPerSecond:GAUGE:0:U diskWriteKBytesPerSecond:GAUGE:0:U diskBusyPercentage:GAUGE:0:100 nvramReadKBytesPerSecond:GAUGE:0:U nvramWriteKBytesPerSecond:GAUGE:0:U replInKBytesPerSecond:GAUGE:0:U replOutKBytesPerSecond:GAUGE:0:U
  dd_replication PreCompBytesSent:GAUGE:0:U PostCompBytesSent:GAUGE:0:U PreCompBytesRemaining:GAUGE:0:U PostCompBytesReceived:GAUGE:0:U

Chaque source de données (Data-source) est définie par un quadruple composé du nom de la source de données, du type, des valeurs minimale et maximale, délimités par deux-points (“:”): ds-name: ds-type: min: max:

La longueur du nom de la source de données est limité, dans l'exemple les ds-name :

- PreCompBytesRemaining a été raccourci en PreCompBytesRemain
- PostCompBytesReceived a été raccourci en PostCompBytesRecv

Redémarrer collectd

  service collectd restart

Tester le plugin

Dés lors collectd doit collecter les informations de performance sur l'host.

Pour s'en assurer on peut consulter les graphiques produits sur le front-end web à l'uRL http://addresse-ip-duserveur/collection3/bin/index.cgi

Sélectionner le nom de l'hôte renseigné dans le plugin SNMP Host "dd4200.sns.dgfip" pour afficher une représentation graphique des données collectées :

  collectd-nagios -s /var/run/collectd-unixsock -n snmp/dd_replication-1 -H dd4200.sns.dgfip  

  OKAY: 0 critical, 0 warning, 4 okay | PreCompBytesSent=1444503000000.000000;;;; PostCompBytesSent=851353600.000000;;;; PreCompBytesRemain=0.000000;;;; PostCompBytesRecv=69928410000.000000;;;;

Intégration du plugin collectd-nagios

Dés lors il est possible d'intégrer le plugin collectd-nagios dans le module MONITORING pour afficher les données collectées dans GLPI

Installer le plugin

Télécharger le plugin collectd-nagios puis l'extraire dans la bibliothèque des plugins de SHINKEN pour pouvoir l'utiliser dans le plugin MONITORING de GLPI.

Définir un modèle graphiqe

Se reporter à la section du guide pour créer un modèle graphique adapté aux données collected

Nom :		check_dd_replication	
Exemple de perfdata pour ce contrôle :  PreCompBytesSent=302719200000000.000000;;;; PostCompBytesSent=187767000000.000000;;;; PreCompBytesRemain=0.000000;;;; PostCompBytesRecv=16139660000000.000000;;;; 	
Nom :		PreCompBytesSent
Nom dynamique ?	Non
Position	1	
Valeur 1 	PreCompBytesSent
Valeur 2 	value1.2
Valeur 3 	value1.3
Valeur 4 	value1.4

Pour définir un nouveau model graphique il faut récupérer un exemple de données restituées par la commande lancée dans un terminal:

collectd-nagios -s /var/run/collectd-unixsock -n snmp/dd_replication-1 -H dd4200.sns.dgfip

puis récupérer la sortie

OKAY: 0 critical, 0 warning, 4 okay | PreCompBytesSent=1421240000000.000000;;;; PostCompBytesSent=840693300.000000;;;; PreCompBytesRemain=0.000000;;;; PostCompBytesRecv=69277320000.000000;;;;

Activer l'affichage des données collectées

Dans la vue Métriques cliquer sur la prévisualisation attachée au composant testé puis ressortir

Utilisation avancée des composants

Les composants sont une association de 3 objets , qui définiront un contrôle avec : •

  • Une commande (ping par exemple)
  • Un calendrier (jours et plage horaire)
  • Une définition de contrôle ( fréquence a laquelle les contrôles sont effectués, au bout de combien d'essais un service ou un hôte est déclaré “down” et le temps entre chaque essai). On définit ici seulement quel service, quel matériel on veut monitorer chez les hôtes selon quel calendrier et à quelle fréquence. On associera ensuite un ou plusieurs de ces composants à des hôtes, dans le Catalogue de composants.

Ajout d'hôtes dynamiques

La définition de règles permet d'ajouter dynamiquement des hôtes à un catalogue de composants.

L'exemple suivant décrit la procédure permettant d'ajouter dynamiquement des équipements réseau de type HP 5500 EI.

Les règles permettent d'ajouter dynamiquement des règles en fonction de caractéristiques et/ou d'autres éléments attachés aux hôtes (contrats, plugins, …)

La règle ajoutée dans cet exemple prend en compte la caractèrisque du modèle d'un équipement réseau /

  • Si le modèle de l'équipement et HP 5500 EI alors l'équipement est automatiquement rajouté au catalogue
    ### Ajouter une rêgle

Dans le catalogue de composants aller dans le menu Règles

sélectionner le type de l'équipement

Puis cliquer sur Ajouter

Renseigner les composants de la règle

  • Sélectionner la caractéristique de l'équipement à analyser
  • Sélectionner l'opérateur (contient / est/ n'est pas)
  • Sélectionner ou saisir le contenu de la caractéristique (ici le modèle)

    ### Tester la règle

Appuyer sur Rechercher

Une liste d'hôtes correspondant aux critères de la règle doit s'afficher

Enregistrer la règle

Le nombre d'hôtes dynamiques doit s'incrémenter dans le menu du catalogue

Gestion des notifications

Le plugin Monitoring de GLPI permet de notifier automatiquement les changements suivants :

  • Notifier quant l'état d'un hôte devient DOWN :
  • Notifier quant l'état d'un hôte devient UNREACHABLE :
  • Notifier quant un hôte redevient normal (état OK) :
  • Notifier quand l'état des hôtes commencent et arrêtent d'osciller :
  • Notifier lorsque l'arrêt programmé de l'hôte commence et se termine:
  • L'utilisateur ne va pas recevoir de notifications de type hôte :

La chaîne de notification repose sur 3 objets :

  • Gabarit de contact
  • Host notifications template
  • Commande de notification

Créer un gabarit de contact

Un gabarit de contact permet de décrire la façon dont va étre notifié un contact.

Dans, le menu Gabarits de contact appuyer sur + pour créer un gabarit

  • Activer la notification pour les hôtes
  • Renseigner la période
  • Renseigner les éléments à notifier par défaut
    Sauvegarder le gabarit

Créer un template hosts notifications

Un Hosts Noticiations template permet de décrire les événements déclencheurs de la notification .

Dans, le menu Hosts Noticiations templates appuyer sur + pour créer un template

  • Activer la notification
  • Renseigner la période
  • Choisir les éléments déclencheurs

Sauvegarder le template

Assigner le rôle de notification

Dans le menu »Administration»Utilisateurs» de GLPI sélectionner l'utilisateur auquel seront adressées les notifications

Dans le menu Monitoring-contact Appuyer sur Gérer cet utilisateur dans le système de Monitoring

Choisir le gabarit de contact

Puis Sauvegarder

Activer la chaîne notification**

Dans le menu contacts du Catalogue de composants assigner le contact

Si les événements déclencheurs doivent être différents de ceux définis dans le gabarit de contact

Assigner dans Catalogue de composants Hosts notification options

Utilisation avancée des vues

Nagios est conçu pour permettre aux plugins de renvoyer des données de performance (PERFDATA) optionnelles en plus des données d'état normales, ainsi que pour permettre de transmettre ces données de performance à des applications externes pour traitement.

Types de données de performance

Il existe deux catégories de données de performance qui peuvent être obtenues à partir de Nagios:

  • Données de performance de contrôle
  • Données de performance du plugin

Les données de performance de contrôle

Les données de performance de contrôle sont des données internes qui se rapportent à l'exécution réelle d'un contrôle d'un hôte ou de service. Cela peut inclure des éléments tels que la latence du contrôle de service (c'est-à-dire, la “fin” du contrôle de service à partir de son heure d'exécution planifiée) et le nombre de secondes nécessaires à l'exécution d'un contrôle d'hôte ou de service. Ce type de données de performance est disponible pour toutes les vérifications effectuées

Les données de performance du plugin

Les données de performance du plugin sont des données externes spécifiques au plugin utilisé pour effectuer le contrôle de l'hôte ou du service. Les données spécifiques au plugin peuvent inclure des éléments tels que le pourcentage de perte de paquets, l'espace disque disponible, la charge du processeur, le nombre d'utilisateurs actuels, etc. - ou tout type de mesure que le plugin mesure lorsqu'il s'exécute. Les données de performance spécifiques au plug-in sont facultatives et peuvent ne pas être prises en charge par tous les plugins.

Formalisme des données de performance du plugin

Au minimum, les plugins Nagios doivent renvoyer une seule ligne de texte lisible par l'homme qui indique l'état de certains types de données mesurables. Par exemple, le plugin check_ping renvoi une ligne de texte comme suit:

  PING ok - Perte de paquets = 0%, RTA = 0.80 ms

Les plugins peuvent renvoyer les données de performances facultatives dans leur sortie en envoyant la chaîne de texte normale, lisible par l'utilisateur, généralement suivie d'un caractère pipe (|), puis d'une chaîne contenant une ou plusieurs données de performances métriques .

Prenons le plugin check_ping comme exemple et supposons qu'il a été amélioré pour renvoyer le pourcentage de perte de paquets et le temps d'aller-retour moyen en tant que métriques de données de performances.

Exemple de sortie du plugin pourrait ressembler à ceci:

  PING ok - Perte de paquets = 0%, RTA = 0,80 ms | percent_packet_loss = 0, rta = 0,80

Lorsque Nagios verra ce format de sortie de plugin, il divisera la sortie en deux parties:

Tout ce qui précède le caractère pipe est considéré comme la sortie du plugin “normal” et sera stocké dans la macro OUTPUT

Tout ce qui est après le caractère pipe est considéré comme les données de performance spécifiques au plugin et sera stocké dans la macro PERFDATA

Dans l'exemple ci-dessus,

  1. la macro OUTPUT contiendrait : PING ok - Perte de paquets = 0%, RTA = 0.80 ms
  2. la macro PERFDATA contiendrait : percent_packet_loss = 0, rta = 0,80

Enrichissement des graphiques

Le plugin de monitoring peut utiliser toutes les données de performance fournies par les commandes et dont la sortie respectent le formalisme défini ci dessus afin de produire des vues graphiques.

Le plugin monitoring de GLPI propose divers type de graphiques :

  1. Les diagrammes des métriques
  2. Les cartes des Weathermap

Les modèles graphiques

Les modèles de graphiques permettent de représenter les données de performance (PERFDATA) sous une représentation graphique

Création des modèles graphiques

Le monitoring peut-être visualisé en « temps réel » via la remontée des derniers contrôles ou sur une période via les graphiques RRDs.

Le plugin Monitoring fourni un certain nombre de modèles graphiques qu'il est possible d'enrichir.

  • Entrer dans le menu système du plugin =
  • Sélectionner le menu Modèle de graphique, puis appuyer sur +
  • Indiquer Nom et Exemple de perfdata pour ce contrôle.
  • Puis cliquer sur Ajouter
  • Renseigner les champs des valeurs parsées sur la ligne de commande pour indiquer un libellée humainement interprétable.

Pour récupérer l'exemple de perfdata lancer la commande en local pour en récupérer la sortie.

Utilisation des modèles graphiques

Le modèle peut être intégrer dans un composant cible afin de visualiser en « temps réel » la remontée des derniers contrôles ou sur une période via les graphiques RRDs.

  • Dans Gabarit (pour la génération des graphiques) sélectionner le modèle graphique à utiliser
    • Activer la génération de graphiques
      • Dans la vue Métriques la prévisualisation n'affiche pas encore le graphique
      • Pour activer la génération graphique entrer dans le graphique
    • Adapter les graphiques, Dans le graphique aller dans Options et adapter les informations pour n'afficher que les valeurs significative et des libellés significatifs
    • Sauvegarder le modifications

    La vue affichée prend en compte les modifications

Les weathermap

Le plugin Monitoring de GLPI offre la possibilité à partir des données RRD, dessiner une carte réseau et d'afficher des données de performance. (WEATHERMAP)

En fonction on peut donc avoir une vue en temps réel de l'état d'une architecture réseau du type :

Création d'une Weathermap

Le processus de création des weathermaps se décompose en 3 étapes :

  • Ajout d'une Weathermap
  • Ajout des noeuds qui représentent les équipements
  • Ajout d'un liens entre ces équipements
    #### Créer une Weathermap
  • Dans la vue par défaut du plugin Monitoring appuyer sur = pour accéder à la vue système
  • Dans le menu appuyer sur + pour ajouter un nouvel objet
  • Donner un Nom et définir les dimensions de l'image qui sera générée

Les dimensions doivent rester dans les limites de l'affichage standard de 1024×768

Ajout des noeuds

* Retourner dans la Weathermap 
* Pour créer les noeuds sélectionner le type (ex Matériel Réseau) et le nom de l'équipement (ex : sf034_A5500_013SNS1)
* Puis cliquer sur **Ajouter** 
* Répéter cette opération pour ajouter un second noeud

Au minimum deux noeuds doivent être définis pour pouvoir créer un lien

Ajout d'un lien

Définir les liens à superviser

  • Ajouter un lien entre les deux équipements (noeuds)
  • Pour créer un lien indiquer :
    • le noeud source (un interface)
    • Le noeud cible
    • La bande passante (1G, 100M)
  • Puis cliquer sur Ajouter

Intégration dans les vues

L'exemple suivant décrit l'intégration d'une Weathermap :

  • Dans une vue spécialement créée
  • Dans le tableau de bord

Création d'une vue

  • Dans la vue par défaut du plugin Monitoring appuyer sur = pour accéder à la vue système
  • Dans le menu Vues appuyer sur + pour créer une nouvelle vue
    • Indiquer le nom
    • Activer l'affichage de la vue dans le dashboard (vue frontale)
    • Pour enrichir la vue de compteurs choisir les compteurs
    • Activer la vue
  • Puis cliquer sur ajouter
  • Pour sélectionner les items à afficher, retourner dans la vue créée et dans le menu items ajouter les items à afficher :
    • Choisir le type de l'item
    • Choisir l'item à afficher
  • Puis enregister la vue

Affichage dans le tableau de bord

Modifier les options d'affichage de la vue

  • Retourner dans la vue pour :
    • Activer l'affichage de la vue dans le tableau de bord
      • Enregister les modifications
reseau/monitoring_avance.txt · Last modified: 2025/01/27 15:17 by 127.0.0.1