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 configuración de una acción para comandos remotos es similar a la de enviar un mensaje, la única diferencia es que Zabbix ejecutará un comando en lugar de enviar un mensaje.
Los comandos remotos pueden ser ejecutados por el servidor, proxy o agente de Zabbix. Remoto Los comandos en el agente Zabbix pueden ser ejecutados directamente por el servidor Zabbix o a través del proxy Zabbix. Tanto en el agente de Zabbix como en el proxy remoto de Zabbix Los comandos están deshabilitados por defecto. Pueden ser habilitados por:
- agregar un parámetro
AllowKey=system.run[*]en la configuración del agente; - establecer el parámetro EnableRemoteCommands en '1' en proxy configuración.
Los comandos remotos ejecutados por el servidor Zabbix 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 Zabbix) | 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.
Configuración
Esos comandos remotos que se ejecutan en el agente Zabbix (scripts personalizados) debe habilitarse primero en el agente configuración.
Asegúrese de agregar el parámetro AllowKey=system.run[<comando>,*] para cada comando permitido en la configuración del agente para permitir un comando específico con el modo sin espera. Reinicie el demonio del agente si cambia este parámetro.
::: notaimportante Los comandos remotos no funcionan con Zabbix activo agentes :::
Luego, al configurar una nueva acción en Configuración → 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, Zabbix intentará reiniciar un proceso de Apache. Con este comando, asegúrese de que el comando se ejecute en el agente Zabbix (haga clic en el botón Zabbix agent contra Execute on).
::: notaimportante Tenga en cuenta el uso de sudo: el usuario de Zabbix no tener permisos para reiniciar los servicios del sistema de forma predeterminada. Vea a continuación para consejos sobre cómo configurar sudo. :::
::: notaclásica El agente Zabbix debe ejecutarse en el host remoto y aceptar conexiones entrantes. El agente de Zabbix ejecuta comandos en antecedentes. :::
Los comandos remotos en el agente Zabbix se ejecutan sin tiempo de espera por parte del system.run[,nowait] y no se comprueban los resultados de ejecución. En Servidor Zabbix y proxy Zabbix, 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 Zabbix 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 Zabbix. La interfaz disponible para el uso se selecciona en el siguiente orden:
- Interfaz predeterminada del agente Zabbix
- 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>]
dónde
- <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 Zabbix, 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 |