[comment]: # translation:outdated

[comment]: # ({15419152-0cdc5e2e})
# 2 Commandes à distance

[comment]: # ({/15419152-0cdc5e2e})

[comment]: # ({4ed812dd-15f695f8})
#### Aperçu

Avec les commandes à distance, vous pouvez définir qu’une certaine
commande prédéfinie est automatiquement exécutée sur l’hôte surveillé
sous certaines conditions.

Ainsi, les commandes à distance constituent un mécanisme puissant pour
la supervision proactive intelligente.

Dans les utilisations les plus évidentes de cette fonctionnalité, vous
pouvez essayer de :

-   Redémarrer automatiquement certaines applications (serveur Web,
    middleware, CRM) si elles ne répondent pas
-   Utiliser la commande 'reboot' IPMI pour redémarrer un serveur
    distant s'il ne répond pas aux demandes
-   Libérer automatiquement de l'espace disque (suppression des anciens
    fichiers, nettoyage de /tmp) si vous manquez d'espace disque
-   Migrer une VM d'un boîtier physique à un autre en fonction de la
    charge du processeur
-   Ajouter de nouveaux nœuds à un environnement cloud en cas de
    ressources CPU insuffisantes (disque, mémoire, etc.)

La configuration d'une action pour les commandes à distance est
similaire à celle pour l'envoi d'un message, la seule différence étant
que Zabbix exécutera une commande au lieu d'envoyer un message.

Les commandes à distance peuvent être exécutées par un serveur, un proxy
ou un agent Zabbix. Les commandes à distance sur l'agent Zabbix peuvent
être exécutées directement par le serveur Zabbix ou via un proxy Zabbix.
Les commandes distantes de l'agent Zabbix et du proxy Zabbix sont
désactivées par défaut. Elles peuvent être activées en définissant le
paramètre EnableRemoteCommands sur '1'.

La limite de caractère des commandes à distance après le développement
de toutes les macros dépend du type de base de données et du jeu de
caractères (les caractères non ASCII nécessitent le stockage de plus
d'un octet) :

|   |   |   |
|---|---|---|
|*Base de données*|*Limite en caractères*|*Limite en octets*|
|**MySQL**|65535|65535|
|**Oracle**|2048|4000|
|**PostgreSQL**|65535|non limité|
|**IBM DB2**|2048|2048|
|**SQLite (seulement sur le Zabbix proxy)**|65535|non limité|

Les commandes à distance exécutées par le serveur Zabbix sont exécutées
comme décrit dans la section [Exécution des
commandes](/fr/manual/appendix/command_execution), y compris la
vérification du code de sortie.

Les commandes à distance sont exécutées même si l'hôte cible est en
maintenance.

Le tutoriel suivant fournit des instructions pas à pas sur la
configuration de commandes à distance.

[comment]: # ({/4ed812dd-15f695f8})

[comment]: # ({b001be5f-dc06d94d})
#### Configuration

Les commandes à distance exécutées sur l'agent Zabbix (scripts
personnalisés) doivent d'abord être activées dans le fichier
[zabbix\_agentd.conf](/fr/manual/appendix/config/zabbix_agentd)
correspondant.

Assurez-vous que le paramètre **EnableRemoteCommands** est défini sur
**1** et non commenté. Redémarrez le démon de l'agent si vous modifiez
ce paramètre.

::: noteimportant
Les commandes à distance ne fonctionnent pas avec
les agents Zabbix actifs.
:::

Ensuite, lors de la configuration d’une nouvelle action dans
*Configuration → Actions* :

-   Définir les conditions appropriées. Dans cet exemple, indiquez que
    l'action est activée en cas de problème au niveau désastre avec
    l'une des applications Apache :

![](../../../../../../assets/fr/manual/config/notifications/action/operation/conditions_restart1.png)

Tous les champs de saisie obligatoires sont marqués d'un astérisque
rouge.

-   Dans l'onglet
    *[Opérations](/fr/manual/config/notifications/action/operation#configurer_une_operation)*,
    sélectionner le type d'opération **Commande à distance**
-   Sélectionnez le type de commande à distance (IPMI, Script
    personnalisé, SSH, Telnet, Script global).
-   Si le type *Script personnalisé* est sélectionné, choisissez la
    manière dont le script personnalisé sera exécuté (par l'agent
    Zabbix, le serveur Zabbix (proxy) ou le serveur Zabbix uniquement).
-   Saisissez la commande à distance

Par exemple :

    sudo /etc/init.d/apache restart 

Dans ce cas, Zabbix essaiera de redémarrer un processus Apache. Avec
cette commande, assurez-vous que la commande est exécutée sur l’agent
Zabbix (cliquez sur le bouton *agent Zabbix* à côté de *Exécuter sur*).

::: noteimportant
Notez que pour l'utilisation de **sudo**
l'utilisateur Zabbix ne dispose pas des autorisations pour redémarrer
les services systèmes par défaut. Voir ci-dessous des astuces de
configuration de **sudo**.
:::

::: noteclassic
L'agent Zabbix doit s'exécuter sur l'hôte distant et
accepter les connexions entrantes. L'agent Zabbix exécute les commandes
en arrière-plan.
:::

Les commandes à distance sur l'agent Zabbix sont exécutées sans délai
par la clé system.run\[,nowait\] et les résultats de l'exécution ne sont
pas vérifiées. Sur le serveur Zabbix, les commandes à distance sont
exécutées avec le délai d'expiration défini dans le paramètre
TrapperTimeout du fichier zabbix\_server.conf et leurs résultats sont
[vérifiés](/fr/manual/appendix/command_execution#verification_du_code_de_sortie).

[comment]: # ({/b001be5f-dc06d94d})

[comment]: # ({3383a336-a1b1e7ea})
#### Autorisations d'accès

Assurez-vous que l'utilisateur 'zabbix' dispose des autorisations
d'exécution pour les commandes configurées. On peut être intéressé par
l'utilisation de **sudo** pour donner accès à des commandes
privilégiées. Pour configurer l'accès, exécutez en tant que root :

    # visudo

Exemples de lignes pouvant être utilisées dans le fichier *sudoers* :

    # permet à l'utilisateur 'zabbix' d'exécuter toutes les commandes sans mot de passe.
    zabbix ALL=NOPASSWD: ALL

    # permet à l'utilisateur 'zabbix' de redémarrer apache sans mot de passe.
    zabbix ALL=NOPASSWD: /etc/init.d/apache restart

::: notetip
Sur certains systèmes, le fichier *sudoers* empêchera
les utilisateurs non locaux d’exécuter des commandes. Pour changer cela,
commentez l'option **requiretty** dans */etc/sudoers*.
:::

[comment]: # ({/3383a336-a1b1e7ea})

[comment]: # ({0fa38947-1f3becef})
#### Commandes à distance avec plusieurs interfaces

Si le système cible possède plusieurs interfaces du type sélectionné
(agent Zabbix ou IPMI), les commandes à distance seront exécutées sur
l'interface par défaut.

Il est possible d'exécuter des commandes à distance via SSH et Telnet en
utilisant une autre interface que celle de l'agent Zabbix. L'interface
disponible à utiliser est sélectionnée dans l'ordre suivant :

-   Interface par défaut de l'agent Zabbix
-   Interface par défaut SNMP
-   Interface par défaut JMX
-   Interface par défaut IPMI

[comment]: # ({/0fa38947-1f3becef})

[comment]: # ({cfc6e83e-26b199db})
#### Commandes à distance IPMI

Pour les commandes distantes IPMI, la syntaxe suivante doit être
utilisée :

    <command> [<value>]

où

-   <command> - une des commandes IPMI sans espaces
-   <value> - 'on', 'off' ou tout entier non signé. <valeur>
    est un paramètre facultatif.

[comment]: # ({/cfc6e83e-26b199db})

[comment]: # ({49fc1281-4c860844})
#### Exemples

[comment]: # ({/49fc1281-4c860844})

[comment]: # ({8dddc2f0-deb28bf3})
##### Exemple 1

Redémarrage de Windows sous certaines conditions.

Pour redémarrer automatiquement Windows en cas de problème détecté par
Zabbix, définissez les actions suivantes :

|PARAMETRE|Description|
|---------|-----------|
|Type d'opération|'Commande à distance'|
|Type|'Script personnalisé'|
|Commande|c:\\windows\\system32\\shutdown.exe -r -f|

[comment]: # ({/8dddc2f0-deb28bf3})

[comment]: # ({6bd2af43-0d8270fe})
##### Exemple 2

Redémarrage de l'hôte en utilisant la vérification IPMI.

|PARAMETRE|Description|
|---------|-----------|
|Type d'opération|'Commande à distance'|
|Type|'IPMI'|
|Commande|reset|

[comment]: # ({/6bd2af43-0d8270fe})

[comment]: # ({d6961a02-d5ff30e8})
##### Exemple 3

Mise hors tension de l'hôte à l'aide de la vérification IPMI.

|PARAMETRE|Description|
|---------|-----------|
|Type d'opération|'Commande à distance'|
|Type|'IPMI'|
|Commande|power off|

[comment]: # ({/d6961a02-d5ff30e8})
