Vous êtes ici:

Menu


Stacks Image 16937
Refonte complète de cet article pour profiter des plugins-pack de la plateforme Centreon Open-Source. Nous utiliserons une architecture Centreon standard pour configurer le plugin. L'API Centreon-Clapi sera requis pour notre configuration. En effet, il vous suffira de copier-coller mes commandes pour réaliser la configuration. Cette méthode est vraiment plus efficace que l'utilisation de l'interface graphique.

1 Le module centreon_linux_local.pl avec l'option remote

Notre exemple sera basé sur la supervision d'un hôte distant sous Linux sans passer par un agent SNMP. Nous utiliserons les modes load, cpu, memory, swap, storage. Notre configuration sera réalisée avec des templates de services liés à un template d'hôte. Nous utiliserons les best-practices de Centreon comme les commandes unitaires pour les services.
Stacks Image 43679
Utilisation du plugin GitHub
Pour avoir les mêmes fonctionnalités que le plugin FatPacked
centreon_linux_local.pl => centreon_plugins.pl --plugin=os::linux::local::plugin

1.1 Schéma global de la configuration

Voici la configuration de notre serveur de supervision. Nous utiliserons cinq nouvelles commandes de vérification et deux commandes de vérification existantes. Nous utiliserons des templates de services et d'hôtes. La première configuration est assez fastidieuse à réaliser mais permet un gain de temps lors de la création des hôtes. Nous utiliserons les templates et commandes existantes dans cet article.
L'hôte distant est un serveur Linux nommé Serveur. le serveur SSH est configuré et opérationnel.
Stacks Image 17137
Schéma de principe pour la configuration

1.2 Préparation de la connexion SSH

Connectez-vous sur votre serveur Linux et créez un utilisateur remote_centreon. Saisissez un mot de passe, par exemple supervision.
root@serveur:~# adduser remote_centreon
root@serveur:~# passwd remote_centreon
Sur le serveur de supervision, connectez-vous en utilisateur centreon-engine. Créez votre clé publique et envoyez cette clé sur le serveur weblamp.
root@supervision:~# su - centreon-engine
$ ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/centreon-engine/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /var/lib/centreon-engine/.ssh/id_rsa.
Your public key has been saved in /var/lib/centreon-engine/.ssh/id_rsa.pub.
The key fingerprint is:
f0:90:7a:0a:4f:2a:00:86:7b:42:eb:60:fd:4c:8e:68 centreon-engine@supervision
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|.      .         |
|oo    +          |
|+.o  . +         |
|=oo.o.. S        |
|=o.=*o           |
|.E..o+           |
|..               |
|                 |
+-----------------+
$ ssh-copy-id remote_centreon@192.168.1.98
The authenticity of host '192.168.1.98 (192.168.1.98)' can't be established.
ECDSA key fingerprint is 54:54:61:47:ca:74:61:c6:c3:80:26:4b:06:39:e5:39.
Are you sure you want to continue connecting (yes/no)? yes
Now try logging into the machine, with "ssh 'remote_centreon@192.168.1.98'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
Vérifiez l'absence de mot de passe pour la connexion au serveur weblamp avec l'utilisateur remote_centreon, toujours en utilisateur centreon-engine.
$ ssh remote_centreon@192.168.1.98
Linux serveur 3.2.0-4-686-pae #1 SMP Debian 3.2.57-3 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
$ exit
Connection to 192.168.1.98 closed.

1.3 Préparation des commandes Clapi

Avant de créer notre configuration, vous pouvez améliorer l'utilisation de la commande clapi si ce n'est pas déjà fait. Sinon remplacez la commande clapi par centreon -u <admin> -p <password>.

1.4 Installation du plugin centreon_linux_local.pl

Installez le plugin centreon_linux_local
yum install centreon-plugin-Operatingsystems-Linux-Local -y
Pour les utilisateur de Debian, utilisez la procédure sur la page Les nouveaux plugins Centreon chapitre 2.1

2 Création de la configuration avec clapi

2.1 Les commandes unitaires

Les commandes unitaires vont être créés avec les commandes clapi. Les commandes contiendront des macros de service et la macro d'hôte USERREMOTE qui sera utilisé par le template d'hôte OS-Linux-Remote.
Centreon-Clapi

commande OS-Linux-Remote-Cpu
clapi -o CMD -a ADD -v "OS-Linux-Remote-Cpu;2;\$CENTREONPLUGINS\$/centreon_linux_local.pl --plugin=os::linux::local::plugin --mode=cpu --hostname=\$HOSTADDRESS\$   --warning='\$_SERVICEWARNING\$'  --critical='\$_SERVICECRITICAL\$' --remote --ssh-option='-l=\$_HOSTUSERREMOTE\$'"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Cpu;enable_shell;0"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Cpu;command_activate;1"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Cpu;command_locked;0"


commande OS-Linux-Remote-Load
clapi -o CMD -a ADD -v "OS-Linux-Remote-Load;2;\$CENTREONPLUGINS\$/centreon_linux_local.pl --plugin=os::linux::local::plugin --mode=load --hostname=\$HOSTADDRESS\$   --warning='\$_SERVICEWARNING\$'  --critical='\$_SERVICECRITICAL\$' --remote --ssh-option='-l=\$_HOSTUSERREMOTE\$'"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Load;enable_shell;0"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Load;command_activate;1"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Load;command_locked;0"


commande OS-Linux-Remote-Memory
clapi -o CMD -a ADD -v "OS-Linux-Remote-Memory ;2;\$CENTREONPLUGINS\$/centreon_linux_local.pl --plugin=os::linux::local::plugin --mode=memory --hostname=\$HOSTADDRESS\$   --warning='\$_SERVICEWARNING\$'  --critical='\$_SERVICECRITICAL\$' --remote --ssh-option='-l=\$_HOSTUSERREMOTE\$'"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Memory ;enable_shell;0"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Memory ;command_activate;1"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Memory ;command_locked;0"


commande OS-Linux-Remote-Swap
clapi -o CMD -a ADD -v "OS-Linux-Remote-Swap;2;\$CENTREONPLUGINS\$/centreon_linux_local.pl --plugin=os::linux::local::plugin --mode=swap --hostname=\$HOSTADDRESS\$   --warning-usage-prct='\$_SERVICEWARNING\$'  --critical-usage-prct='\$_SERVICECRITICAL\$' --remote --ssh-option='-l=\$_HOSTUSERREMOTE\$'"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Swap;enable_shell;0"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Swap;command_activate;1"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Swap;command_locked;0"
Stacks Image 43670
Exemple de la commande OS-Linux-Remote-Cpu

2.2 La commande OS-Linux-Remote-Storage

Cette commande, contrairement aux précédentes, sera utilisée par plusieurs modèles de services. Voici les relations entre la commande et les modèle de services. Le premier service supervisera tous les disques tandis que les modèles dépendant du premier modèle OS-Linux-Remote-Storage-global superviserons qu'un seul disque.
Stacks Image 17269
synoptique de la relation entre la commande et les modèles de service
Centreon-Clapi

commande OS-Linux-Remote-Storage
clapi -o CMD -a ADD -v "OS-Linux-Remote-Storage;2;\$CENTREONPLUGINS\$/centreon_linux_local.pl --plugin=os::linux::local::plugin --mode=storage --hostname=\$HOSTADDRESS\$    --name='\$_SERVICEDISK\$'  --regexp --warning-usage='\$_SERVICEWARNING\$'  --critical-usage='\$_SERVICECRITICAL\$' --remote --ssh-option='-l=\$_HOSTUSERREMOTE\$'"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Storage;enable_shell;0"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Storage;command_activate;1"
clapi -o CMD -a setparam -v "OS-Linux-Remote-Storage;command_locked;0"

Voici la configuration de la commande dans l'interface web.
Stacks Image 17290
la commande OS-Linux-Remote-Storage

2.3 Les modèles (template) de service

Maintenant, il s'agit de créer les modèles de services pour les modes (commandes) que l'on a défini en début de chapitre.
Stacks Image 17343
synoptique des templates
Les templates de service pour les systèmes de fichiers Linux utiliseront un modèle principal OS-Linux-Remote-Storage-global. Voici les commandes clapi pour créer ces modèles de service.
Centreon-clapi

# CPU
clapi -o STPL -a add -v "OS-Linux-Remote-CPU;cpu;generic-active-service-custom"
clapi -o STPL -a setparam -v "OS-Linux-Remote-CPU;check_command;OS-Linux-Remote-Cpu"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-CPU;WARNING;70"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-CPU;CRITICAL;90"
clapi -o STPL -a setparam -v "OS-Linux-Remote-CPU;graphtemplate;CPU"

# LOAD
clapi -o STPL -a add -v "OS-Linux-Remote-LOAD;load;generic-active-service-custom"
clapi -o STPL -a setparam -v "OS-Linux-Remote-LOAD;check_command;OS-Linux-Remote-Load"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-LOAD;WARNING;4,3,2"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-LOAD;CRITICAL;6,5,4"
clapi -o STPL -a setparam -v "OS-Linux-Remote-LOAD;graphtemplate;LOAD_Average"

# MEMORY
clapi -o STPL -a add -v "OS-Linux-Remote-MEMORY;memory;generic-active-service-custom"
clapi -o STPL -a setparam -v "OS-Linux-Remote-MEMORY;check_command;OS-Linux-Remote-Memory"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-MEMORY;WARNING;70"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-MEMORY;CRITICAL;90"
clapi -o STPL -a setparam -v "OS-Linux-Remote-MEMORY;graphtemplate;Memory"

# SWAP
clapi -o STPL -a add -v "OS-Linux-Remote-SWAP;swap;generic-active-service-custom"
clapi -o STPL -a setparam -v "OS-Linux-Remote-SWAP;check_command;OS-Linux-Remote-Swap"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-SWAP;WARNING;80"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-SWAP;CRITICAL;90"
clapi -o STPL -a setparam -v "OS-Linux-Remote-SWAP;graphtemplate;Memory"

# DISK
# Model Disk global
clapi -o STPL -a add -v "OS-Linux-Remote-Storage-global;disk-global;generic-active-service-custom"
clapi -o STPL -a setparam -v "OS-Linux-Remote-Storage-global;check_command;OS-Linux-Remote-Storage"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-global;WARNING;80"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-global;CRITICAL;90"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-global;DISK;.*"
clapi -o STPL -a setparam -v "OS-Linux-Remote-Storage-global;graphtemplate;Storage"

# DISK
# Disk home
clapi -o STPL -a add -v "OS-Linux-Remote-Storage-Home;disk-home;OS-Linux-Remote-Storage-global"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-Home;DISK;^/home\$"

# DISK
# Disk root
clapi -o STPL -a add -v "OS-Linux-Remote-Storage-Root;disk-root;OS-Linux-Remote-Storage-global"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-Root;DISK;^/\$"

# DISK
# Disk tmp
clapi -o STPL -a add -v "OS-Linux-Remote-Storage-Tmp;disk-tmp;OS-Linux-Remote-Storage-global"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-Tmp;DISK;^/tmp\$"

# DISK
# Disk usr
clapi -o STPL -a add -v "OS-Linux-Remote-Storage-Usr;disk-usr;OS-Linux-Remote-Storage-global"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-Usr;DISK;^/usr\$"

# DISK
# Disk var
clapi -o STPL -a add -v "OS-Linux-Remote-Storage-Var;disk-var;OS-Linux-Remote-Storage-global"
clapi -o STPL -a setmacro -v "OS-Linux-Remote-Storage-Var;DISK;^/var\$"
Vous obtiendrez, par exemple, le modèle OS-Linux-Remote-CPU.
Stacks Image 17380
le template cpu-remote-Model-Service

2.4 Le template d’hôte

Nous regrouperons les services dans un template d'hôte nommé OS-Linux-remote
Centreon-clapi

# HOSTS MODEL GROUP
clapi -o HTPL -a add -v "OS-Linux-remote;OS-Linux-remote;;;;"
clapi -o HTPL -a setmacro -v "OS-Linux-Remote;userremote;remote_centreon"
clapi -o HTPL -a addtemplate -v "OS-Linux-Remote;generic-active-host-custom"
clapi -o STPL -a addhost -v "OS-Linux-Remote-CPU;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-LOAD;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-MEMORY;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-SWAP;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-Storage-Home;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-Storage-Root;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-Storage-Tmp;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-Storage-Usr;OS-Linux-remote"
clapi -o STPL -a addhost -v "OS-Linux-Remote-Storage-Var;OS-Linux-remote"
La macro d'hôte USERREMOTE a été initialisée avec la valeur remote_centreon. Voici le modèle d'hôte dans l'IHM.
Stacks Image 17076
le template d'hôte OS-Linux-remote
Stacks Image 43675
les relations de template de service

2.5 Création de notre hôte

Pour créer notre hôte nous utiliserons le template d'hôte OS-Linux-remote.
Centreon-clapi

# CREATE HOST
clapi -o HOST -a add -v "serveur_test;serveur Linux;192.168.1.98;OS-Linux-remote;Central;"
clapi -o HOST -a applytpl -v "serveur_test"
Stacks Image 17047
Création de notre hôte distant serveur

3 Vérification de la configuration

Appliquez la configuration. Vous devriez avoir cette vue pour les services après quelques minutes de fonctionnement.
Stacks Image 16979
Résultat des plugins pour l'hôte serveur_test
comments powered by Disqus
 Vous êtes ici: