#2 Comandos remotos
Con los comandos remotos puede definir que un cierto comando predefinido se ejecuta autom¨¢ticamente en el host monitoreado bajo alguna condici¨®n.
Por lo tanto, los comandos remotos son un mecanismo poderoso para la proactividad inteligente. vigilancia.
En los usos m¨¢s obvios de la funci¨®n, puede intentar:
La ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô de una acci¨®n para comandos remotos es similar a la de enviar un mensaje, la ¨²nica diferencia es que Áú»¢¶Ä²© ejecutar¨¢ un comando en lugar de enviar un mensaje.
Los comandos remotos pueden ser ejecutados por el servidor, proxy o agente de Áú»¢¶Ä²©. Remoto Los comandos en el agente Áú»¢¶Ä²© pueden ser ejecutados directamente por el servidor Áú»¢¶Ä²© o a trav¨¦s del proxy Áú»¢¶Ä²©. Tanto en el agente de Áú»¢¶Ä²© como en el proxy remoto de Áú»¢¶Ä²© Los comandos est¨¢n deshabilitados por defecto. Pueden ser habilitados por:
AllowKey=system.run[*]
en la ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del agente;Los comandos remotos ejecutados por el servidor Áú»¢¶Ä²© se ejecutan como se describe en Ejecuci¨®n de comandos incluida la salida comprobaci¨®n de c¨®digo.
Los comandos remotos se ejecutan incluso si el host de destino est¨¢ en mantenimiento.
El l¨ªmite de comando remoto despu¨¦s de resolver todas las macros depende del tipo de base de datos y juego de caracteres (los caracteres no ASCII requieren m¨¢s de un byte a almacenar):
Base de datos | L¨ªmite en caracteres | L¨ªmite en bytes |
---|---|---|
MySQL | 65535 | 65535 |
Base de datos Oracle | 2048 | 4000 |
PostgreSQL | 65535 | no limitado |
SQLite (solo proxy Áú»¢¶Ä²©) | 65535 | no limitado |
La salida de ejecuci¨®n remota de comandos (valor de retorno) est¨¢ limitada a 16 MB (incluidos los espacios en blanco finales que est¨¢n truncados). El l¨ªmite del comando remoto IPMI se basa en la biblioteca IPMI instalada. Tenga en cuenta que los l¨ªmites de la base de datos se aplican a todos los comandos remotos.
Esos comandos remotos que se ejecutan en el agente Áú»¢¶Ä²© (scripts personalizados) debe habilitarse primero en el agente ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô.
Aseg¨²rese de agregar el par¨¢metro AllowKey=system.run[<comando>,*] para cada comando permitido en la ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del agente para permitir un comando espec¨ªfico con el modo sin espera. Reinicie el demonio del agente si cambia este par¨¢metro.
Los comandos remotos no funcionan con Áú»¢¶Ä²© activo agentes
Luego, al configurar una nueva acci¨®n en °ä´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô ¡ú Acciones:
Todos los scripts (webhook, script, SSH, Telnet, IPMI) que est¨¢n disponibles para las operaciones de acci¨®n se definen en global scripts.
Por ejemplo:
En este caso, Áú»¢¶Ä²© intentar¨¢ reiniciar un proceso de Apache. Con este comando, aseg¨²rese de que el comando se ejecute en el agente Áú»¢¶Ä²© (haga clic en el bot¨®n Áú»¢¶Ä²© agent contra Execute on).
Tenga en cuenta el uso de sudo: el usuario de Áú»¢¶Ä²© no tener permisos para reiniciar los servicios del sistema de forma predeterminada. Vea a continuaci¨®n para consejos sobre c¨®mo configurar sudo.
El agente Áú»¢¶Ä²© debe ejecutarse en el host remoto y aceptar conexiones entrantes. El agente de Áú»¢¶Ä²© ejecuta comandos en antecedentes.
Los comandos remotos en el agente Áú»¢¶Ä²© se ejecutan sin tiempo de espera por parte del system.run[,nowait] y no se comprueban los resultados de ejecuci¨®n. En Servidor Áú»¢¶Ä²© y proxy Áú»¢¶Ä²©, los comandos remotos se ejecutan con tiempo de espera establecido en el par¨¢metro TrapperTimeout de zabbix_server.conf o zabbix_proxy.conf y son marcado para resultados de ejecuci¨®n.
Aseg¨²rese de que el usuario 'zabbix' tenga permisos de ejecuci¨®n para los comandos configurados. Puede estar interesado en usar sudo para dar acceso a comandos privilegiados. Para configurar el acceso, ejecute como root:
L¨ªneas de ejemplo que podr¨ªan usarse en el archivo sudoers:
# permite al usuario 'zabbix' ejecutar todos los comandos sin contrase?a.
zabbix ALL=NOPASSWD: ALL
# permite al usuario 'zabbix' reiniciar Apache sin contrase?a.
zabbix ALL=NOPASSWD: /etc/init.d/apache restart
En algunos sistemas, el archivo sudoers evitar¨¢ que los usuarios no locales ejecuten comandos. Para cambiar esto, comente la opci¨®n requiretty en /etc/sudoers.
Si el sistema de destino tiene m¨²ltiples interfaces del tipo seleccionado (Agente Áú»¢¶Ä²© o IPMI), los comandos remotos se ejecutar¨¢n en la interfaz predeterminada.
Es posible ejecutar comandos remotos a trav¨¦s de SSH y Telnet usando otra interfaz que la del agente Áú»¢¶Ä²©. La interfaz disponible para el uso se selecciona en el siguiente orden:
Para los comandos remotos de IPMI, se debe usar la siguiente sintaxis:
»å¨®²Ô»å±ð
Ejemplos de global scripts que pueden ser utilizados como comandos remotos en operaciones de acci¨®n.
Ejemplo 1
Reinicio de Windows en ciertas condiciones.
Para reiniciar autom¨¢ticamente Windows ante un problema detectado por Áú»¢¶Ä²©, defina el siguiente script:
Par¨¢metro de script | Valor |
---|---|
?mbito | 'Operaci¨®n de acci¨®n' |
Tipo | 'Script' |
Comando | c:\windows\system32\shutdown.exe -r -f |
Ejemplo 2
Reinicie el equipo mediante el control de IPMI.
Par¨¢metro de script | Valor |
---|---|
?mbito | 'Operaci¨®n de acci¨®n' |
Tipo | 'IPMI' |
Comando | reset |
Ejemplo 3
Apague el equipo mediante el control de IPMI.
Par¨¢metro de script | Valor |
---|---|
?mbito | 'Operaci¨®n de acci¨®n' |
Tipo | 'IPMI' |
Comando | power off |