This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

7 Scripts

Aperçu

Dans la section Administration → Scripts, des scripts globaux définis par l'utilisateur peuvent être configurés et gérés.

Ces scripts, en fonction des autorisations utilisateur définies, sont ensuite disponibles pour exécution en cliquant sur l'hôte dans différents emplacements de l'interface web (Tableau de bord, Problèmes, Dernières données, Cartes) et peuvent également être exécutés en tant qu'opération d'action. Les scripts sont exécutés sur le serveur ou l'agent Zabbix.

Une liste des scripts existants avec leurs détails est affichée.

Données affichées :

Colonne Description
Nom Nom du script. Un clic sur le nom du script ouvre le formulaire de configuration du script.
Type Le type de script est affiché - Script ou commande IPMI.
Exécuter sur Indique si le script sera exécuté sur le serveur Zabbix ou un agent.
Commandes Toutes les commandes à exécuter dans le script sont affichées.
Groupe d'utilisateurs Le groupe d'utilisateurs auquel 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 du groupe d'hôtes 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.

Option d'édition collective

Les boutons situés sous la liste offrent des options d’édition collective :

  • Supprimer - supprime les scripts

Pour utiliser ces options, cochez les cases devant les scripts respectifs, puis cliquez sur le bouton Supprimer.

Filtre

Comme la liste peut contenir de nombreux script, il peut être nécessaire de filtrer ceux dont vous avez réellement besoin.

Le lien Filtre est disponible au-dessus de la liste des script. Si vous cliquez dessus, un filtre devient disponible et vous pouvez filtrer les script par leur nom.

Configuration d'un script global

Attributs de script :

Paramètre Description
Nom Nom unique du script.
Depuis Zabbix 2.2, le nom peut être préfixé avec le chemin souhaité, par exemple, Default/, en plaçant le script dans le répertoire associé. Lors de l'accès aux scripts via le menu dans les sections Surveillance, ils seront organisés en fonction des répertoires donnés.
Un script ne peut pas porter le même nom qu'un répertoire existant (et inversement). Un nom de script doit être unique dans son répertoire.
Les noms de script non échappés sont validés pour leur unicité, c'est-à-dire que “Ping” et “\Ping” ne peuvent pas être ajoutés dans le même dossier. Une simple barre oblique inverse échappe à tout symbole directement après. Par exemple, les caractères '/' et '\' peuvent être masqués par une barre oblique inverse, c'est-à-dire \/ ou \\.
Type Cliquez sur le bouton correspondant pour sélectionner le type de script - commande IPMI ou Script.
Exécuter sur Cliquez sur le bouton correspondant pour exécuter le script sur :
agent Zabbix - le script sera exécuté par l'agent Zabbix sur l'hôte
Serveur Zabbix (proxy) - le script sera exécuté par le serveur Zabbix ou le proxy - selon que l'hôte soit surveillé par un serveur ou par un proxy
Serveur Zabbix - le script sera exécuté par le serveur Zabbix uniquement
L'option permettant d'exécuter des scripts sur l'agent Zabbix est disponible depuis la version Zabbix 2.0 (à condition que les commandes à distance soient activées dans le paramètre EnableRemoteCommands du fichier de configuration de l'agent Zabbix).
Commandes Entrez le chemin complet des commandes à exécuter dans le script.
Les macros suivantes sont prises en charge dans les commandes : {HOST.CONN}, {HOST.IP}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}. Si une macro peut résoudre une valeur avec des espaces (par exemple, nom d'hôte), n'oubliez pas de mettre des guillemets.
Depuis Zabbix 2.2, les macros utilisateur sont supportées les commandes de script.
Description Entrez une description pour le script.
Groupe d'utilisateurs Sélectionnez le groupe d'utilisateurs auquel le script sera disponible (ou Tous pour tous les groupes d'utilisateurs).
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).
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.
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 des opérations pouvant prendre beaucoup de temps.
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 sera redémarré. Êtes-vous sûr ?). Pour voir à quoi ressemblera le texte, cliquez sur Confirmation du test à côté du champ.
Depuis Zabbix 2.2, le texte de confirmation développera les macros de nom d’hôte - {HOST.HOST}, {HOST.NAME}, les macros de connexion d’hôte - {HOST.IP}, {HOST.DNS}, {HOST.CONN} et les macros utilisateur. Remarque : Les macros ne seront pas développées lors du test du message de confirmation.

Exécution du script et résultat

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 une fois le script exécuté.

Remarque : La valeur de retour du script correspond à la sortie standard avec l'erreur standard.

Voir un exemple de script et la fenêtre de résultat ci-dessous :

uname
       uname --non-existing-flag
       /tmp/non_existing_script.sh

Expiration du script

Agent Zabbix

Vous pouvez rencontrer une situation de dépassement de délai lors de l'exécution d'un script.

Voir l'exemple d'un 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 :

Timeout while executing a shell script.

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 celle du serveur Zabbix).

Dans le cas contraire, le paramètre Timeout est modifié dans la configuration de l'agent Zabbix, le message d'erreur suivant apparaît :

Get value from agent failed: ZBX_TCP_READ() timed out.

Cela signifie que la configuration de l'agent Zabbix a été modifiée et qu'il est nécessaire de modifier le paramètre de délai d'attente également dans la configuration du serveur Zabbix.

Zabbix server/proxy

Voir un exemple de script exécuté sur le serveur Zabbix et la fenêtre de résultat ci-dessous :

Il est également conseillé d'optimiser le script lui-même (au lieu d'ajuster le paramètre TrapperTimeout à une valeur correspondante (dans notre cas, > '11') en modifiant la configuration du serveur Zabbix).