Les modules network correspondent à la supervision des principaux équipements réseaux actifs tels que les commutateurs, les routeurs, les pare-feu ou tout autre matériel réseau. Nous aborderons un cas pratique avec la supervision d'un commutateur gigabit Dlink.
1 Introduction
Pour commencer, nous découvrirons une partie des équipements réseaux disponibles avec les plugins Centreon. Nous utiliserons les plugins communautaires et nous partirons du principe que le dossier d'installation des plugins Centreon est /usr/lib/centreon/plugins.
/usr/lib/centreon/plugins/centreon_plugins.pl --list-plugin |grep network PLUGIN: network::zyxel::snmp::plugin PLUGIN: network::fortinet::fortimanager::snmp::plugin PLUGIN: network::adva::fsp3000::snmp::plugin PLUGIN: network::moxa::switch::snmp::plugin PLUGIN: network::dell::sseries::snmp::plugin PLUGIN: network::infoblox::snmp::plugin PLUGIN: cloud::azure::network::networkinterface::plugin Check Microsoft Azure network interface. PLUGIN: network::juniper::trapeze::snmp::plugin PLUGIN: network::rad::airmux::snmp::plugin PLUGIN: network::arkoon::plugin PLUGIN: network::h3c::snmp::plugin PLUGIN: network::juniper::mseries::plugin PLUGIN: network::citrix::sdx::snmp::plugin PLUGIN: network::evertz::AEA47721::snmp::plugin PLUGIN: network::cisco::meraki::cloudcontroller::snmp::plugin PLUGIN: network::polycom::rmx::snmp::plugin PLUGIN: network::aruba::standard::snmp::plugin PLUGIN: network::checkpoint::snmp::plugin PLUGIN: network::oneaccess::snmp::plugin …………………..
C'est plus de 100 équipements qui sont listés !
2 Un cas concret
Mon changement récent de FAI a eu pour conséquence de revoir mon réseau interne. En effet, pour profiter au maximum de la fibre, j'ai dû mettre mes switches à 100 Mbp/s en second plan. Et l'occasion ne sait pas fait attendre en trouvant, sur le Bon Coin, un petit switch 16 ports Gigabits d'occasion à un prix tout à fait raisonnable pour un switch manageable. Il s'agit d'un switch D-Link DGS-1100-16 manageable naturellement ;-). Point important avec ce modèle basique, il faut faire attention à la version du firmware pour ce dernier. Le modèle A est manageable seulement en mode web et c'est seulement le modèle B qui peut gérer le SNMP.
Nous allons étudier dans ce tuto, la procédure et les astuces pour mener à bien notre supervision de ce switch.
2.1 Paramétrage du SNMP
Tout d'abord, il faudra activer le SNMP. Nous en profiterons pour activer aussi les traps SNMP, nous verrons par la suite comment l'utiliser avec Centreon.
Il faudra définir les noms de communauté SNMP. Dans cet article, le nom de communauté en lecture seule sera public. Je vous conseille de mettre un mot de passe fort pour le nom de communauté en écriture car il n'est pas possible de le désactiver.
2.2 vérifications du SNMP
Après ces modifications, n'oubliez pas de sauvegarder votre configuration car au redémarrage du switch, toutes modifications non sauvegardées seront perdues. Lancez cette commande depuis votre serveur Centreon, pour vérifier le bon fonctionnement du SNMP. Si vous utilisez une version Centreon compilée par vos soins, assurez-vous d'avoir les fichiers MIB sur votre serveur.
snmpwalk -v 2c -c 'public' 192.168.1.149 sysdescr SNMPv2-MIB::sysDescr.0 = STRING: DGS-1100-16 Gigabit Ethernet Switch
3 Le module network::dlink::standard::snmp::plugin
Ce module va nous permettre de superviser un switch D-Link. Pour le trouver, rien de plus simple en ligne de commande si vous n'avez pas la licence EMS de Centreon.
/usr/lib/centreon/plugins/centreon_plugins.pl --list-plugin | grep network | grep dlink PLUGIN: network::dlink::standard::snmp::plugin PLUGIN: network::dlink::dgs3100::snmp::plugin network::dlink::standard::snmp::plugin
Deux modules sont disponibles, nous utiliserons le standard puisque notre switch n'est pas un DGS-3100
3.1 Découverte du plugin
Voici les principaux modes de supervision de ce plugin.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --list-mode Plugin Description: Check dlink equipments in SNMP.
.... Modes Available: cpu hardware interfaces list-interfaces
Malheureusement sur ce petit switch d'entrée de gamme, le mode cpu ne fonctionnera pas et le mode hardware n'affichera aucun matériel (ventilateur, capteur de température, etc). Seul les deux derniers nous intéresserons. Néanmoins, nous allons nous attarder sur le mode hardware pour expliquer notre démarche de découverte. Pour appliquer les bonnes pratiques, nous utiliserons les commandes avec l'utilisateur centreon-engine. Ceci afin de pouvoir utiliser les fichiers temporaires avec les bons droits pour le moteur de supervision. Nous testons le mode hardware. Nous aurons besoin de l'adresse IP de l'équipement, du nom de communauté SNMP et de sa version. Pour obtenir l'aide du module, il suffit de rajouter l'option --help à la fin de la commande.
centreon-engine@raspberrypi:~$ /usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=hardware --host=192.168.1.149 --snmp-version=2c --snmp-community=public UNKNOWN: SNMP Table Request : Timeout
Nous pourrions croire à un problème de configuration du SNMP, mais il n'en est rien. Certains équipements délivrent énormément d'informations et notre plugin n'a pas le temps de les analyser. Nous allons utiliser une option de ce module snmp-reduce. Attention à n'utiliser seulement lorsque cela est nécessaire, car cela génère plus de trafic.
centreon-engine@raspberrypi:~$ /usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=hardware --host=192.168.1.149 --snmp-version=2c --snmp-community=public --snmp-autoreduce OK: All 0 components are ok []. |
Le plugin nous affiche un résultat normal pour ce type d'équipement. L'option verbose nous permet d'en savoir un peu plus.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=hardware --host=192.168.1.149 --snmp-version=2c --snmp-community=public --snmp-autoreduce --verbose OK: All 0 components are ok []. | Checking fans Checking power supplies Checking temperatures
3.2 Découverte des interfaces réseaux (ports)
Ce qui intéresse beaucoup plus, c'est de pouvoir superviser les interfaces réseaux. Pour cela, nous nous servirons du mode list-interfaces pour découvrir les ports et le mode interfaces pour les superviser. Commençons par la découverte.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=list-interfaces --host=192.168.1.149 --snmp-version=2c --snmp-community=public UNKNOWN: SNMP Table Request : Timeout
Même constat, utilisation de l'option snmp-autoreduce
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=list-interfaces --host=192.168.1.149 --snmp-version=2c --snmp-community=public --snmp-autoreduce UNKNOWN: Can't get interfaces...
Autre message d'erreur, le plugin n'arrive pas à déterminer les bons oid pour obtenir les ports réseaux, nous allons l'aider avec ces deux paramètres oid-filter et oid-display
centreon-engine@raspberrypi:~$ /usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=list-interfaces --host=192.168.1.149 --snmp-version=2c --snmp-community=public --oid-filter ifDesc --oid-display ifDesc --snmp-autoreduce List interfaces: 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' [speed = 1000, status = up, id = 1] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 10' [speed = , status = down, id = 10] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 11' [speed = , status = down, id = 11] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 12' [speed = 1000, status = up, id = 12] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 13' [speed = , status = down, id = 13] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 14' [speed = , status = down, id = 14] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 15' [speed = 1000, status = up, id = 15] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 16' [speed = , status = down, id = 16] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 2' [speed = 1000, status = up, id = 2] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 3' [speed = 100, status = up, id = 3] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 4' [speed = 1000, status = up, id = 4] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 5' [speed = 1000, status = up, id = 5] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 6' [speed = , status = down, id = 6] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 7' [speed = , status = down, id = 7] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 8' [speed = , status = down, id = 8] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 9' [speed = 1000, status = up, id = 9]
Nous avons bien nos ports réseaux avec pour informations complémentaires : la vitesse, le statut et l'id du port.
3.3 Monitorer un port réseau
Nous avons nos informations, un petit help nous permettra de trouver toutes les informations nécessaires à l'utilisation du mode interfaces.
centreon-engine@raspberrypi:~$ /usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --host=192.168.1.149 --snmp-version=2c --snmp-community=public --helpextrait du résultat
Mode: Check interfaces. --add-global Check global port statistics (By default if no --add-* option is set). --add-status Check interface status. --add-duplex-status Check duplex status (with --warning-status and --critical-status). --add-traffic Check interface traffic. --add-errors Check interface errors. --add-cast Check interface cast. --add-speed Check interface speed. --add-volume Check interface data volume between two checks (not supposed to be graphed, useful for BI reporting). --warning-status Set warning threshold for status. Can used special variables like: %{admstatus}, %{opstatus}, %{duplexstatus}, %{display} --critical-status Set critical threshold for status (Default: '%{admstatus} eq "up" and %{opstatus} ne "up"'). Can used special variables like: %{admstatus}, %{opstatus}, %{duplexstatus}, %{display} --warning-* Threshold warning. Can be: 'total-port', 'total-admin-up', 'total-admin-down', 'total-oper-up', 'total-oper-down', 'in-traffic', 'out-traffic', 'in-error', 'in-discard', 'out-error', 'out-discard', 'in-ucast' (%), 'in-bcast' (%), 'in-mcast' (%), 'out-ucast' (%), 'out-bcast' (%), 'out-mcast' (%), 'speed' (b/s).
Nous utiliserons les options suivantes :
interface : id du port
add-traffic : pour obtenir les informations de bande passante sur ce port
add-status : pour obtenir l'état du port et ainsi avoir un état critique lorsque le port est down.
interface : id du port
add-traffic : pour obtenir les informations de bande passante sur ce port
add-status : pour obtenir l'état du port et ainsi avoir un état critique lorsque le port est down.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface=1 --add-traffic --add-status OK: Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' Status : up (admin: up), Traffic In : Buffer creation, Traffic Out : Buffer creation |
Lors de la première vérification, le plugin va créer un fichier temporaire dans /var/lib/centreon/centplugins. Il servira à la création des données de performances et il est important de lancer cette commande avec l'utilisateur centreon-engine sinon le moteur engine ne pourra pas exploiter ces données ultérieurement. Lançons une deuxième fois cette commande.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface=1 --add-traffic --add-status OK: Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' Status : up (admin: up), Traffic In : 8.15Kb/s (0.00%), Traffic Out : 8.55Kb/s (0.00%) | 'traffic_in'=8148.00b/s;;;0;1000000000 'traffic_out'=8551.00b/s;;;0;1000000000
Cette fois-ci, nous obtenons les informations de trafic et les données de performances. Pour respecter les bonnes pratiques de Centreon, il sera préférable d'utiliser le nom du port au lieu de l'id. Ceci afin d'éviter un éventuel changement d'id lors d'une réinitialisation de l'équipement et ce qui amènera à superviser un port différent que celui prévu initialement. Nous ajoutons l'option name et utilisons le nom de l'interface 1.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='D-Link Corporation DGS-1100-16 1.01.B056 Port 1' --name --add-traffic --add-status CRITICAL: Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 10' Status : down (admin: up) - Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 11' Status : down (admin: up) - Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 13' Status : down (admin: up) - Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 14' Status : down (admin: up) - Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 16' Status : down (admin: up) |
La commande nous renvoie les informations du port 1 mais aussi des ports 10 à 16. Ce qui n'était pas prévu. Nous allons donc utiliser les regexp perl pour limiter la recherche. Il suffira de rajouter le symbole $ à la fin pour éviter les autres ports.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='D-Link Corporation DGS-1100-16 1.01.B056 Port 1$' --name --add-traffic --add-status OK: Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' Status : up (admin: up), Traffic In : 7.39Kb/s (0.00%), Traffic Out : 7.94Kb/s (0.00%) | 'traffic_in'=7394.91b/s;;;0;1000000000 'traffic_out'=7943.76b/s;;;0;1000000000
On peut simplifier la commande en insérant seulement la chaine suivante Port suivi d'un espace et du numéro du port. Attention c'est case-sensitive.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='Port 1$' --name --add-traffic --add-status OK: Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' Status : up (admin: up), Traffic In : 12.03Kb/s (0.00%), Traffic Out : 10.58Kb/s (0.00%) | 'traffic_in'=12027.86b/s;;;0;1000000000 'traffic_out'=10577.10b/s;;;0;1000000000
Il nous restera à ajouter les seuils d'alerte comme cet exemple.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='Port 1$' --name --add-traffic --add-status --warning-in-traffic=50 --critical-in-traffic=70 --warning-out-traffic=50 --critical-out-traffic=70 OK: Interface 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' Status : up (admin: up), Traffic In : 7.28Kb/s (0.00%), Traffic Out : 9.07Kb/s (0.00%) | 'traffic_in'=7279.27b/s;0:500000000;0:700000000;0;1000000000 'traffic_out'=9072.61b/s;0:500000000;0:700000000;0;1000000000
4 Configuration dans Centreon.
Nous partons à la découverte de la configuration dans Centreon. Nous utiliserons des commandes unitaires, des modèles de services et un modèle d'hôte nous permettant d'appliquer la configuration simplement. Malheureusement, avec ce cas d'école, le gain d'installation ne sera pas extraordinaire, puisqu'un seul service pourra être créé (hardware) mais cette méthode pourra être appliquée à d'autres équipements ayant plus de services à installer en une seule fois. Commençons par les commandes.
4.1 Création des commandes
Nous utilisons une commande pour le mode hardware que nous nommerons cmd_net_dlink_standard_hardware.
Nous utiliserons essentiellement des macros custom d'hôtes qui seront renseignées dans le modèle d'hôtes.
$CENTREONPLUGINS$/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=hardware --host=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$ $_HOSTOPTIONS$ --verbose
Nous utilisons une autre commande pour le mode traffic que nous nommerons cmd_net_dlink_standard_name_traffic.
Cette commande sera beaucoup complète avec des macros custom de service pour les seuils critiques et warning utilisés dans les modèles de service ainsi qu'une macro OPTIONS spécifique au service en plus de la macro OPTIONS du modèle d'hôte. Une macro spécifique pour nommer le port complètera cette commande.
$CENTREONPLUGINS$/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --host=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --warning-in-traffic=$_SERVICEWARNINGIN$ --critical-in-traffic=$_SERVICECRITICALIN$ --warning-out-traffic=$_SERVICEWARNINGOUT$ --critical-out-traffic=$_SERVICECRITICALOUT$ --interface='$_SERVICEINTERFACE$' --name --add-traffic --add-status $_HOSTOPTIONS$ $_SERVICEOPTION$
4.2 Création des modèles de service
Continuons par les modèles de service qui servirons pour créer les services de l'hôte. Voici le modèle pour le mode hardware nommé stpl-net-dlink-standard-hardware.
Le nom du champ alias servira à créer le nom du service. Ce modèle est basé sur le modèle générique actif, il héritera de toutes ses caractéristiques. Nous lui indiquons aussi la commande à utiliser cmd_net_dlink_standard_hardware. Continuons par le modèle traffic nommé stpl-net-dlink-standard-name-traffic.
Comme le précédent modèle, celui-ci est basé sur le modèle générique actif. On utilisera la commande cmd_net_dlink_standard_name_traffic. Automatiquement, les macros de service seront initialisées. On peut fixer les valeurs par défaut qui seront appliquées lors de la création des services.
WARNINGIN = 50
CRITICALIN = 70
WARNINGOUT = 50
CRITiCALOUT = 70
OPTION = --oid-filter ifDesc --oid-display ifDesc
WARNINGIN = 50
CRITICALIN = 70
WARNINGOUT = 50
CRITiCALOUT = 70
OPTION = --oid-filter ifDesc --oid-display ifDesc
4.3 Création du modèle d'hôte
Il reste à créer le template d'hôte appelé htpl-net-dlink-standard.
Basé sur le modèle d'hôte générique, il faudra aussi ajouter la macro OPTIONS. On aurait pu fixer la valeur par défaut à --snmp-autoreduce, mais je préfère la fixer lors de la création de l'hôte.
Sélectionnez l'onglet Relations pour ajouter les modèles de services associés à ce modèle d'hôte. Malheureusement dans notre cas, nous ne pourrons qu'ajouter le modèle hardware. Le modèle interface ne pourra être utilisé manuellement.
4.4 Création de l'hôte
Pour créer notre hôte, il suffira d'ajouter un hôte et d'appliquer le modèle d'hôte htpl-net-dlink-standard
Remplissons aussi les champs SNMP community et version ainsi que la macro OPTIONS. Ces champs seront appliqués à tous les services créés lors de la création de l'hôte. Ci-dessous le résultat.
Et après application de la configuration
4.5 Supervision des ports
Vient le moment le plus attendu, le monitoring des ports du switch. Avec la version communautaire des plugins Centreon, point de salut, il faudra faire la configuration à la mano. Les versions EMS Centreon ont un outil supplémentaire pour ajouter facilement sans erreurs les interfaces disponibles. Mais ce n'est pas le but de ce tutoriel. retournons en ligne de commande pour vérifier les ports disponibles et actifs.
centreon-engine@raspberrypi:~$ /usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=list-interfaces --host=192.168.1.149 --snmp-version=2c --snmp-community=public --oid-filter ifDesc --oid-display ifDesc --snmp-autoreduce List interfaces: 'D-Link Corporation DGS-1100-16 1.01.B056 Port 1' [speed = 1000, status = up, id = 1] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 10' [speed = , status = down, id = 10] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 11' [speed = , status = down, id = 11] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 12' [speed = 1000, status = up, id = 12] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 13' [speed = , status = down, id = 13] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 14' [speed = , status = down, id = 14] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 15' [speed = 1000, status = up, id = 15] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 16' [speed = , status = down, id = 16] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 2' [speed = 1000, status = up, id = 2] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 3' [speed = 100, status = up, id = 3] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 4' [speed = 1000, status = up, id = 4] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 5' [speed = 1000, status = up, id = 5] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 6' [speed = , status = down, id = 6] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 7' [speed = , status = down, id = 7] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 8' [speed = , status = down, id = 8] 'D-Link Corporation DGS-1100-16 1.01.B056 Port 9' [speed = 1000, status = up, id = 9]
En gras les ports actifs, commençons par la première interface Port 1. Ajoutez un service dans la partie configuration des services. Nommez le service Interface-port1, choisissez l'hôte précédemment créé switch-dlink et sélectionnez le modèle de service stpl-net-dlink-standard-name-traffic.
Il vous restera à rajouter le nom de l'interface comme indiqué précédemment donc Port 1$ et c'est tout ! sauvegardez. Pour rajouter les 7 autres, voici une petite astuce de duplication de service.
.
.
Filtrer sur le nom d'hôte, cochez le service à dupliquer et saisissez 7 dans le champ à droite pour indiquer que l'on veut 7 exemplaires de ce service.
.
.
Sélectionnez l'action dupliquer et acceptez la commande.
.
.
Vous avez 7 nouveaux services indentés automatiquement, il ne vous reste plus qu'à les modifier (nom du service et nom du port) afin d'obtenir ceci.
.
.
Voici le résultat après application de la configuration.
5 Agrégation de données de performances
Voici un exemple de ce qu'on peut faire avec les plugins centreon, la manipulation des données de performances. Voici le contexte, j'ai un NAS avec plusieurs interfaces réseaux, avec l'utilisation d'un switch gigabit, il aurait été dommage de ne pas pouvoir profiter de l'agrégation de port. Je ne l'ai pas activé coté switch mais coté NAS comme le montre cette copie d'écran.
Nous allons tenter d'agréger les deux ports utilisés pour ce NAS afin d'obtenir la somme du trafic des ces deux ports (les ports 2 et 12). Nous ajoutons les deux ports dans le paramètre interface (--interface='Port 2$|Port 12$' )
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='Port 2$|Port 12$' --name --add-traffic --add-status --warning-in-traffic=50 --critical-in-traffic=70 --warning-out-traffic=50 --critical-out-traffic=70 OK: All interfaces are ok | 'traffic_in_D-Link Corporation DGS-1100-16 1.01.B056 Port 12'=14945.96b/s;0:500000000;0:700000000;0;1000000000 'traffic_out_D-Link Corporation DGS-1100-16 1.01.B056 Port 12'=14669.54b/s;0:500000000;0:700000000;0;1000000000 'traffic_in_D-Link Corporation DGS-1100-16 1.01.B056 Port 2'=6194.25b/s;0:500000000;0:700000000;0;1000000000 'traffic_out_D-Link Corporation DGS-1100-16 1.01.B056 Port 2'=3868.00b/s;0:500000000;0:700000000;0;1000000000
Nous avons maintenant 4 métriques correspondants aux deux ports in et out. Nous allons réduire le nom des métriques en utilisant l'option change-perfdata.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='Port 2$|Port 12$' --name --add-traffic --add-status --warning-in-traffic=50 --critical-in-traffic=70 --warning-out-traffic=50 --critical-out-traffic=70 --change-perfdata='traffic_in_D-Link Corporation DGS-1100-16 1.01.B056',target_in_,, --change-perfdata='traffic_out_D-Link Corporation DGS-1100-16 1.01.B056',target_out_,, OK: All interfaces are ok | 'target_in_ Port 12'=3514.13b/s;0:500000000;0:700000000;0;1000000000 'target_out_ Port 12'=5955.56b/s;0:500000000;0:700000000;0;1000000000 'target_in_ Port 2'=1997.69b/s;0:500000000;0:700000000;0;1000000000 'target_out_ Port 2'=5000.36b/s;0:500000000;0:700000000;0;1000000000
Grâce à cette option, la chaîne traffic_in_D-Link Corporation DGS-1100-16 1.01.B056 est transformé en traffic_in_ et la chaine traffic_out_D-Link Corporation DGS-1100-16 1.01.B056 en traffic_out_. Maintenant, avec l'option extend-perfdata-group nous allons faire la somme des métriques in et out.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='Port 2$|Port 12$' --name --add-traffic --add-status --warning-in-traffic=50 --critical-in-traffic=70 --warning-out-traffic=50 --critical-out-traffic=70 --change-perfdata='traffic_in_D-Link Corporation DGS-1100-16 1.01.B056',target_in_,, --change-perfdata='traffic_out_D-Link Corporation DGS-1100-16 1.01.B056',target_out_,, --extend-perfdata-group=',traffic_in,sum(target_(in))' --extend-perfdata-group=',traffic_out,sum(target_(out))' OK: All interfaces are ok | 'target_in_ Port 12'=3420.91b/s;0:500000000;0:700000000;0;1000000000 'target_out_ Port 12'=6618.53b/s;0:500000000;0:700000000;0;1000000000 'target_in_ Port 2'=3312.28b/s;0:500000000;0:700000000;0;1000000000 'target_out_ Port 2'=5943.51b/s;0:500000000;0:700000000;0;1000000000 'traffic_in'=6733.19;;;; 'traffic_out'=12562.04;;;;
Les métriques indiquées en gras sont les agrégats du traffic in et out des deux ports. Il nous reste à supprimer les métriques devenues inutiles avec l'option filter-perfdata.
/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=network::dlink::standard::snmp::plugin --mode=interfaces --snmp-autoreduce --oid-filter ifDesc --oid-display ifDesc --host=192.168.1.149 --snmp-version=2c --snmp-community=public --interface='Port 2$|Port 12$' --name --add-traffic --add-status --warning-in-traffic=50 --critical-in-traffic=70 --warning-out-traffic=50 --critical-out-traffic=70 --change-perfdata='traffic_in_D-Link Corporation DGS-1100-16 1.01.B056',target_in_,, --change-perfdata='traffic_out_D-Link Corporation DGS-1100-16 1.01.B056',target_out_,, --extend-perfdata-group=',traffic_in,sum(target_(in))' --extend-perfdata-group=',traffic_out,sum(target_(out))' --filter-perfdata=traffic OK: All interfaces are ok | 'traffic_in'=7367.88;;;; 'traffic_out'=21064.37;;;;
Pour la configuration dans Centreon, pas de souci, il suffit de créer un nouveau service comme ceci :
Ce qui donne cela au bout de 12 heures de fonctionnement, l'exemple n'est pas très représentatif car il n'y a que du trafic sortant mais on distingue bien l'agrégation des deux liens approximativement.
J'espère que cet article vous a plu, j'essaierai de renouveler l'expérience.