18 Éléments de script

Aperçu

Les éléments de type 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) ainsi qu'un délai d'expiration peuvent être spécifiés.

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

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

Configuration

Dans le champ Type du formulaire de configuration d'un élément, sélectionnez Script, puis renseignez les champs requis.

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 Script sont les suivants :

Field Description
Key Saisissez une clé unique qui sera utilisée pour identifier l'élément.
Parameters Spécifiez les variables à transmettre au script sous forme de paires attribut-valeur.
Les macros utilisateur sont prises en charge. Pour voir quelles macros intégrées sont prises en charge, recherchez « Script-type item » dans le tableau des macros prises en charge.
Script Saisissez le code JavaScript dans l'éditeur modal qui s'ouvre lorsque vous cliquez dans le champ du paramètre ou sur l'icône en forme de crayon à côté. Ce code doit fournir la logique permettant de renvoyer la valeur de la métrique.
Le code a accès à tous les paramètres ainsi qu'à tous les objets JavaScript supplémentaires ajoutés par Zabbix.
Voir aussi : Guide JavaScript.
Timeout Délai d'expiration de l'exécution JavaScript (1-600s ; en cas de dépassement, une erreur sera renvoyée).
Notez que, selon le script, le déclenchement du délai d'expiration peut prendre plus de temps.
Pour plus d'informations sur le paramètre Timeout, consultez les attributs généraux des éléments.

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 des paramètres

Collectez le contenu d'une page spécifique et utilisez des paramètres :

  • Créez un élément de type "Script" avec deux paramètres :
    • url : {$DOMAIN} (la macro utilisateur {$DOMAIN} doit être définie, de préférence au niveau de l'hôte)
    • subpage : /release_notes

  • Dans le champ Script, saisissez :
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
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;