Vous êtes ici:

Menu


Stacks Image 15405
Voici un cas pratique de supervision passive. Nous avons un serveur CentOS, qui pourrait être un poller par exemple, situé dans un réseau inaccessible par le serveur de supervision (exemple une DMZ). Par contre notre serveur peut communiquer avec notre serveur de supervision. Nous utiliserons la supervision passive qui est unidirectionnelle avec le protocole NSCA. Nous nous servirons de NSClient ++ version Linux pour envoyer les commandes passives. Le serveur Centreon devra être équipé du démon NSCA.

1 - Installation du client NSClient++

Nous utiliserons les paquets RPM pour l'installation. Tous d'abord, nous allons installer le repo epel-release et certains paquets nécessaire à l'installation. Attention, pour un serveur ISO Centreon, il faudra désinstaller le repo epel-release après l'installation.
yum -y install epel-release
yum -y install wget unzip
Installons maintenant le dernier RPM stable de NSClient pour CentOS 7. Attention les versions 0.5.2.x ne foctionnent pas actuellement.
cd /tmp
wget https://github.com/mickem/nscp/releases/download/0.5.1.46/NSCP-0.5.1.46-el7-x86_64.zip
Décompressons le fichier zip.
# unzip NSCP-0.5.1.46-el7-x86_64.zip
Résultat de la commande
Archive:  NSCP-0.5.1.46-el7-x86_64.zip
  inflating: libnscp-0.5.1.46-1.el7.centos.x86_64.rpm
  inflating: nscp-client-0.5.1.46-1.el7.centos.x86_64.rpm
  inflating: nscp-nsca-0.5.1.46-1.el7.centos.x86_64.rpm
  inflating: nscp-server-0.5.1.46-1.el7.centos.x86_64.rpm
Nous installerons les paquets.
yum install libnscp-0.5.1.46-1.el7.centos.x86_64.rpm -y
yum install nscp-server-0.5.1.46-1.el7.centos.x86_64.rpm -y
yum install nscp-client-0.5.1.46-1.el7.centos.x86_64.rpm -y
yum install nscp-nsca-0.5.1.46-1.el7.centos.x86_64.rpm -y
Dans le cadre d'un serveur avec ISO Centreon, ne pas oublier de désactiver le repo epel.
yum -y remove epel-release

2 - Configuration de NSClient

Nous allons commencer la première configuration. Nous activons le module Unix
nscp settings --activate-module CheckSystemUnix --add-defaults
Nous activons le scheduler qui permettra d'envoyer les commandes de vérification.
nscp settings --activate-module Scheduler --add-default
Nous activons le mode Client NSCA
nscp settings --activate-module NSCAClient --add-defaults
Activez les scripts externes avec cette commande.
nscp settings --activate-module CheckExternalScripts
Nous allons définir un intervalle de cinq minutes pour envoyer les données
nscp settings --path /settings/scheduler/schedules/default --key "interval" --set 5m
Nous allons définir les commandes. Le module Unix ne comprend que trois modes : check_memory, check_uptime et check_os_version. Pour la commande uptime, nous définissons les seuils pour détecter un redémarrage de la machine. Pour la commande mem, nous définissons des seuils à 80% et 90% de la mémoire physique utilisée.
nscp settings --path /settings/scheduler/schedules --key "mem" --set "check_memory \"warn=used > 80%\" \"crit=used > 90%\" \"filter=type='physical'\" \"perf-syntax=used\""
nscp settings --path /settings/scheduler/schedules --key "uptime" --set 'check_uptime "warn=uptime < 1h" "crit=uptime < 30m"'
nscp settings --path /settings/scheduler/schedules --key "host_check" --set 'check_ok.sh message=Host\ UP'
Nous allons définir la cible avec un chiffrage aes (14 pour le démon NSCA) et un mot de passe centreon. Faites en sorte que le démon NSCA du serveur de supervision accepte cette configuration.
nscp settings --path /settings/NSCA/client/targets/default --key encryption --set aes
nscp settings --path /settings/NSCA/client/targets/default --key address --set 192.168.1.99
nscp settings --path /settings/NSCA/client/targets/default --key password --set centreon
Par défaut, le nom d'hôte sera le FQDN de la machine (nom + nom de domaine). Si vous voulez le nom court du serveur, il faudra définir le paramètre comme suit.
nscp settings --path /settings/NSCA/client --key hostname --set '${host}'
On autorisera les paramètres pour les scripts et on détermine le chemin des scripts
nscp settings --path '/settings/external scripts' --key "allow arguments" --set true
nscp settings --path '/settings/external scripts' --key "script path" --set /usr/share/nsclient/scripts/
Il faudra aussi changer les permissions du script.
chmod +x /usr/share/nsclient/scripts/check_ok.sh
Activez le démarrage automatique du service NSClient et démarrez le service.
systemctl enable nsclient.service
systemctl start nsclient.service

3 - Test sur le serveur de supervision

Au bout de 5 minutes, vous devriez avoir ces messages dans le fichier de log /var/log/centreon-engine/centengine.log. Ceux-ci pour l'hôte :
[1564762350] [761] EXTERNAL COMMAND: PROCESS_HOST_CHECK_RESULT;centreon1904;0;OK: Everything is going to be fine
[1564762350] [761] Warning:  Passive check result was received for host 'centreon1904', but the host could not be found!
Ceux-ci pour les services :
check_uptime
[1564762350] [761] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;centreon1904;uptime;2;CRITICAL: uptime: 05:32h, boot: 2019-08-02 10:40:27 (UTC)|'uptime_uptime'=19921;172800;86400
[1564762350] [761] Warning:  Passive check result was received for service 'uptime' on host 'centreon1904', but the host could not be found!
check_memory
[1564762350] [761] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;centreon1904;mem;1;WARNING: physical = 922.539MB, cached = 1.459GB, swap = 0B|'physical'=0.90091GB;1.43608;1.61559;0;1.7951 'physical %'=50%;80;90;0;100 'cached'=1.45879GB;1.43608;1.61559;0;1.7951 'cached %'=81%;80;90;0;100 'swap'=0GB;1.59999;1.79999;0;1.99999 'swap %'=0%;80;90;0;100
[1564762350] [761] Warning:  Passive check result was received for service 'mem' on host 'centreon1904', but the host could not be found!
Si le script n'est pas exécutable, vous aurez ce message :
[1564762050] [761] EXTERNAL COMMAND: PROCESS_HOST_CHECK_RESULT;centreon1904;3;The command (check_ok.sh) returned an invalid return code: 126

4 - Configuration Centreon

Il est temps de voir la configuration dans Centreon. Le serveur Centreon utilise les plugins-pack livrée avec la version communautaire. Commençons par l'hôte.
Stacks Image 36702
Dans l'onglet traitement des données, on paramètre le seuil de fraîcheur de résultat. Au delà de ce seuil, on déclenchera la commande indiquée au-dessus avec la valeur Critical et la sortie No Check !!.
Stacks Image 36725
Continuons avec le service mem.
Stacks Image 36722
On peut éventuellement mettre un période de contrôle pour éviter les messages warning lors de l'application de la configuration.
Stacks Image 36719
Ne pas oublier le contrôle de fraicheur. Pour le service uptime, dupliquez le service mem et faites les modifications suivantes.
Stacks Image 36716
Nous devons indiquer au moteur de supervision qu'il doit appliquer les contrôles de fraîcheur pour les hôtes. Sélectionnez Configuration -> Poller -> Engine Configuration
Stacks Image 36713
Appliquez la configuration, vous devez avoir ceci dans la vue temps réel.
Stacks Image 36710
Si le contrôle de fraîcheur s'effectue avant les premiers envois de services passifs par le client NSClient du serveur distant, vous pouvez avoir ceci.
Stacks Image 36707
Lorsque les services passifs sont interceptés par le démons NSCA du serveur de supervision, vous obtenez ceci, indiquant le bon fonctionnement du serveur distant. le dysfonctionnement du serveur sera détecté par le contrôle de fraîcheur si aucune donnée n'est reçu après le délai de 900 secondes. Vous aurez donc une alerte comme la copie d'écran ci-dessus.
Stacks Image 36740
Voici un exemple d'une alerte suite à un redémarrage intempestif.
Stacks Image 36747
On obtient aussi des données de performances.
Stacks Image 36752
Ainsi se termine notre tuto sur les services passifs.
comments powered by Disqus
comments powered by Disqus
 Vous êtes ici: