Áú»¢¶Ä²©

#2 Comandos remotos

Visi¨®n general

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:

  • Reiniciar autom¨¢ticamente alguna aplicaci¨®n (servidor web, middleware, CRM) si no responde
  • Use el comando 'reiniciar' de IPMI para reiniciar alg¨²n servidor remoto si lo hace no responder solicitudes
  • Liberar espacio en disco autom¨¢ticamente (eliminar archivos antiguos, limpiar /tmp) si se queda sin espacio en disco
  • Migrar una VM de una caja f¨ªsica a otra dependiendo de la CPU carga
  • Agregue nuevos nodos a un entorno de nube cuando no haya suficiente CPU (disco, memoria, lo que sea) recursos

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:

  • agregar un par¨¢metro AllowKey=system.run[*] en la ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô del agente;
  • establecer el par¨¢metro EnableRemoteCommands en '1' en proxy ³¦´Ç²Ô´Ú¾±²µ³Ü°ù²¹³¦¾±¨®²Ô.

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.

L¨ªmite de comando remoto

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:

  • Definir las condiciones adecuadas. En este ejemplo, establece que el la acci¨®n se activa ante cualquier problema de desastre con uno de Apache aplicaciones:

  • En el Operaciones pesta?a, haga clic en Agregar en Operaciones/Operaciones de recuperaci¨®n/Actualizar bloque de operaciones
  • En el campo desplegable Operaci¨®n, seleccione uno de los predefinidos guiones

  • Seleccione la lista de destino para el script

Guiones predefinidos

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:

sudo /etc/init.d/apache reiniciar

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.

Permisos de acceso

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:

visudo

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.

Comandos remotos con m¨²ltiples interfaces

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:

  • Interfaz predeterminada del agente Áú»¢¶Ä²©
  • Interfaz SNMP predeterminada
  • Interfaz predeterminada JMX
  • Interfaz IPMI predeterminada

Comandos remotos de IPMI

Para los comandos remotos de IPMI, se debe usar la siguiente sintaxis:

<comando> [<valor>]

»å¨®²Ô»å±ð

  • <comando>: uno de los comandos de IPMI sin espacios
  • <valor> - 'encendido', 'apagado' o cualquier n¨²mero entero sin signo. <valor> es un par¨¢metro opcional.

Ejemplos

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