En la sección Alertas → Scripts se pueden configurar y mantener scripts globales definidos por el usuario.
Los scripts globales, según el alcance configurado y también los permisos del usuario, están disponibles para su ejecución:
Los scripts se ejecutan únicamente en el agente Zabbix, el servidor Zabbix (proxy) o el servidor Zabbix. Consulte también la ejecución de comandos.
Tanto el agente de Zabbix como los scripts remotos del proxy de Zabbix están deshabilitados de forma predeterminada. Pueden habilitarse mediante:
Se muestra una lista de scripts existentes con sus detalles.
Datos mostrados:
Columna | Descripción |
---|---|
Nombre | Nombre del script. Al hacer clic en el nombre del script se abre el script formulario de configuración. |
Alcance | Alcance del script: operación de acción, acción manual del host o acción manual de evento. Esta configuración determina dónde está disponible el script. |
Usado en acciones | Se muestran las acciones donde se utiliza el script. |
Tipo | Se muestra el tipo de script: URL, Webhook, Script, SSH, Telnet o comando IPMI. |
Ejecutar en | Se muestra si el script se ejecutará en el agente Zabbix, en el servidor Zabbix (proxy) o únicamente en el servidor Zabbix. |
Comandos | Se muestran todos los comandos que se ejecutarán dentro del script. |
Grupo de usuarios | Se muestra el grupo de usuarios para el que está disponible el script (o Todos para todos los grupos de usuarios). |
Grupo de equipos | Se muestra el grupo de equipos para el que está disponible el script (o Todos para todos los grupos de hequipososts). |
Acceso al equipo | Se muestra el nivel de permiso para el grupo de equipos: Lectura o Escritura. Sólo los usuarios con el nivel de permiso requerido tendrán acceso para ejecutar el script. |
Para configurar un nuevo script, haga clic en el botón Crear script en la esquina superior derecha.
Un botón debajo de la lista ofrece una opción de edición masiva:
Para usar esta opción, marque las casillas de verificación antes de los scripts respectivos y haga clic en Eliminar.
Puede utilizar el filtro para mostrar sólo los scripts que le interesan. Para un mejor rendimiento de la búsqueda, los datos se buscan con las macros sin resolver.
El enlace Filtro está disponible encima de la lista de scripts. Si hace clic en él, aparecerá un filtro disponible donde podrá filtrar scripts por nombre y alcance.
Atributos del guión:
Parámetro | Descripción | |
---|---|---|
Nombre | Nombre único del script. Por ej. Borrar sistema de archivos /tmp |
|
Alcance | Alcance del script: operación de acción, acción manual del equipo o acción manual de evento. Esta configuración determina dónde se puede utilizar el script: en comandos remotos de operaciones de acción, desde el menú de equipo o desde el menú de eventos respectivamente. Establecer el alcance en 'Operación de acción' hace que el script esté disponible para todos los usuarios con acceso a Alertas → Acciones. Si un script realmente se usa en una acción, su alcance no se puede cambiar. de 'operación de acción'. Soporte de macros El alcance afecta el rango de macros disponibles. Por ejemplo, las macros relacionadas con el usuario ({USER.*}) se admiten en scripts para permitir pasar información sobre el usuario que inició el script. Sin embargo, no son compatibles si el alcance del script es operación de acción, ya que las operaciones de acción se ejecutan automáticamente. Para saber qué macros son compatibles, busque 'Notificaciones y comandos basados en activadores/Comandos basados en activadores'. 'Scripts de acciones manuales del equipo' y 'Scripts de acciones manuales de eventos' en la tabla macros compatibles. Tenga en cuenta que si una macro puede resolverse en un valor con espacios (por ejemplo, nombre de equipo), no olvide incluir comillas según sea necesario. |
|
Ruta del menú | La ruta del menú deseada para el script. Por ejemplo, Default o Default/ mostrará el script en el directorio respectivo. Los menús se pueden anidar, p. Menú principal/Submenú1/Submenú2 . Al acceder a los scripts a través del menú de host/evento en las secciones de monitoreo, se organizarán de acuerdo con los directorios proporcionados.Este campo se muestra solo si se selecciona 'Acción de equipo manual' o 'Acción de evento manual' como Alcance. |
|
Tipo | Haga clic en el botón respectivo para seleccionar el tipo de script: URL, Webhook, Script, SSH, Telnet o * *Comando IPMI. El tipo URL** está disponible solo cuando se selecciona 'Acción manual del equipo' o 'Acción manual de evento'. seleccionado como Alcance. |
|
Tipo de secuencia de comandos: URL | ||
URL | Especifique la URL para acceso rápido desde el menú de equipo o menú de evento. Las macros y las [macros de usuario] personalizadas(/manual/config/macros/user_macros) son compatibles. La compatibilidad con macros depende del alcance del script (consulte Alcance arriba). Los valores de macro no deben estar codificados en URL. |
|
Abrir en una ventana nueva | Determina si la URL debe abrirse en una pestaña nueva o en la misma pestaña del navegador. | |
Tipo de script: Webhook | ||
Parámetros | Especifique las variables del webhook como pares atributo-valor. Consulte también: Webhook configuración de medios. Macros y macros de usuario personalizadas se admiten en los valores de los parámetros. La compatibilidad con macros depende del alcance del script (consulte Alcance arriba). |
|
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). La compatibilidad con macros depende del alcance del script (consulte * Alcance* arriba). Consulte también: Webhook configuración de medios, Objetos Javascript adicionales. |
|
Tiempo de espera | Tiempo de espera de ejecución de JavaScript (1-60 s, predeterminado 30 s). Se admiten sufijos de tiempo, p. 30s, 1m. |
|
Tipo de guión: Script | ||
Ejecutar en | Haga clic en el botón correspondiente para ejecutar el script de shell en: Agente Zabbix: el agente Zabbix ejecutará el script (si la métrica system.run está permitida) en el equipo Servidor Zabbix (proxy) - el script será ejecutado por el servidor o proxy Zabbix (si está habilitado por EnableRemoteCommands) - dependiendo de si el equipo es monitoreado por un servidor o proxy Servidor Zabbix - el script será ejecutado únicamente por el servidor Zabbix |
|
Comandos | Ingrese la ruta completa a los comandos que se ejecutarán dentro del script. La compatibilidad con macros depende del alcance del script (consulte Alcance arriba). Se admiten [macros de usuario] personalizadas (/manual/config/macros/user_macros). |
|
Tipo de secuencia de comandos: SSH | ||
Método de autenticación | Seleccione el método de autenticación: contraseña o clave pública. | |
Nombre de usuario | Ingrese el nombre de usuario. | |
Contraseña | Ingrese la contraseña. Este campo está disponible si se selecciona 'Contraseña' como método de autenticación. |
|
Archivo de clave pública | Ingrese la ruta al archivo de clave pública. Este campo está disponible si se selecciona 'Clave pública' como método de autenticación. |
|
Archivo de clave privada | Ingrese la ruta al archivo de clave privada. Este campo está disponible si se selecciona 'Clave pública' como método de autenticación. |
|
Frase de contraseña | Ingrese la frase de contraseña. Este campo está disponible si se selecciona 'Clave pública' como método de autenticación. |
|
Puerto | Ingrese el puerto. | |
Comandos | Ingrese los comandos. La compatibilidad con macros depende del alcance del script (consulte Alcance arriba). Se admiten [macros de usuario] personalizadas (/manual/config/macros/user_macros). |
|
Tipo de script: Telnet | ||
Nombre de usuario | Ingrese el nombre de usuario. | |
Contraseña | Ingrese la contraseña. | |
Puerto | Ingrese el puerto. | |
Comandos | Ingrese los comandos. La compatibilidad con macros depende del alcance del script (consulte Alcance arriba). Se admiten [macros de usuario] personalizadas (/manual/config/macros/user_macros). |
|
Tipo de secuencia de comandos: IPMI | ||
Comando | Ingrese el comando IPMI. La compatibilidad con macros depende del alcance del script (consulte Alcance arriba). Se admiten macros de usuario personalizadas. |
|
Descripción | Ingrese una descripción para el script. | |
Grupo de equipos | Seleccione el grupo de equipos para el que estará disponible el script (o Todos para todos los grupos de equipos). | |
Grupo de usuarios | Seleccione el grupo de usuarios para el que estará disponible el script (o Todos para todos los grupos de usuarios). Este campo se muestra solo si hay 'Acción manual del equipo' o 'Acción manual del evento'. está seleccionado como Ámbito. |
|
Permisos de equipo requeridos | Seleccione el nivel de permiso para el grupo de equipos: Lectura o Escritura. Sólo los usuarios con el nivel de permiso requerido tendrán acceso para ejecutar el script. Este campo se muestra sólo si se selecciona 'Acción manual del equipo' o 'Acción manual del evento' como Ámbito. |
|
Habilitar confirmación | Marque la casilla de verificación para mostrar un mensaje de confirmación antes de ejecutar el script. Esta característica puede ser especialmente útil con operaciones potencialmente peligrosas (como un script de reinicio) o aquellas que pueden llevar mucho tiempo. Esta opción se muestra solo si se selecciona 'Acción manual del host' o 'Acción manual de evento' como Alcance . |
|
Texto de confirmación | Ingrese un texto de confirmación personalizado para la ventana emergente de confirmación habilitada con la casilla de verificación anterior (por ejemplo, El sistema remoto se reiniciará. ¿Está seguro?). Para ver cómo se verá el texto, haga clic en Confirmación de prueba junto al campo. Macros y [macros de usuario] personalizadas(/manual/config/macros/ user_macros) son compatibles. Nota: las macros no se expandirán al probar el mensaje de confirmación. Este campo se muestra solo si se selecciona 'Acción manual del equipo' o 'Acción manual del evento' como Ámbito . |
Advanced configuration options are available in a collapsible Advanced configuration section:
Parameter | Description |
---|---|
Enable user input | Mark the checkbox to enable manual user input before executing the script. Manual user input will replace the {MANUALINPUT} macro value in the script. See also: Manual user input. |
Input prompt | Enter custom text prompting for custom user input. This text will be displayed above the input field in the Manual input popup. To see a preview of the Manual input popup, click on Test user input. The preview also allows to test if the input string complies with the input validation rule (see parameters below). Macro and user macro support depends on the scope of the script (see Scope in general script configuration parameters). |
Input type | Select the manual input type: String - single string; Dropdown - value is selected from multiple dropdown options. |
Dropdown options | Enter unique values for the user input dropdown in a comma-delimited list. To include an empty option in the dropdown, add an extra comma at the beginning, middle, or end of the list. This field is displayed only if 'Dropdown' is selected as Input type. |
Default input string | Enter the default string for user input (or none). This field will be validated against the regular expression provided in the Input validation rule field. The value entered here will be displayed by default in the Manual input popup. This field is displayed only if 'String' is selected as Input type. |
Input validation rule | Enter a regular expression to validate the user input string. Global regular expressions are supported. This field is displayed only if 'String' is selected as Input type. |
Enable confirmation | Mark the checkbox to display a confirmation message before executing the script. This feature might be especially useful with potentially dangerous operations (like a reboot script) or ones that might take a long time. |
Confirmation text | Enter custom confirmation text for the confirmation popup enabled with the checkbox above (for example, Remote system will be rebooted. Are you sure?). To see how the text will look like, click on Test confirmation next to the field. Macros and custom user macros are supported. Note: the macros will not be expanded when testing the confirmation message. |
If both manual user input and a confirmation message are configured, they will be displayed in consecutive popup windows.
Manual user input allows to supply a custom parameter on each execution of the script. This saves the necessity to create multiple similar user scripts with only a single parameter difference.
For example, you may want to supply a different integer or a different URL address to the script during execution.
To enable manual user input:
With user input enabled, before script execution, a Manual input popup will appear to the user asking to supply a custom value. The supplied value will replace {MANUALINPUT} in the script.
Depending on the configuration, the user will be asked to enter a string value:
Or select the value from a dropdown of pre-determined options:
Manual user input is available only for scripts where the scope is 'Manual host action' or 'Manual event action'.
Los scripts ejecutados por el servidor Zabbix se ejecutan en el orden descrito en la página Ejecución de comandos (incluida la verificación del código de salida). El resultado del script se mostrará en una ventana emergente que aparecerá después de ejecutar el script.
El valor de retorno del script es una salida estándar junto con un error estándar.
El valor de retorno está limitado a 16 MB (incluidos los espacios en blanco finales truncados); También se aplican límites de la base de datos. Cuando los datos tienen que pasar a través del proxy Zabbix, deben almacenarse en la base de datos, sometiéndolos así a los mismos [límites de la base de datos] (/manual/config/items/item#text-data-limits).
Vea un ejemplo de un script y la ventana de resultados a continuación:
El resultado del script no muestra el script en sí.
Es posible que se produzca una situación en la que se agote el tiempo de espera al ejecutar un script.
Vea un ejemplo de un script que se ejecuta en el agente Zabbix y la ventana de resultados a continuación:
El mensaje de error, en este caso, es el siguiente:
Para evitar este tipo de situaciones, se recomienda optimizar el script en lugar de ajustar el parámetro de tiempo de espera a un valor correspondiente (en el ejemplo anterior, > '5') en la Configuración del agente Zabbix y en la Configuración del servidor Zabbix.
En caso de que el parámetro Tiempo de espera se cambie en la Configuración del agente Zabbix, aparecerá el siguiente mensaje de error:
Significa que se ha realizado una modificación en la configuración del agente Zabbix pero también es necesario modificar la configuración del tiempo de espera en la Configuración del servidor Zabbix.
Vea un ejemplo de un script que se ejecuta en el servidor Zabbix y la ventana de resultados a continuación:
También se recomienda optimizar el script en sí (en lugar de ajustar el parámetro TrapperTimeout al valor correspondiente). (en nuestro caso, > ‘11’) modificando la configuración del servidor Zabbix).