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.
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.
L'hôte distant est un serveur Linux nommé Serveur. le serveur SSH est configuré et opérationnel.
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
commande OS-Linux-Remote-Load
commande OS-Linux-Remote-Memory
commande OS-Linux-Remote-Swap
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"
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.
Centreon-Clapi
commande OS-Linux-Remote-Storage
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.
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.
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
# LOAD
# MEMORY
# SWAP
# DISK
# Model Disk global
# DISK
# Disk home
# DISK
# Disk root
# DISK
# Disk tmp
# DISK
# Disk usr
# DISK
# Disk var
# 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.
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
# 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.
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
# 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"
3 Vérification de la configuration
Appliquez la configuration. Vous devriez avoir cette vue pour les services après quelques minutes de fonctionnement.