Aller au contenu principal
Version: ⭐ 24.10

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.

image

Par défaut, les commandes verrouillées sont masquées. Cocher la case "Eléments verrouillés" pour les afficher toutes.

Ajouter une commande

  1. Rendez-vous dans le menu Configuration > Commands
  2. Cliquez sur le bouton Add

image

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

  1. Connectez-vous en root au collecteur qui exécutera la commande.

  2. É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.)

  3. 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
  4. 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é :

dnf 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é :

dnf install centreon-connector-perl