Amb les comandes remotes, podeu definir que una determinada ordre predefinida s'executa automàticament a l'equip monitorat en determinades condicions.
Per tant, les comandes remotes són un mecanisme potent per a un seguiment proactiu intel·ligent.
En els usos més evidents d'aquesta funció, podeu provar de:
La configuració d'una acció per a comandes remotes és similar a la d'enviar un missatge, l'única diferència és que Zabbix executarà una ordre en lloc d'enviar un missatge.
Les comandes remotes les pot executar un servidor, un proxy o un agent Zabbix. Les comandes remotes de l'agent Zabbix es poden executar directament pel servidor Zabbix o mitjançant el proxy Zabbix. Les comandes remotes de l'agent Zabbix i del proxy Zabbix són desactivades de manera predeterminada. Es poden activar mitjançant: - afegint el paràmetre AllowKey=system.run[*]
a la configuració de l'agent; - establir el paràmetre EnableRemoteCommands a "1" a la configuració del proxy.
Les comandes remotes executades pel servidor Zabbix s'executen tal com es descriu a executant comandes, inclosa la comprovació del codi de sortida.
Les comandes remotes s'executen encara que l'equip destí sigui en manteniment.
El límit de comandes remotes després de resoldre totes les macros depèn del tipus de base de dades i del conjunt de caràcters (els caràcters no ASCII requereixen més d'un octet per emmagatzemar-los):
Base de dades | Límit de caràcters | Límit en octets |
---|---|---|
MySQL | 65535 | 65535 |
Base de dades Oracle | 2048 | 4000 |
PostgreSQL | 65535 | il·limitat |
SQLite (només proxy Zabbix) | 65535 | il·limitat |
La sortida de l'execució d'ordres remots (valor de retorn) és limitada a 16 Mo (incloent els espais en blanc al final truncats). El límit de les comandes remotes IPMI es basa en la biblioteca IPMI instal·lada. També s'hi apliquen els límits de la base de dades.
Les ordres remotes executades a l'agent Zabbix (scripts personalitzats) primer s'han d'habilitar al fitxer configuració de l'agent.
Assegureu-vos que s'afegeix el paràmetre AllowKey=system.run[<command>,*] per a cada ordre permesa a la configuració de l'agent per permetre una ordre específica amb el mode nowait. Reinicieu el dimoni de l'agent si canvieu aquesta configuració.
Les ordres remotes no funcionen amb agents Zabbix actius.
Aleshores, quan es configura una acció nova a Alertes → Accions → Accions de triggers:
Tots els scripts (webhook, script, SSH, Telnet, IPMI) disponibles per a operacions d'acció es defineixen als scripts globals.
Per exemple :
En aquest cas, Zabbix intentarà reiniciar un procés Apache. Amb aquesta ordre, assegureu-vos que l'ordre s'executa a l'agent Zabbix (feu clic al botó Agent Zabbix al costat d'Executar).
Tingueu en compte que per emprar sudo l'usuari de Zabbix no té permisos per reiniciar els serveis del sistema de manera predeterminada. Consulteu els consells de configuració de sudo a continuació.
L'agent Zabbix s'ha d'executar a l'equip remot i acceptar connexions entrants. L'agent Zabbix executa ordres en segon pla.
Les ordres remotes de l'agent Zabbix s'executen sense demora mitjançant la clau system.run[,nowait] i els resultats de l'execució no es comproven. Al servidor Zabbix, les ordres remotes s'executen amb el temps d'espera definit al paràmetre TrapperTimeout al fitxer zabbix_server.conf i els seus resultats són comprovats.
Assegureu-vos que l'usuari "zabbix" tingui permisos d'execució per a les ordres configurades. Potser us interessa emprar sudo per donar accés a ordres privilegiades. Per configurar l'accés, executeu com a root:
Exemples de línies que es poden emprar al fitxer sudoers:
# permet que l'usuari "zabbix" executi totes les ordres sense mot de pas.
zabbix TOT=NOPASSWD: TOTS
# permet que l'usuari "zabbix" reiniciï apache sense mot de pas.
zabbix ALL=NOPASSWD: /etc/init.d/apache reinici
En alguns sistemes, el fitxer sudoers impedirà que els usuaris no locals executin ordres. Per canviar-ho, comenta l'opció requiretty a /etc/sudoers.
Si el sistema de destinació té diverses interfícies del tipus seleccionat (agent Zabbix o IPMI), les ordres remotes s'executaran a la interfície predeterminada.
És possible executar ordres de forma remota mitjançant SSH i Telnet mitjançant una altra interfície que l'agent Zabbix. La interfície disponible per emprar es tria en l'ordre següent:
Per les comandes remotes IPMI, haureu d'emprar aquesta sintaxi:
on
Es poden emprar exemples d'scripts globals com a comandes remotes dins l'operació d'acció.
Exemple 1
Reinici de Windows sota determinades condicions.
Per tal de reiniciar automàticament Windows en cas de problema detectat per Zabbix, definiu el següent script:
Paràmetre d'script | Valor |
---|---|
Àmbit | 'Acció d'operació' |
Tipus | 'Script' |
Comanda | c:\windows\system32\shutdown.exe -r -f |
Reiniciar l'equip emprant un control IPMI.
Paràmetre de l'script | Valor |
---|---|
Àmbit | 'Acció d'operació' |
Tipus | 'IPMI' |
Comanda | reset |
Exemple 3
Apagar l'equip emprant un control IPMI.
Paràmetre de l'script | Valor |
---|---|
Àmbit | 'Acció d'operació' |
Tipus | 'IPMI' |
Comanda | power off |