18 Métricas scripts

Descripción general

Las métricas de secuencia de comandos se pueden utilizar para recopilar datos ejecutando 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 especificar una lista opcional de parámetros (pares de nombre y valor) y el tiempo de espera.

Este tipo de métrica puede resultar útil en escenarios de recopilación de datos que requieren múltiples pasos o lógica compleja. Como ejemplo, una métrica de secuencia de comandos puede ser configurada para realizar una llamada HTTP y luego procesar los datos recibidos en el primer paso de alguna manera y pasar el valor transformado a la segunda llamada HTTP.

Las métricas de script son procesadas por el servidor Zabbix o los sondeadores proxy.

Configuración

En el campo Tipo del formulario de configuración de métricas seleccione Script y luego complete los campos requeridos.

script_item.png

Todos los campos de entrada obligatorios están marcados con un asterisco rojo.

Los campos que requieren información específica para las métricas Script son:

Campo Descripción
Clave Ingrese una clave única que se utilizará para identificar la métrica.
Parámetros Especifique las variables que se pasarán al script como pares de atributo y valor.
Macros integradas {HOST.CONN}, {HOST.DNS}, {HOST .HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} y macros de usuario son compatibles.
Script Ingrese el código JavaScript en el bloque que aparece al hacer clic en el campo de parámetro (o en el botón ver/editar al lado). Este código debe proporcionar la lógica para devolver el valor de la métrica.
El código tiene acceso a todos los parámetros, puede realizar solicitudes HTTP GET, POST, PUT y DELETE y tiene control sobre los encabezados HTTP y el cuerpo de la solicitud.
Ver también : Objetos JavaScript adicionales, Guía de JavaScript.
Tiempo de espera Tiempo de espera de ejecución de JavaScript (1-60 s, predeterminado 3 s); excederlo devolverá un error.
Se admiten sufijos de tiempo, p. 30s, 1m.
Dependiendo del script, el tiempo de espera puede tardar más en activarse.

Ejemplos

Recopilación de datos sencilla

Recopile el contenido de https://www.example.com/release_notes:

  • Crear una métrica de tipo "Script".
  • En el campo Script, ingrese:
var request = new HttpRequest();
       return request.get("https://www.example.com/release_notes");
Recopilación de datos con parámetros.

Recopile el contenido de una página específica y utilice parámetros:

  • Crea una métrica de tipo "Script" y dos parámetros:
    • url: {$DOMAIN} (la macro de usuario {$DOMAIN} debe estar definida, preferiblemente a nivel de equipo)
    • subpage: /release_notes

  • En el campo Script, ingrese:
var obj = JSON.parse(valor);
       var url = obj.url;
       var subpage = obj.subpage;
       var request = new HttpRequest();
       return request.get(url + subpage);
Múltiples solicitudes HTTP

Recopile el contenido de https://www.example.com y https://www.example.com/release_notes:

  • Crear una métrica de tipo "Script".
  • En el campo Script, ingrese:
var request = new HttpRequest();
       return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Registro de datos

Añade la entrada "Log test" al registro del servidor Zabbix y recibe el valor "1" de la métrica como retorno:

  • Cree una métrica de tipo "Script".
  • En el campo Script, introduce el siguiente código:
Zabbix.log(3, 'Log test');
       return 1;