Los elementos de script se pueden utilizar para recopilar datos mediante la ejecución de un código JavaScript definido por el usuario con la capacidad de recuperar datos a través de HTTP/HTTPS. Además del script, se puede incluir una lista opcional de parámetros (pares de nombre y valor) y el tiempo de espera puede ser especificado.
Este tipo de elemento puede ser útil en escenarios de recogida de datos que requieren múltiples pasos o una lógica compleja. Por ejemplo, un ítem Script puede ser configurado para hacer una llamada HTTP, luego procesar los datos recibidos en el primer paso de alguna manera, y pasar el valor transformado a la segunda llamada HTTP.
Los ítems Script son procesados por el servidor Zabbix o por los proxy pollers.
In the Type field of item configuration form select Script then fill out required fields.
All mandatory input fields are marked with a red asterisk.
The fields that require specific information for Script items are:
Field | Description |
---|---|
Key | Enter a unique key that will be used to identify the item. |
Parameters | Specify the variables to be passed to the script as the attribute and value pairs. Built-in macros {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} and user macros are supported. |
Script | Enter JavaScript code in the block that appears when clicking in the parameter field (or on the view/edit button next to it). This code must provide the logic for returning the metric value. The code has access to all parameters, it may perform HTTP GET, POST, PUT and DELETE requests and has control over HTTP headers and request body. See also: Additional JavaScript objects, JavaScript Guide. |
Timeout | JavaScript execution timeout (1-60s, default 3s). Time suffixes are supported, e.g. 30s, 1m. |
Recoge el contenido de https://www.example.com/release_notes:
Utilice la macro {HOST.CONN} como valor de parámetro y obtenga una respuesta con macro expandida:
var request = new HttpRequest();
return request.post("https://postman-echo.com/post", JSON.parse(value));
Recoge el contenido de ambos https://www.example.com y https://www.example.com/release_notas:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Añade la entrada "Log test" al registro del servidor Zabbix y recibe el elemento valor "1" a cambio: