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.
Dans le champ Type du formulaire de configuration d'élément sélectionnez Script puis remplissez les champs obligatoires.
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. |
Collecter le contenu de https://www.example.com/release_notes:
Utilisez la macro {HOST.CONN} comme valeur de paramètre et obtenez une réponse avec une macro étendue :
var request = new HttpRequest();
return request.post("https://postman-echo.com/post", JSON.parse(value));
Collecter le contenu de https://www.example.com et https://www.example.com/release_notes :
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Ajouter l'entrée "Log test" au fichier de log du serveur Zabbix et recevez la valeur de l'élément "1" en retour :