Áú»¢¶Ä²©

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 Áú»¢¶Ä²© executar¨¤ una ordre en lloc d'enviar un missatge.

Les comandes remotes les pot executar un servidor, un proxy o un agent Áú»¢¶Ä²©. Les comandes remotes de l'agent Áú»¢¶Ä²© es poden executar directament pel servidor Áú»¢¶Ä²© o mitjan?ant el proxy Áú»¢¶Ä²©. Les comandes remotes de l'agent Áú»¢¶Ä²© i del proxy Áú»¢¶Ä²© 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 Áú»¢¶Ä²© 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 ¾±±ô¡¤±ô¾±³¾¾±³Ù²¹³Ù
SQLite (nom¨¦s proxy Áú»¢¶Ä²©) 65535 ¾±±ô¡¤±ô¾±³¾¾±³Ù²¹³Ù

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 Áú»¢¶Ä²© (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¨®.

Aleshores, quan es configura una acci¨® nova a Alertes ¡ú Accions ¡ú Accions de triggers:

  1. 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:

  1. A la pestanya Operacions, feu clic a Afegir al bloc Operacions, Recuperar operacions o Actualitzar operacions.

  1. Al camp desplegable* Operaci¨®, trieu un dels scripts predefinits de la llista deseplegable i trieu la Llista de destinataris* per 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, Áú»¢¶Ä²© intentar¨¤ reiniciar un proc¨¦s Apache. Amb aquesta ordre, assegureu-vos que l'ordre s'executa a l'agent Áú»¢¶Ä²© (feu clic al bot¨® Agent Áú»¢¶Ä²© al costat d'Executar).

Tingueu en compte que per emprar sudo l'usuari de Áú»¢¶Ä²© no t¨¦ permisos per reiniciar els serveis del sistema de manera predeterminada. Consulteu els consells de configuraci¨® de sudo a continuaci¨®.

Des de la versi¨® 7.0 de l'agent Áú»¢¶Ä²©, les comandes remotes tamb¨¦ es poden executar a un agent que opera en mode actiu. L'agent de Áú»¢¶Ä²© - sigui actiu o passiu - ha d'executar-se a l'equip remot, i executar les comandes en segon pla.

Les comandes remotes de l'agent Áú»¢¶Ä²© s'executen sense demora mitjan?ant la clau system.run[,nowait] i els resultats de l'execuci¨® no es comproven. Al servidor Áú»¢¶Ä²©, 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. Per tindre m¨¦s informaci¨®, veieu el temps d'espera dels scripts .

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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²©. La interf¨ªcie disponible per emprar es tria en l'ordre seg¨¹ent:

  • Interf¨ªcie predeterminada de l'agent Áú»¢¶Ä²©
  • 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

Reinici de Windows sota determinades condicions.

Per tal de reiniciar autom¨¤ticament Windows en cas de problema detectat per Áú»¢¶Ä²©, definiu el seg¨¹ent script:

Par¨¤metre d'script Valor
?mbit '´¡³¦³¦¾±¨® 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 '´¡³¦³¦¾±¨® d'operaci¨®'
Tipus 'IPMI'
Comanda reset

Exemple 3

Apagar l'equip emprant un control IPMI.

Par¨¤metre de l'script Valor
?mbit '´¡³¦³¦¾±¨® d'operaci¨®'
Tipus 'IPMI'
Comanda power off