Dans la section Administration → Scripts, des scripts globaux définis par l'utilisateur peuvent être configurés et gérés.
Des scripts globaux, en fonction de la portée configurée et des autorisations utilisateur, sont disponibles pour exécution :
Les scripts sont exécutés sur l'agent Zabbix, le serveur Zabbix (proxy) ou le serveur Zabbix uniquement. Voir aussi Exécution de la commande.
Les scripts distants de l'agent Zabbix et du proxy Zabbix sont désactivés par défaut. Ils peuvent être activés par :
Une liste des scripts existants avec leurs détails s'affiche.
Données affichées :
Colonne | Description |
---|---|
Nom | Nom du script. Cliquer sur le nom du script ouvre le formulaire de configuration du script. |
Portée | Portée du script - opération d'action, action manuelle de l'hôte ou action manuelle de l'événement. Ce paramètre détermine où le script est disponible. |
Utilisé dans les actions | Les actions où le script est utilisé sont affichées. |
Type | Le type de script est affiché - Commande Webhook, Script, SSH, Telnet ou IPMI. |
Exécuter sur | Il est affiché si le script sera exécuté sur l'agent Zabbix, le serveur Zabbix (proxy) ou le serveur Zabbix uniquement. |
Commandes | Toutes les commandes à exécuter dans le script sont affichées. |
Groupe d'utilisateurs | Le groupe d'utilisateurs pour lequel le script est disponible est affiché (ou Tous pour tous les groupes d'utilisateurs). |
Groupe d'hôtes | Le groupe d'hôtes pour lequel le script est disponible est affiché (ou Tous pour tous les groupes d'hôtes). |
Accès hôte | Le niveau d'autorisation pour le groupe hôte est affiché - Lecture ou Écriture. Seuls les utilisateurs disposant du niveau d'autorisation requis auront accès à l'exécution du script. |
Pour configurer un nouveau script, cliquez sur le bouton Créer un script dans le coin supérieur droit.
Un bouton sous la liste offre une option d'édition en masse :
Pour utiliser cette option, cochez les cases devant les scripts respectifs et cliquez sur Supprimer.
Vous pouvez utiliser le filtre pour n'afficher que les scripts qui vous intéressent. Pour de meilleures performances de recherche, les données sont recherchées avec des macros non résolues.
Le lien Filtre est disponible au-dessus de la liste des scripts. Si vous cliquez dessus, un filtre devient disponible où vous pouvez filtrer les scripts par nom et portée.
Attributs de script :
Paramètre | Description | |
---|---|---|
Nom | Nom unique du script. Ex. Vider le système de fichiers /tmp |
|
Étendue | Portée du script - opération d'action, action manuelle de l'hôte ou action manuelle de l'événement. Ce paramètre détermine où le script peut être utilisé - dans les commandes à distance des opérations d'action, depuis le menu hôte ou depuis le menu événement respectivement. Définir la portée sur 'Action d'opération' rend le script disponible pour tous les utilisateurs ayant accès à Configuration → Actions. Si un script est réellement utilisé dans un action, sa portée ne peut pas être modifiée en dehors de 'l'Action d'opération'. Prise en charge des macros La portée affecte la gamme de macros disponibles. Par exemple, les macros liées à l'utilisateur ({USER.*}) sont prises en charge dans les scripts pour permettre la transmission d'informations sur l'utilisateur qui a lancé le script. Cependant, elles ne sont pas prises en charge si la portée du script est une opération d'action, car les opérations d'action sont exécutées automatiquement. Pour savoir quelles macros sont prises en charge, effectuez une recherche sur 'Notifications et commandes basées sur des déclencheurs/Commandes basées sur des déclencheurs', 'Scripts d'action d'hôte manuels' et 'Scripts d'action d'événement manuels' dans le tableau des macros prises en charge. Notez que si une macro peut se résoudre en une valeur avec des espaces (par exemple, le nom d'hôte), n'oubliez pas de citer si nécessaire. |
|
Chemin du menu | Le chemin de menu souhaité vers le script. Par exemple, Default ou Default/ , affichera le script dans le répertoire respectif. Les menus peuvent être imbriqués, par ex. Menu principal/Sous-menu1/Sous-menu2 . Lors de l'accès aux scripts via le menu hôte/événement dans les sections de surveillance, ils seront organisés en fonction des répertoires donnés.Ce champ s'affiche uniquement si 'Action manuelle de l'hôte' ou 'Action manuelle d'événement' est sélectionné comme Étendue. |
|
Type | Cliquez sur le bouton correspondant pour sélectionner le type de script : Webhook, Script, SSH, Telnet ou IPMI. |
|
Type de script : Webhook | ||
Paramètres | Spécifiez les variables du webhook sous forme de paires attribut-valeur. Voir aussi : Configuration des médias Webhook. Les macros et macros utilisateur personnalisées sont pris en charge dans les valeurs de paramètre. La prise en charge des macros dépend de l'étendue du script (voir Étendue ci-dessus). |
|
Script | Entrez le code JavaScript dans le bloc qui apparaît lorsque vous cliquez dans le champ de paramètre (ou sur le bouton afficher/modifier à côté). La prise en charge des macros dépend de l'étendue du script (voir Étendue ci-dessus).<br >Voir aussi : Configuration des médias Webhook, Objets Javascript supplémentaires. |
|
Expiration | Délai d'exécution JavaScript (1-60s, 30s par défaut). Les suffixes de temps sont pris en charge, par ex. 30s, 1m. |
|
Type de script : Script | ||
Exécuter sur | Cliquez sur le bouton correspondant pour exécuter le script shell sur : Agent Zabbix - le script sera exécuté par l'agent Zabbix (si l'élément system.run est autorisé) sur l'hôte Serveur Zabbix (proxy) - le script sera exécuté par le serveur Zabbix ou le proxy (si activé par EnableRemoteCommands) - selon que l'hôte est surveillé par un serveur ou un proxy Serveur Zabbix - le script sera exécuté par le serveur Zabbix uniquement |
|
Commandes | Entrez le chemin complet des commandes à effectuer dans le script. La prise en charge des macros dépend de la portée du script (voir Étendue ci-dessus). Les macros utilisateur personnalisées sont prises en charge. |
|
Type de script : SSH | ||
Méthode d'authentification | Sélectionnez la méthode d'authentification - mot de passe ou clé publique. | |
Nom d'utilisateur | Entrez le nom d'utilisateur. | |
Mot de passe | Entrez le mot de passe. Ce champ est disponible si 'Mot de passe' est sélectionné comme méthode d'authentification. |
|
Fichier de clé publique | Entrez le chemin d'accès au fichier de clé publique. Ce champ est disponible si 'Clé publique' est sélectionné comme méthode d'authentification. |
|
Fichier de clé privée | Entrez le chemin d'accès au fichier de clé privée. Ce champ est disponible si 'Clé publique' est sélectionné comme méthode d'authentification. |
|
Phrase de passe de la clé | Saisissez la phrase secrète. Ce champ est disponible si 'Clé publique' est sélectionné comme méthode d'authentification. |
|
Port | Entrez le port. | |
Commandes | Entrez les commandes. La prise en charge des macros dépend de la portée du script (voir Étendue ci-dessus). Les macros utilisateur personnalisées sont prises en charge. |
|
Type de script : Telnet | ||
Nom d'utilisateur | Entrez le nom d'utilisateur. | |
Mot de passe | Entrez le mot de passe. | |
Port | Entrez le port. | |
Commandes | Entrez les commandes. La prise en charge des macros dépend de la portée du script (voir Étendue ci-dessus). Les macros utilisateur personnalisées sont prises en charge. |
|
Type de script : IPMI | ||
Commandes | Entrez les commandes IPMI. La prise en charge des macros dépend de la portée du script (voir Étendue ci-dessus). Les macros utilisateur personnalisées sont prises en charge. |
|
Description | Entrez une description pour le script. | |
Groupe d'hôtes | Sélectionnez le groupe d'hôtes pour lequel le script sera disponible (ou Tous pour tous les groupes d'hôtes). | |
Groupe d'utilisateurs | Sélectionnez le groupe d'utilisateurs pour lequel le script sera disponible (ou Tous pour tous les groupes d'utilisateurs). Ce champ s'affiche uniquement si 'Action manuelle de l'hôte' ou 'Action manuelle d'événement' est sélectionné comme Étendue. |
|
Permissions d'hôte requises | Sélectionnez le niveau d'autorisation pour le groupe d'hôtes - Lecture ou Écriture. Seuls les utilisateurs disposant du niveau d'autorisation requis auront accès à l'exécution du script. Ce champ s'affiche uniquement si 'Action manuelle de l'hôte' ou 'Action manuelle d'événement' est sélectionné comme Étendue. |
|
Activer confirmation | Cochez la case pour afficher un message de confirmation avant d'exécuter le script. Cette fonctionnalité peut être particulièrement utile avec des opérations potentiellement dangereuses (comme un script de redémarrage) ou celles qui peuvent prendre beaucoup de temps. Cette option s'affiche uniquement si 'Action manuelle de l'hôte' ou 'Action manuelle d'événement' est sélectionné comme Étendue. |
|
Texte de confirmation | Saisissez un texte de confirmation personnalisé pour la fenêtre contextuelle de confirmation activée avec la case à cocher ci-dessus (par exemple, Le système distant va être redémarré. Êtes-vous sûr ?). Pour voir à quoi ressemblera le texte, cliquez sur Test de la confirmation à côté du champ. Les macros {HOST.*} et {USER.*} sont prises en charge. Les macros utilisateur personnalisées sont prises en charge. Remarque : les macros ne seront pas développées lors du test du message de confirmation. Ce champ s'affiche uniquement si 'Action manuelle de l'hôte' ou 'Action manuelle d'événement' est sélectionné comme Étendue. |
Les scripts exécutés par le serveur Zabbix sont exécutés dans l'ordre décrit dans la section Exécution de la commande, y compris la vérification du code de sortie. Le résultat du script sera affiché dans une fenêtre contextuelle qui apparaîtra après l'exécution du script.
Remarque : La valeur de retour du script est la sortie standard avec l'erreur standard.
Voir un exemple de script et la fenêtre de résultat ci-dessous :
Le résultat du script n'affiche pas le script lui-même.
Vous pouvez rencontrer une situation où un délai d'attente se produit lors de l'exécution d'un script.
Voir un exemple de script exécuté sur l'agent Zabbix et la fenêtre de résultat ci-dessous :
Le message d'erreur, dans ce cas, est le suivant :
Afin d'éviter une telle situation, il est conseillé d'optimiser le script lui-même (au lieu d'ajuster le paramètre Timeout à une valeur correspondante (dans notre cas, > '5') en modifiant la configuration de l'agent Zabbix et la configuration du serveur Zabbix).
Si le paramètre Timeout est tout de même modifié dans la configuration de l'agent Zabbix, le message d'erreur suivant peut apparaître :
Cela signifie qu'une modification a été apportée dans la configuration de l'agent Zabbix et qu'il est nécessaire de modifier le paramètre Timeout également dans la configuration du serveur Zabbix.
Voici un exemple de script exécuté sur le serveur Zabbix et la fenêtre résultat ci-dessous :
Il est également conseillé d'optimiser le script lui-même (au lieu d'ajuster paramètre TrapperTimeout à une valeur correspondante (dans notre cas, > ‘11’) en modifiant la configuration du serveur Zabbix).