Les commandes
Définition
Une commande est la définition d’une ligne de commande qui utilise un script ou une application afin de réaliser une action. Il est possible d’exécuter cette commande en précisant des arguments.
Il existe quatre types de commandes :
- Verification sont utilisées par les ordonnanceurs afin de vérifier le statut d’un hôte ou d’un service
- Notification sont utilisées par les ordonnanceurs pour alerter les contacts (via mail, SMS...).
- Discovery sont utilisées par les règles de découverte.
- Miscellaneous sont utilisées par les modules complémentaires (pour effectuer certaines actions), par l’ordonnanceur pour le traitement des données...
Toutes les commandes peuvent être configurées au sein du menu : Configuration > Commands.
Par défaut, les commandes verrouillées sont masquées. Cocher la case "Eléments verrouillés" pour les afficher toutes.
Ajouter une commande
- Rendez-vous dans le menu Configuration > Commands
- Cliquez sur le bouton Add
Les champs de configuration d’une commande sont les mêmes qu’importe le type de commande choisi.
Les champs de configuration
-
Le champ command Name définit le nom de la commande.
-
Le champ Command Type permet de choisir le type de commande.
-
Le champ Command Line indique l’application ou le script utilisé avec la commande.
-
La case Enable shell permet d’activer des fonctions propres à un shell tel que le pipe...
-
Le champ Argument Example définir des exemples d'arguments (chaque argument commence par un "!")
-
Le bouton Describe arguments permet d’ajouter une description aux arguments de type “$ARGn$”. Cette description sera visible lors de l’utilisation de la commande dans un formulaire d’hôte ou de service.
-
Le bouton Clear arguments efface la description des arguments définie
-
Le bouton Describe macros permet d’ajouter une description aux macros personalisées. Ces descriptions seront visibles lors de l’ajout de la commande sur un host ou un service.
-
La liste de sélection Connectors permet de lier un connecteur à la commande. Pour davantage d’informations sur les connecteurs reportez-vous au chapitre les connecteurs.
-
Le champ Graph template permet de lier la commande à un modèle de graphique.
-
Le champ Comment permet de commenter la commande.
Arguments et macros
Au sein du champ Command Line il est possible de faire appel à des macros ainsi qu’à des arguments.
Les arguments sont utilisés afin de pouvoir passer différents paramètres aux scripts appelés par les commandes. Lors de l’exécution de la commande par l’ordonnanceur, chacun des arguments et macros sont remplacés par leur valeur respective. Chaque macro se présente sous la forme $valeur$ :
$CENTREONPLUGINS$/centreon_linux_snmp.pl --plugin=os::linux::snmp::plugin --mode=cpu \
--hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' \
--snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ \
--warning-average='$_SERVICEWARNING$' \
--critical-average='$_SERVICECRITICAL$' $_SERVICEEXTRAOPTIONS$
La bonne pratique veut que nous remplacions les arguments par des macros personnalisées.
Liste blanche de commandes
Pour des raisons de sécurité, vous pouvez vouloir restreindre les commandes pouvant être exécutées par un Collecteur et/ou un Agent CMA. Vous devez, pour cela, créer un fichier de liste blanche sur le Collecteur, et renseigner les commandes autorisées. En l'absence de ce fichier, toutes les commandes sont autorisées.
Ajouter une commande à la liste blanche
-
Connectez-vous en root au collecteur qui exécutera la commande.
-
Éditez (ou créez) le fichier suivant : /etc/centreon-engine-whitelist/my-whitelist.yml. (Vous pouvez créer autant de fichiers de listes blanches que vous souhaitez dans ce répertoire.)
-
Assurez-vous que les droits d'accès corrects sont définis sur tous les fichiers de liste blanche :
chown root:centreon-engine /etc/centreon-engine-whitelist/my-whitelist.yml
chmod 0640 /etc/centreon-engine-whitelist/my-whitelist.yml
chown root:centreon-engine /etc/centreon-engine-whitelist
chmod 750 /etc/centreon-engine-whitelist -
Utilisez une regex pour définir les commandes autorisées. Exemple :
whitelist:
regex:
- \/usr\/lib(64)?\/nagios\/plugins\/.*
- \/usr\/lib(64)?\/nagios\/plugins\/.check_.*
- \/opt\/my_plugins\/my_custom_plugin\.py .*
cma-whitelist:
default:
regex:
- \/usr\/lib(?:64)?\/nagios\/plugins\/.*
- \/usr\/lib(?:64)?\/centreon\/plugins\/check_centreon_bam.*
- \"C:\/Program Files\/Centreon\/Plugins\/centreon_plugins.exe\"\s+.+
- ^\{\s*"check":".*\}$
- \/usr\/bin\/echo\s+Host\s+alive
- cmd\.exe\s+\/C\s+echo\s+.*
Le bloc "whitelist" définit les commandes pouvant être exécutées par le Collecteur.
les deux premières lignes doivent toujours être présentes dans le bloc "whitelist", elles correspondent aux commandes Centreon.
Le bloc "cma-whitelist" définit les commandes pouvant être exécutées par l'agent CMA.
Dans le bloc "cma-whitelist", vous pouvez au besoin spécifier des liste blanches par hôte, la syntaxe sera :
whitelist:
regex:
- \/usr\/lib(64)?\/nagios\/plugins\/.*
- \/usr\/lib(64)?\/nagios\/plugins\/.check_.*
- \/opt\/my_plugins\/my_custom_plugin\.py .*
cma-whitelist:
default:
regex:
- \/usr\/lib(?:64)?\/nagios\/plugins\/.*
- \/usr\/lib(?:64)?\/centreon\/plugins\/check_centreon_bam.*
- \"C:\/Program Files\/Centreon\/Plugins\/centreon_plugins.exe\"\s+.+
- ^\{\s*"check":".*\}$
- \/usr\/bin\/echo\s+Host\s+alive
- cmd\.exe\s+\/C\s+echo\s+.*
hosts:
- hostname:Host_1
regex:
- ...
- hostname:Host_2
regex:
- ...
Utilisez .*
afin d'inclure tous les arguments dans la regex.
Le .*
à la fin de la regex lui permet de gérer tout argument qu'elle contiendrait. Attention, le format doit être strictement identique à celui ci-dessus (cela inclut les indentations).
Si vous n'avez pas autorisé votre commande dans la liste blanche du collecteur, cela vous sera signalé dans la colonne Informations de la page Statut des ressources.
Les connecteurs
Connecteur SSH
Le connecteur Centreon SSH Connector est un logiciel Centreon gratuit, disponible sous licence Apache Software License version 2 (ASL 2.0). Utilisé avec Centreon Engine, il accélère l'exécution des contrôles faits via SSH.
Installation
Exécutez la commande suivante en tant qu'utilisateur privilégié :
- Alma / RHEL / Oracle Linux 8
- Alma / RHEL / Oracle Linux 9
- Debian 12
dnf install centreon-connector-ssh
dnf install centreon-connector-ssh
apt install centreon-connector-ssh
Perl connector
Le connecteur Centreon Perl Connector est un logiciel Centreon gratuit, disponible sous licence Apache Software License version 2 (ASL 2.0). Utilisé avec Centreon Engine, il accélère l'exécution des scripts Perl.
Installation
Exécutez la commande suivante en tant qu'utilisateur privilégié :
- Alma / RHEL / Oracle Linux 8
- Alma / RHEL / Oracle Linux 9
- Debian 12
dnf install centreon-connector-perl
dnf install centreon-connector-perl
apt install centreon-connector-perl