This is a translation of the original English documentation page. Help us make it better.

18 Éléments de script

Aperçu

Les éléments script peuvent être utilisés pour collecter des données en exécutant un code JavaScript défini par l'utilisateur avec la possibilité de récupérer des données via HTTP/HTTPS. En plus du script, une liste facultative de paramètres (paires de nom et de valeur) et un délai d'attente peuvent être spécifiés.

Ce type d'élément peut être utile dans les scénarios de collecte de données qui nécessitent plusieurs étapes ou une logique complexe. Par exemple, un élément de script peut être configuré pour effectuer un appel HTTP, puis traiter les données reçues à la première étape d'une manière ou d'une autre et transmettre la valeur transformée au deuxième appel HTTP.

Les éléments de script sont traités par le serveur Zabbix ou les pollers proxy.

Configuration

Dans le champ Type du formulaire de configuration d'élément sélectionnez Script puis remplissez les champs obligatoires.

script_item.png

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

Les champs qui nécessitent des informations spécifiques pour les éléments de script sont :

Champ Description
Clé Entrez une clé unique qui sera utilisée pour identifier l'élément.
Paramètres Spécifiez les variables à transmettre au script en tant que paires d'attributs et de valeurs.
Macros intégrées {HOST.CONN}, {HOST.DNS}, {HOST .HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} et macros utilisateur sont pris en charge.
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é). Ce code doit fournir la logique pour renvoyer la valeur de la métrique.
Le code a accès à tous les paramètres, il peut effectuer des requêtes HTTP GET, POST, PUT et DELETE et contrôle les en-têtes HTTP et le corps de la requête.
Voir aussi : Objets JavaScript supplémentaires, Guide JavaScript.
Expiration Délai d'exécution de JavaScript (1-60s, 3s par défaut) ; le dépasser renverra une erreur.
Les suffixes horaires sont pris en charge, par ex. 30s, 1m.
Selon le script, le délai d'attente peut prendre plus de temps à se déclencher.

Exemples

Collecte de données simples

Collecter le contenu de https://www.example.com/release_notes:

  • Créer un élément de type "Script".
  • Dans le champ Script, saisir :
var request = new HttpRequest();
       return request.get("https://www.example.com/release_notes");
Collecte de données avec paramètres

Utilisez la macro {HOST.CONN} comme valeur de paramètre et obtenez une réponse avec une macro étendue :

  • Créer un élément de type "Script".
  • Créer un paramètre :
    Nom : hôte
    Valeur : {HOST.CONN}
  • Dans le champ Script, saisir :
var request = new HttpRequest();
       return request.post("https://postman-echo.com/post", JSON.parse(value));
Requêtes HTTP multiples

Collecter le contenu de https://www.example.com et https://www.example.com/release_notes :

  • Créer un élément de type "Script".
  • Dans le champ Script, saisir :
var request = new HttpRequest();
       return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Journalisation

Ajouter l'entrée "Log test" au fichier de log du serveur Zabbix et recevez la valeur de l'élément "1" en retour :

  • Créer un élément de type "Script".
  • Dans le champ Script, saisir :
Zabbix.log(3, 'Log test');
       return 1;