L’installation de nouveaux plugins Centreon avec C-BAM





Pour les plugins de Centreon, il y a 3 options :

1 ) Les Plugins Packs
         - Le Premier Pack = 10 plugins essentiel gratuits
         - Les Packs de plugins payant  CENTREON IMP-100 SUBSCRIPTION
2) les plugins qui sont dans les repo (yum install centreon-plugin*)
3) les plugins supplémentaires sur GitHub

C-Bam conseil de prendre les plugins sur le repo (option 2) et d’aller chercher sur github si d’autre plugins sont nécessaires

ETAPE 0 : Télécharger les plugins

Se logger en root sur son serveur Centreon et entrer

[root@centreon-central ~]# yum install centreon-plugin*

Cette commande va télécharger tous les plugins du repo dans /usr/lib/centreon/plugins
Pour vérifier :

[root@centreon-central ~]# cd /usr/lib/centreon/plugins 
[root@centreon-central plugins ~]# ls


Nous allons prendre l’exemple du NAS QNAP

ETAPE 1 : Activer le SNMP sur la machine cible

Manips différentes selon les machines
Sur notre serveur Centreon, faire un test snmpwalk

[root@centreon-central ~]# snmpwalk -v 2c -c public

ETAPE 2 : Tester le plugin


Trouver le plugin recherché dans le répertoire plugin (en l’occurrence le plugin QNAP)
centreon_qnap.pl

Passer en utilisateur centreon-engine

[root@centreon-central ~]# su centreon-engine

Lancer la commande pour connaitre le nom du plugin

bash-4.2$ ./centreon_qnap.pl --list-plugin

-----------------
PLUGIN: storage::qnap::snmp::plugin
Plugin Description:
    Check Qnap NAS in SNMP.


Le nom est donc  => storage::qnap::snmp::plugin

Lister les modes afin de connaître les modes disponibles

bash-4.2$ ./centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode list-storages –help


Modes Available:
   cpu
   hardware
   interfaces
   list-interfaces
   list-storages
   memory
   storage
   volume-usage

Lister les options

bash-4.2$ ./centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode list-storages --help
...

La liste est grande et “tu peux ignorer tout ça au début” mais une seule t’intéresse:

--hostname

Là tu peux essayer avec l’option --mode storage

bash-4.2$ ./centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode list-storages --hostname

List storage:
Skipping storage 'Physical memory': no type or no matching filter type
Skipping storage 'Swap space': no type or no matching filter type
Skipping storage 'Virtual memory': no type or no matching filter type
'/mnt/HDA_ROOT' [size = 517427200B] [id = 31]
'/sys/fs/cgroup/memory' [size = 0B] [id = 32]
'/sys/fs/cgroup/cpu' [size = 0B] [id = 33]
'/mnt/ext' [size = 437231616B] [id = 34]
'/share/CACHEDEV1_DATA' [size = 11687534592000B] [id = 35]
Skipping storage 'Memory buffers': no type or no matching filter type
Skipping storage 'Cached memory': no type or no matching filter type
Skipping storage 'Shared memory': no type or no matching filter type

Je reçois les informations de Storage : donc Storage mode Ok

J’essai avec l’option --mode cpu
bash-4.2$ ./centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode cpu --hostname

OK: 4 CPU(s) average usage is 5.75 % | 'total_cpu_avg'=5.75%;;;0;100 'cpu_0'=5.00%;;;0;100 'cpu_1'=4.00%;;;0;100 'cpu_2'=9.00%;;;0;100 'cpu_3'=5.00%;;;0;100

C’est bon ☺

ETAPE 3 : Créer une nouvelle commande dans Centreon


a - Config > Commandes > Contrôles  ('Checks' en EN)

Ici il y a déjà beaucoup de « commandes ». App-… , base_... , HW_... , Net_..., OS_...
ce sont les commandes créées avec les plugins pack offert

(en gros, les plugin pack servent uniquement à t'affranchir les étape 2, 3, 4, 5)

b - Cliquer sur Ajouter (Add)

-------------------! C’est là que ça se corse un p’tit peu---------------------

d - Donner un nom et entrer la commande



Concernant la commande, la voici en clair

$CENTREONPLUGINS$/centreon_qnap.pl --plugin storage::qnap::snmp::plugin 
--mode storage
-–hostname $HOSTADDRESS$
--snmp-version $_HOSTSNMPVERSION$
--snmp-community $_HOSTSNMPCOMMUNITY$
--warning-usage $_SERVICEWARNING$
--critical-usage $_SERVICECRITICAL$
$_SERVICESNMPEXTRAOPTIONS$

! Sans les retours à la ligne ! 

C’est-à-dire

$CENTREONPLUGINS$/
LA COMMANDE $HOSTADDRESS$ la variable d’IP
--snmp-version $_HOSTSNMPVERSION$ la variable de version SNMP
--snmp-community $_HOSTSNMPCOMMUNITY$ la variable de communauté SNMP
--warning-usage $_SERVICEWARNING$ une variable de % warning
--critical-usage $_SERVICECRITICAL$ une variable de % critique
$_SERVICESNMPEXTRAOPTIONS$

« avec le cas particulier de SNMPVERSION et SNMPCOMMUNITY qui sont quand même des variables semi auto :S  Quand tu as le mot HOST, la variable sera hérité de l'hôte »

la partie 1 : ma commande de base $CENTREONPLUGIN$
la partie 2 : l'accès au snmp (hostname, snmpcommunity, etc)
la partie 3 ce sont les warning et critical
ces options dépendent aussi du plugin (visible avec le --help )
Là, je t'ai mis les deux principales : warning-usage et critical-usage
Donc partie 3 : les options de ton plugin, essentiellement pour les warning, Tu noteras les variables sont $_SERVICE donc positionné sur le service »
Exemple :
$_SERVICECRITICAL$  c'est la valeur du paramètre --warning usage
--warning-usage 80 --critical-usage 95
sauf que les valeurs, 80 et 95 sont des variables

d - Avant de sauvegarder, cliquer sur « Décrire les Macros »



Cela ouvre une boite de dialogue, on peut ignorer les champs et valider, cela remplis les Macros
« entre parenthèse tu vois ou ça s'applique SERVICE ou HOST »

Voilà nous avons une nouvelle commande qui s’appel Storage-Qnap-SNMP-Storage

--------------------------! Ouf, le plus dur est fait----------------------------

ETAPE 4 : Créer un modèle de service


1 modèle de service <==> 1 commande
1 modèle d'hôte <==> n modèles de service

a - Config > Services > Modèles (Templates en EN)

b - Cliquer sur Ajouter (Add)




une chose à savoir
pour alias si tu as deux services avec le même alias, le plus prioritaire l'emportera

exemple : alias = Cpu
si tu as deux services alias Cpu
 un seul des deux passera
mais tu n'auras jamais le cas je pense, sauf cas spécifique  / faut juste le savoir


c - Choisir un Alias et un nom (obligatoire, pour retrouver son service)

Alias : Storage
Name : Storage-Qnap-SNMP-Storage

d - Choisir le Modèle (ou Template en EN)

Dans 99% des cas pour un service, ça sera generic-active service custom

e - Commande de vérification (ou  Check Command en EN)

Choisir la commande que l’on vient de créer Storage-Qnap-SNMP-Storage
Les Macros se remplissent toutes seules, il faut rentrer les valeurs de Warning et Critical



On laisse le reste vide et on valide

Etape 5 : Créer le host Template et y associer le service Template


soit tu crées le service directement sur ton hôte
soit tu crées un modèle d'hôte

"je te conseille le modèle d'hôte, comme ça tu auras un modèle Qnap, avec tous les modèles de service Qnap et si un jour tu à un 2e Qnap, t'as juste à lui appliquer le modèle d'hôte et pouf

Pour l’instant tu as un service Template, mais pas encore le service
C’est à la fin que tu l'aura

a - Config > hôtes > modèle (ou Template en EN)

b- « Ajouter »


Alias, ici, c'est la description : "tu peux mettre la même chose que name ou qqch du genre : NAS de type QNAS"

c - Allez dans l’onglet « Relations »



Si tu en as déjà d’autre cela ressemblera à ça




d - Cliquer sur « sauvegarder

e - Allez dans les settings de l’hôte et lui assigner cette nouvelle Template d’hôte

Ou Etape 6 : Créer l'hôte et y associer l'host Template


=> POLLER RESTART ☺


---------------------------------------------------------


Optionnel

Duplique la commande (le check) pour obtenire une autre mesure


 Ici, par exemple, nous allons faire la commande qui nous donneras le CPU de notre QNap

Checker, en CLI, la nouvelle commande


bash-4.2$ ./centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode cpu --hostname [IP SERVER]
OK: 4 CPU(s) average usage is 4.50 % | 'total_cpu_avg'=4.50%;;;0;100 'cpu_0'=8.00%;;;0;100 'cpu_1'=4.00%;;;0;100 'cpu_2'=3.00%;;;0;100 'cpu_3'=3.00%;;;0;100

C’est bon nous avons un retour OK du QNap
Checker, en CLI, les option de la nouvelle commande car elle peuvent être différentes


bash-4.2$ ./centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode list-cpu --help

Mode:
    Check system CPUs (HOST-RESOURCES-MIB) (The average, over the last
    minute, of the percentage of time that this processor was not idle)
    --warning-average
            Warning threshold average CPU utilization.
    --critical-average
            Critical threshold average CPU utilization.
    --warning-core
            Warning thresholds for each CPU core
    --critical-core
            Critical thresholds for each CPU core


on voit que les modes warning et critical pour list-cpu sont différent de ceux de list-storages. Donc la commande sera différente


Aller dans Commands > Checks et duplique la Commande QNap que nous venons de créer


La il faut éditer le nom et la ligne “--mode’

Name Storage-Qnap-SNMP-CPU

$CENTREONPLUGINS$/centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode cpu --hostname $HOSTADDRESS$ --snmp-version $_HOSTSNMPVERSION$ --snmp-community $_HOSTSNMPCOMMUNITY$ --warning-average $_SERVICEWARNING$ --critical-average $_SERVICECRITICAL$ $_SERVICESNMPEXTRAOPTIONS$
au lieu de
$CENTREONPLUGINS$/centreon_qnap.pl --plugin storage::qnap::snmp::plugin --mode storage --hostname $HOSTADDRESS$ --snmp-version $_HOSTSNMPVERSION$ --snmp-community $_HOSTSNMPCOMMUNITY$ --warning-usage $_SERVICEWARNING$ --critical-usage $_SERVICECRITICAL$ $_SERVICESNMPEXTRAOPTIONS$

Créer un modèle de service en faisant dupliquer et changeant le nom et l'alias


Alias Cpu-Qnap
Name  Storage-Qnap-SNMP-cpu

et en choisissant la Commande Storage-Qnap-SNMP-CPU

Editer la Host Template, dans Relation Storage-Qnap-SNAMP-cpu était déjà présent


Configuration > Hôtes > filtre par modèle et cherche ton host template

Tu auras les hôtes correspondant
Coche les tous et dans les actions tu fais déployer les services

1 commentaires:

olivier a dit…

Bonjour,

Super tuto merci cela ma beaucoup aidé.
Pour abusé totalement comment ta a géré les graphique et wiget^^