(modifié le 18 septembre 2015 à 1:06)

Nous accueillons un invité sur la thématique de la supervision avec Centreon, et plus particulièrement sur l'utilisation d'un plugin pour superviser nos petits NAS de marque Synology. Avec l'utilisation de l'interface en ligne de commande CLAPI dont je ne vous ai pas encore parlé.

Bienvenue à Matthieu Robin !

centreon-synology

Passionné par Centreon depuis fort longtemps, éditeur d'un blog et maintenant intégrateur et revendeur Centreon sur Genève en Suisse; j'écris en tant qu'invité pour Blogmotion. Je tiens à remercier Xhark pour son accueil.

Centreon a développé un nouveau système de plugin disponible sur GitHub, ce nouveau système de plugin utilise un seul et même programme pour l'exécution des plugins de supervision : "centreon_plugins.pl".

centreon_logo

  • Nous allons utiliser celui-ci pour la supervision de notre NAS Synology
  • Nous allons aussi utiliser Centreon CLAPI, qui permet de configurer Centreon en ligne de commande (command line).

Nous démarrons depuis un serveur Centreon déjà opérationnel, de préférence un CES (Centreon Enterprise Server) pour sa simplicité de mise en œuvre. Nous ne parlerons pas de cette installation ici, de nombreux tutoriaux sont disponibles sur le net (ndlr : voir chez Eric Coquard).

Les commandes d'installation de paquets de "yum" se substituent à "apt-get" si vous êtes sur Debian (ou Debian Like).

Installation des plugins Centreon

Les plugins de Centreon sont disponibles sur GitHub: https://github.com/centreon/centreon-plugins

Il faut donc installer Git sur votre serveur :

# yum install git

Puis cloner le git. Personnellement j'aime bien les mettre dans le répertoire des plugins standards :

# cd /usr/lib/nagios/plugins/
# git clone https://github.com/centreon/centreon-plugins.git
# cd centreon-plugins
# chmod +x centreon_plugins.pl

Nous avons donc maintenant un dossier "centreon-plugins" avec le programme principal "centreon_plugins.pl"

Testons que celui-ci fonctionne bien:

[centreon@centreon centreon-plugins]$ ./centreon_plugins.pl

UNKNOWN: Need to specify '--plugin' option.

Il tourne 🙂

Passons à l'installation de Centreon CLAPI

Avec une distribution CES (Centreon Enterprise Server), CLAPI est déjà disponible. Vous n'avez qu'à l'installer depuis l'interface web "Administration" > "Extensions" et cliquer sur l'icône tout à droite sur la ligne centreon-clapi pour l'installer.

Il faut vous rendre dans le répertoire du module CLAPI pour l'utiliser:

# cd /usr/share/centreon/www/modules/centreon-clapi/core

et maintenant, testons si celui-ci fonctionne :

# centreon

Centreon version 2.6.1 - Copyright Merethis - www.centreon.com

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL license

usage: ./centreon -u <LOGIN> -p <PASSWORD> [-s] -o <OBJECT> -a <ACTION> [-v]
...

Il tourne! 🙂

Création et mise en place de templates pour Synology

Pour connaitre la liste des modes disponibles pour l'équipement Synology avec le plugin, il faut exécuter cette commande:

./centreon_plugins.pl --plugin=storage::synology::snmp::plugin  --list-mode

Plugin Description:
    Check Synology devices in SNMP.

Global Options:
    --mode  Choose a mode.

    --dyn-mode
            Specify a mode with the path (separated by '::').

    --list-mode
            List available modes.

    --mode-version
            Check minimal version of mode. If not, unknown error.

    --version
            Display plugin version.

    --sanity-options
            Check unknown options (for debug purpose).

Modes Available:
   components
   cpu
   load
   memory
   storage
   temperature
   traffic
   ups

Nous allons commencer par créer une commande qui va exécuter le plugin centreon_plugins.pl. Dans cette démarche, nous utilisons les MACROS disponibles dans Centreon.

Définissons notre mot de passe en variable pour la suite (remplacez par votre mot de passe) :

# $PASSWORD=passw0rd

Depuis CLAPI, nous exécutons cette commande:

# cd /usr/share/centreon/www/modules/centreon-clapi/core
# ./centreon -u admin -p PASSWORD -o CMD -a ADD -v 'check_synology;check;$USER1$/centreon-plugins/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_HOSTOPTIONV3$ $_SERVICEOPTION$ --host=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$'

Une fois que cela est fait, vous devez trouver dans votre interface web Centreon, sous "Configuration" > " Commands" votre nouvelle commande check_synology.

Maintenant, nous allons créer des templates (modèles) pour chacun des modes, en utilisant la commande check_synology que nous venons de créer. Bien sûr vous pouvez choisir les seuils d'alerte WARNING et CRITIAL comme bon vous semble.

Le CPU du NAS:

./centreon -u admin -p $PASSWORD -o STPL -a add -v "CPU_synology;Cpu_synology;generic-service"
./centreon -u admin -p $PASSWORD -o STPL -a setparam -v "CPU_synology;check_command;check_synology"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "CPU_synology;PLUGIN;storage::synology::snmp::plugin "
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "CPU_synology;WARNING;80"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "CPU_synology;CRITICAL;90"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "CPU_synology;MODE;cpu"

L'état (status) général du NAS :

./centreon -u admin -p $PASSWORD -o STPL -a add -v "Status_synology;Status_synology;generic-service"
./centreon -u admin -p $PASSWORD -o STPL -a setparam -v "Status_synology;check_command;check_synology"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Status_synology;PLUGIN;storage::synology::snmp::plugin "
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Status_synology;MODE;components"

La RAM du Synology :

./centreon -u admin -p $PASSWORD -o STPL -a add -v "Memory_synology;Memory_synology;generic-service"
./centreon -u admin -p $PASSWORD -o STPL -a setparam -v "Memory_synology;check_command;check_synology"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Memory_synology;PLUGIN;storage::synology::snmp::plugin "
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Memory_synology;WARNING;80"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Memory_synology;CRITICAL;90"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Memory_synology;MODE;memory"

La température du NAS :

./centreon -u admin -p $PASSWORD -o STPL -a add -v "Temp_synology;Temp_Synology;generic-service"
./centreon -u admin -p $PASSWORD -o STPL -a setparam -v "Temp_synology;check_command;check_synology"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Temp_synology;PLUGIN;storage::synology::snmp::plugin "
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Temp_synology;WARNING;35"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Temp_synology;CRITICAL;40"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Temp_synology;MODE;temperature"

Le traffic ethernet :

Pour connaitre le nom de l'interface, vous pouvez exécuter cette commande (depuis le dossier centreon-plugins)

# ./centreon_plugins.pl --plugin=storage::synology::snmp::plugin  --mode=traffic --hostname=HOSTNAME
# UNKNOWN: Interface 'tun0' Speed is 0. You should force the value with --speed option | 'traffic_in_lo'=4092.15b/s;;;0;10000000 'traffic_out_lo'=4092.15b/s;;;0;10000000 'traffic_in_eth0'=1150877.43b/s;;;0;1000000000 'traffic_out_eth0'=890259.26b/s;;;0;1000000000

Donc on peut partir sur le port eth0 avec CLAPI:

./centreon -u admin -p $PASSWORD -o STPL -a add -v "Traffic_synology;Traffic_synology;generic-service"
./centreon -u admin -p $PASSWORD -o STPL -a setparam -v "Traffic_synology;check_command;check_synology"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Traffic_synology;PLUGIN;storage::synology::snmp::plugin "
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Traffic_synology;MODE;interfaces"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Traffic_synology;OPTION;--add-traffic --interface='eth0' --name"

Espace disque de notre NAS (nom du volume: volume1):

./centreon -u admin -p $PASSWORD -o STPL -a add -v "Disk_usage_synology;Disk_usage_synology;generic-service"
./centreon -u admin -p $PASSWORD -o STPL -a setparam -v "Disk_usage_synology;check_command;check_synology"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Disk_usage_synology;PLUGIN;storage::synology::snmp::plugin "
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Disk_usage_synology;WARNING;80"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Disk_usage_synology;CRITICAL;90"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Disk_usage_synology;OPTION;--storage='/volume1' --name"
./centreon -u admin -p $PASSWORD -o STPL -a setmacro -v "Disk_usage_synology;MODE;storage"

Nous voilà donc avec une liste de templates de services pour notre Synology.

Passons à la création d'un modèle d'hôte (host template) : "Host_Synology"

./centreon -u admin -p $PASSWORD -o HTPL -a add -v "Host_Synology;Host_Synology;;;;"
./centreon -u admin -p $PASSWORD -o HTPL -a setparam -v "Host_Synology;host_snmp_version;2c"
./centreon -u admin -p $PASSWORD -o STPL -a addhost -v "CPU_synology;Host_Synology"
./centreon -u admin -p $PASSWORD -o STPL -a addhost -v "Status_synology;Host_Synology"
./centreon -u admin -p $PASSWORD -o STPL -a addhost -v "Memory_synology;Host_Synology"
./centreon -u admin -p $PASSWORD -o STPL -a addhost -v "Temp_synology;Host_Synology"
./centreon -u admin -p $PASSWORD -o STPL -a addhost -v "Traffic_synology;Host_Synology"
./centreon -u admin -p $PASSWORD -o STPL -a addhost -v "Disk_usage_synology;Host_Synology"

Vous pouvez maintenant créer un nouvel host, avec comme template "Host_Synology", il va hériter des services templates que nous avons créés précédemment.

Il manque le disque dans cette image:

centreon-dashboard-Synology

Je vous remercie d'avoir tenu jusqu'ici 😉

Nous avons vu dans cet article plusieurs features de Centreon:

  • CLAPI: Centreon en ligne de commandes
  • MACRO: Variables permettant de récupérer certaines valeurs. Dans notre exemple, une seule commande pour plusieurs services
  • Service Templates: Modèles de service, réutilisables, facile à mettre en place. Utilise le check préalablement défini
  • Host Templates: Modèles d'hôte, réutilisables, facile à mettre en place. Les services templates y sont associés
  • Centreon-Plugins: Un seul programme à exécuter pour différents checks (vérification). Mis à jour très régulièrement (liste des checks possibles)

Merci à Matthieu pour ce billet ! N'hésitez pas à poser vos questions dans les commentaires puisque Matthieu est spécialiste de Centreon.

Vos NAS Synology sont maintenant supervisés et la canicule de cette semaine ne devrait pas tarder à faire son petit effet sur les alertes de température des disques durs. Avant que Matthieu ne me fasse découvrir ce plugin, j'utilisais le plugin Nagios "check_snmp_syno.sh" après avoir corrigé quelques erreurs de compatibilité avec Centreon, il en existe encore un second que je n'ai pas testé. Au cas où vous seriez encore sur une infra Nagios, ça peut vous servir.

Auteur : Matthieu ROBIN

Passionné par la supervision, particulièrement par Centreon. Je suis intégrateur, revendeur Centreon. Suivez-moi sur @matthieurobin