2 Comandes remotes

Vista general

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:

  • Reiniciar automàticament algunes aplicacions (servidor web, middleware, CRM) si no responen
  • Utilitzar l'ordre 'reboot' de l'IPMI per reiniciar un servidor remot si no respon a les peticions
  • Alliberar espai de disc automàticament (esborrant fitxers antics, netejant /tmp) si us quedeu sense espai al disc
  • Migrar una màquina virtual d'una caixa física a una altra en funció de la càrrega de la CPU
  • Afegir nous nodes a un entorn de núvol en cas de recursos insuficients de la CPU (disc, memòria, etc.)

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.

Límit de les comandes remotes

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.

Configuració

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 Configuració → Accions:

  • Definiu les condicions adequades. En aquest exemple, indiqueu que l'acció és activada en cas d'un problema a nivell de desastre amb una de les aplicacions Apache:

  • A la pestanya Operacions, feu clic a Afegeix al bloc Operacions/Recuperar operacions/Actualitzar operacions
  • Al camp desplegable Operació, trieu un dels scripts predefinits

  • Trieu la llista d'objectius per a l'script

Scripts predefinits

Tots els scripts (webhook, script, SSH, Telnet, IPMI) disponibles per a operacions d'acció es defineixen als scripts globals.

Per exemple :

 sudo /etc/init.d/apache restart

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.

Permisos d'accés

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:

 visudo

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.

Comandes remotes amb diverses interfícies

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:

  • Interfície predeterminada de l'agent Zabbix
  • Interfície predeterminada SNMP
  • Interfície predeterminada JMX
  • Interfície per defecte IPMI

Comandes remotes IPMI

Per les comandes remotes IPMI, haureu d'emprar aquesta sintaxi:

<command> [<value>]

on

  • <command> - una de les comandes IPMI sense espais
  • <value> - 'on', 'off' o un enter sense signe. <value> és un paràmetre facultatiu.

Exemples

Es poden emprar exemples d'scripts globals com a comandes remotes dins l'operació d'acció.

Exemple 1

Reiniciar 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
Exemple 2

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