Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

3 Scripts

¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô general

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:

  • desde el men¨² de equipo en varias ubicaciones de la interfaz (Tablero, Problemas, ?ltimos datos, Mapas, etc.)
  • desde el men¨² de eventos
  • se puede ejecutar como una operaci¨®n de acci¨®n

Los scripts se ejecutan ¨²nicamente en el agente Áú»¢¶Ä²©, el servidor Áú»¢¶Ä²© (proxy) o el servidor Áú»¢¶Ä²©. Consulte tambi¨¦n Ejecuci¨®n de comando.

Tanto el agente de Áú»¢¶Ä²© como los scripts remotos del proxy de Áú»¢¶Ä²© est¨¢n deshabilitados de forma predeterminada. Pueden habilitarse mediante:

  • Para comandos remotos ejecutados en el agente Áú»¢¶Ä²©:
    • agregar un par¨¢metro AllowKey=system.run[<command>,*] para cada comando permitido en la configuraci¨®n del agente, * representa el modo de espera y no espera;
  • Para comandos remotos ejecutados en el proxy Áú»¢¶Ä²©:
    • Advertencia: no es necesario habilitar los comandos remotos en el proxy Áú»¢¶Ä²© si se ejecutan comandos remotos en el agente Áú»¢¶Ä²© que es monitoreado por el proxy Áú»¢¶Ä²©. Sin embargo, si es necesario ejecutar comandos remotos en el proxy Áú»¢¶Ä²©, establezca el par¨¢metro EnableRemoteCommands en '1' en la configuraci¨®n del proxy.

La ejecuci¨®n de script global en el servidor Áú»¢¶Ä²© se puede deshabilitar estableciendo EnableGlobalScripts=0 en la configuraci¨®n del servidor. Para instalaciones nuevas, desde Áú»¢¶Ä²© 7.0, la ejecuci¨®n de script global en el servidor Áú»¢¶Ä²© est¨¢ deshabilitada de forma predeterminada.

Se muestra una lista de scripts existentes con sus detalles.

Datos mostrados:

Columna ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô
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 Áú»¢¶Ä²©, en el servidor o proxy Áú»¢¶Ä²©, o solo en el servidor Áú»¢¶Ä²©.
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 equipos).
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.

Opciones de edici¨®n masiva

Un bot¨®n debajo de la lista ofrece una opci¨®n de edici¨®n masiva:

  • Eliminar - eliminar los scripts

Para usar esta opci¨®n, marque las casillas de verificaci¨®n antes de los scripts respectivos y haga clic en Eliminar.

Usando el filtro

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.

°ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô de un script global

Atributos del script:

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô
Nombre Nombre ¨²nico del script.
P. ej., Borrar sistema de archivos /tmp
?mbito ?mbito del script: operaci¨®n de acci¨®n, acci¨®n manual del equipo o acci¨®n manual del evento. Esta configuraci¨®n determina d¨®nde se puede utilizar el script: en comandos remotos de operaciones de acci¨®n, desde el men¨² del equipo o desde el men¨² de eventos respectivamente.
Si se establece el alcance en 'Operaci¨®n de acci¨®n', el script estar¨¢ disponible para todos los usuarios con acceso a Alertas ¡ú Acciones.
Si un script se utiliza realmente en una acci¨®n, su alcance no se puede cambiar de 'operaci¨®n de acci¨®n'.
Compatibilidad con macros
El alcance afecta al rango de macros disponibles. Por ejemplo, las macros relacionadas con el usuario ({USER.*}) se admiten en los scripts para permitir pasar informaci¨®n sobre el usuario que inici¨® el script. Sin embargo, no se admiten si el alcance del script es la operaci¨®n de acci¨®n, ya que las operaciones de acci¨®n se ejecutan autom¨¢ticamente.
Una macro {MANUALINPUT} permite especificar la entrada manual en el momento de la ejecuci¨®n del script. Se admite para secuencias de comandos de acciones manuales del equipo y de acciones manuales de eventos.
Para averiguar qu¨¦ otras macros se admiten, realice una b¨²squeda de 'Notificaciones y comandos basados ??en activadores/Comandos basados ??en activadores', 'Secuencias de comandos de acciones manuales del equipo' y 'Secuencias de comandos 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 del equipo), no olvide poner entre comillas seg¨²n sea necesario.
Ruta del men¨² La ruta del men¨² deseada para la secuencia de comandos. Por ejemplo, Default o Default/, mostrar¨¢ la secuencia de comandos en el directorio correspondiente. Los men¨²s se pueden anidar, por ejemplo, Main menu/Sub menu1/Sub menu2. Al acceder a secuencias de comandos a trav¨¦s del men¨² equipo/evento en las secciones de monitoreo, se organizar¨¢n de acuerdo con los directorios indicados.
Este campo se muestra solo si se selecciona '´¡³¦³¦¾±¨®²Ô manual del equipo' o '´¡³¦³¦¾±¨®²Ô manual de eventos' como Alcance.
Tipo Haga clic en el bot¨®n correspondiente para seleccionar el tipo de secuencia de comandos:
URL, Webhook, Script, SSH, Telnet o comando IPMI.
El tipo URL solo est¨¢ disponible cuando se selecciona "´¡³¦³¦¾±¨®²Ô manual del equipo" o "´¡³¦³¦¾±¨®²Ô manual del evento" como ?mbito.
Tipo de secuencia de comandos: URL
URL Especifique la URL para un acceso r¨¢pido desde el men¨² del equipo o el men¨² de eventos.
Se admiten macros y macros de usuario personalizadas. La compatibilidad con macros depende del alcance del script (consulte Alcance m¨¢s arriba).
Use la macro {MANUALINPUT} en este campo para poder especificar la entrada manual en el momento de la ejecuci¨®n del script, por ejemplo:
http://{MANUALINPUT}/zabbix/zabbix.php?action=dashboard.view
Los valores de la macro no deben estar codificados en URL.
Abrir en una nueva ventana Determina si la URL debe abrirse en una nueva pesta?a del navegador o en la misma.
Tipo de script: Webhook
±Ê²¹°ù¨¢³¾±ð³Ù°ù´Çs Especifique las variables del webhook como pares atributo-valor.
Consulte tambi¨¦n: °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô de medios del Webhook.
Se admiten macros y macros de usuario personalizadas en los valores de los par¨¢metros. La compatibilidad con macros depende del alcance del script (consulte Alcance m¨¢s arriba).
Script Ingrese el c¨®digo JavaScript en el editor modal que se abre al hacer clic en el campo de par¨¢metros o en el ¨ªcono de l¨¢piz que se encuentra junto a ¨¦l.
La compatibilidad con macros depende del alcance del script (consulte Alcance m¨¢s arriba).
Consulte tambi¨¦n: °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô de medios de Webhook, Objetos Javascript adicionales.
Timeout Tiempo de espera de ejecuci¨®n de JavaScript (1-60 s, 30 s predeterminado).
Se admiten sufijos de tiempo, p. ej., 30 s, 1 m.
Tipo de script: Script
Ejecutar en Haga clic en el bot¨®n correspondiente para ejecutar el script de shell en:
Agente Áú»¢¶Ä²©: el script ser¨¢ ejecutado por el agente Áú»¢¶Ä²© (si el elemento system.run est¨¢ permitido) en el equipo
Proxy o servidor Áú»¢¶Ä²©: el script ser¨¢ ejecutado por el proxy o servidor Áú»¢¶Ä²©, dependiendo de si el equipo est¨¢ monitoreado por proxy o servidor.
Se ejecutar¨¢ en el proxy si est¨¢ habilitado por EnableRemoteCommands.
Se ejecutar¨¢ en el servidor si los scripts globales est¨¢n habilitados por el par¨¢metro de servidor EnableGlobalScripts.
Servidor Áú»¢¶Ä²©: el script ser¨¢ ejecutado por el servidor Áú»¢¶Ä²© solamente.
Esta opci¨®n no estar¨¢ disponible si los scripts globales est¨¢n deshabilitados mediante el par¨¢metro de servidor EnableGlobalScripts.
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 m¨¢s arriba). Se admiten macros de usuario personalizadas.
Tipo de script: 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 m¨¢s arriba). Se admiten macros de usuario personalizadas.
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 m¨¢s arriba). Se admiten macros de usuario personalizadas.
Tipo de script: IPMI
Comando Ingrese el comando IPMI.
La compatibilidad con macros depende del alcance del script (consulte Alcance m¨¢s arriba). Se admiten macros de usuario personalizadas.
¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô 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 solo se muestra si se selecciona "´¡³¦³¦¾±¨®²Ô manual del equipo" o "´¡³¦³¦¾±¨®²Ô manual del evento" como ?mbito.
Permisos de equipo necesarios Seleccione el nivel de permiso para el grupo de equipos: Lectura o Escritura. Solo los usuarios con el nivel de permiso requerido tendr¨¢n acceso para ejecutar el script.
Este campo solo se muestra si se selecciona "´¡³¦³¦¾±¨®²Ô manual del equipo" o "´¡³¦³¦¾±¨®²Ô manual del evento" como ?mbito.
°ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô avanzada Haga clic en la etiqueta °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô avanzada para mostrar las opciones de configuraci¨®n avanzada.
Este campo solo se muestra si se selecciona "´¡³¦³¦¾±¨®²Ô manual del equipo" o "´¡³¦³¦¾±¨®²Ô manual del evento" como ?mbito.

°ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô avanzada

Las opciones de configuraci¨®n avanzada est¨¢n disponibles en una secci¨®n plegable °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô avanzada:

|±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç|¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô| |----------|-------------------------------------- --| |Habilitar entrada de usuario|Marque la casilla de verificaci¨®n para habilitar la entrada manual del usuario antes de ejecutar el script.
La entrada manual del usuario reemplazar¨¢ el valor de la macro {MANUALINPUT} en el script.
Consulte tambi¨¦n: Entrada manual del usuario.| |Mensaje de entrada|Ingrese un texto personalizado que solicite la entrada personalizada del usuario. Este texto se mostrar¨¢ encima del campo de entrada en la ventana emergente Entrada manual.
Para ver una vista previa de la ventana emergente Entrada manual, haga clic en Probar entrada del usuario. La vista previa tambi¨¦n permite probar si la cadena de entrada cumple con la regla de validaci¨®n de entrada (consulte los par¨¢metros a continuaci¨®n).
La compatibilidad con macros y macros de usuario depende del alcance del script (consulte Alcance en los par¨¢metros generales de configuraci¨®n del script).| |Tipo de entrada|Seleccione el tipo de entrada manual:
Cadena - cadena ¨²nica;
Desplegable - el valor se selecciona entre m¨²ltiples opciones desplegables.| |Opciones desplegables|Ingrese valores ¨²nicos para el men¨² desplegable de entrada del usuario en una lista delimitada por comas.
Para incluir una opci¨®n vac¨ªa en el men¨² desplegable, agregue una coma adicional al principio, en el medio o al final de la lista.< br>Este campo se muestra s¨®lo si se selecciona 'Desplegable' como Tipo de entrada.| |Cadena de entrada predeterminada|Ingrese la cadena predeterminada para la entrada del usuario (o ninguna).
Este campo se validar¨¢ con la expresi¨®n regular proporcionada en el campo Regla de validaci¨®n de entrada.
El valor ingresado aqu¨ª ser¨¢ se muestra de forma predeterminada en la ventana emergente Entrada manual.
Este campo se muestra solo si se selecciona 'Cadena' como Tipo de entrada.| |Regla de validaci¨®n de entrada|Ingrese una expresi¨®n regular para validar la cadena de entrada del usuario.
Se admiten expresiones regulares globales.
Este campo se muestra solo si se selecciona 'Cadena' como Tipo de entrada.| |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.| |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.|

Si se configuran tanto la entrada manual del usuario como un mensaje de confirmaci¨®n, se mostrar¨¢n en ventanas emergentes consecutivas.

Entrada manual del usuario

La entrada manual del usuario permite proporcionar un par¨¢metro personalizado en cada ejecuci¨®n del script. Esto ahorra la necesidad de crear m¨²ltiples scripts de usuario similares con una sola diferencia de par¨¢metro.

Por ejemplo, es posible que desee proporcionar un n¨²mero entero diferente o una direcci¨®n URL diferente al script durante la ejecuci¨®n.

Para habilitar la entrada manual del usuario:

  • utilizar la macro {MANUALINPUT} en el script (comandos, script, par¨¢metro de script) cuando sea necesario; o en el campo URL de los scripts de URL;
  • en la configuraci¨®n de script avanzada, habilite la entrada manual del usuario y configure las opciones de entrada.

Con la entrada del usuario habilitada, antes de la ejecuci¨®n del script, aparecer¨¢ una ventana emergente de Entrada manual al usuario solicit¨¢ndole que proporcione un valor personalizado. El valor proporcionado reemplazar¨¢ a {MANUALINPUT} en el script.

Dependiendo de la configuraci¨®n, se le pedir¨¢ al usuario que ingrese un valor de cadena:

O seleccione el valor de un men¨² desplegable de opciones predeterminadas:

La entrada manual del usuario est¨¢ disponible solo para secuencias de comandos cuyo alcance es "´¡³¦³¦¾±¨®²Ô manual del equipo" o "´¡³¦³¦¾±¨®²Ô manual del evento".

Ejecuci¨®n del script y resultado

Los scripts ejecutados por el servidor Áú»¢¶Ä²© 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 Áú»¢¶Ä²©, 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:

uname -v
       /tmp/non_existing_script.sh
       echo "Este script fue iniciado por {USER.USERNAME}"

El resultado del script no muestra el script en s¨ª.

Tiempo de espera del script

Agente de Áú»¢¶Ä²©

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 Áú»¢¶Ä²© y la ventana de resultados a continuaci¨®n:

sleep 5
       df -h

El mensaje de error, en este caso, es el siguiente:

Tiempo de espera al ejecutar un script de shell.

Para evitar tales situaciones, se recomienda optimizar el script en s¨ª (en el ejemplo anterior, "5") en lugar de ajustar el par¨¢metro Timeout en la °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del agente Áú»¢¶Ä²© y °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del servidor Áú»¢¶Ä²©. Sin embargo, para el agente Áú»¢¶Ä²© en modo activo, el par¨¢metro Timeout en configuraci¨®n del servidor Áú»¢¶Ä²© debe ser al menos varios segundos m¨¢s largo que el par¨¢metro RefreshActiveChecks en configuraci¨®n del agente Áú»¢¶Ä²©. Esto garantiza que el servidor tenga tiempo suficiente para recibir los resultados de la verificaci¨®n activa del agente. Tenga en cuenta que la ejecuci¨®n de scripts en un agente activo se admite desde el agente Áú»¢¶Ä²© 7.0.

En caso de que se haya cambiado el par¨¢metro Timeout en la °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del agente Áú»¢¶Ä²©, aparecer¨¢ el siguiente mensaje de error:

Error al obtener valor del agente: se agot¨® el tiempo de espera de ZBX_TCP_READ().

Significa que la modificaci¨®n se ha realizado en la configuraci¨®n del agente Áú»¢¶Ä²©, pero es necesario modificar el par¨¢metro Timeout en la configuraci¨®n del servidor Áú»¢¶Ä²© ³Ù²¹³¾²ú¾±¨¦²Ô.

Servidor/proxy Áú»¢¶Ä²©

Vea un ejemplo de un script que se ejecuta en el servidor Áú»¢¶Ä²© y la ventana de resultados a continuaci¨®n:

sleep 11
       df -h

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 Áú»¢¶Ä²©).