Áú»¢¶Ä²©

2 Comandos remotos

Vis?o geral

Com os comandos remotos voc¨º pode definir um comando a ser executado automaticamente sob determinada condi??o.

Desta maneira, os comandos remotos s?o um mecanismo eficiente para monitora??o pr¨®-ativa.

As situa??es mais comuns onde se utiliza este recurso s?o:

  • Reiniciar automaticamente alguma aplica??o (servidor web, aplica??es, CRM) se ele n?o estiver respondendo
  • Utilizar o comando IPMI de 'reboot' para reiniciar remotamente um servidor que n?o responde
  • Liberar automaticamente espa?o em disco (removendo arquivos antigos, limpando o /tmp) se o espa?o estiver acabando
  • Migrar uma VM para outro servidor f¨ªsico dependendo do esgotamento de CPU do servidor f¨ªsico atual
  • Adicionar novos nodes em um ambiente de nuvem que estiver com seus recursos esgotando (armazenamento, mem¨®ria, CPU, etc)

Configurar uma a??o para comandos remotos ¨¦ muito similar a enviar uma mensagem, a ¨²nica diferen?a ¨¦ que o Áú»¢¶Ä²© ir¨¢ executar o comando ao inv¨¦s de enviar a mensagem.

Os comandos remotos n?o s?o suportados atrav¨¦s de Proxy, pois o servidor Áú»¢¶Ä²© se conecta diretamente ao agente para solicitar a execu??o remota.

O comando remoto ¨¦ limitado a 255 caracteres. M¨²ltiplos comandos podem ser executados, bastando que sejam separados por novas linhas. ? permitido o uso de macros. Consulte o manual de execu??o de comandos para maiores detalhes.

O tutorial a seguir apresenta como um comando remoto poderia ser configurado.

Configura??o

Para os comandos remotos serem executados pelo Áú»¢¶Ä²© Agent (scripts personalizados) o mesmo dever¨¢ ter seu arquivo de configura??o devidamente configurado para permitir isso.

Certifique-se que o par?metro EnableRemoteCommands est¨¢ definido como 1 e sua linha n?o est¨¢ comentada. Reinicie o agente ap¨®s modificar este par?metro.

Comandos remotos n?o funcionam atrav¨¦s de agentes ativos.

Para configurar uma nova a??o:

  • Acesse Configura??o¡ú A??es
  • Na aba de Opera??es, selecione o tipo Comando remoto
  • Selecione o tipo de comando remoto (IPMI, Custom script, SSH, Telnet, Script global)
  • Informe o comando remoto

Por exemplo:

sudo /etc/init.d/apache restart 

Neste caso o Áú»¢¶Ä²© Agent tentara reiniciar o processo do apache. Certifique-se que a op??o Executar em esteja definida como Agente Áú»¢¶Ä²©.

O comando exemplificado utiliza-se do sudo e o usu¨¢rio 'zabbix' por padr?o n?o possui permissionamento para reiniciar servi?os. Veja a seguir algumas dicas sobre configura??o do sudo.

O Áú»¢¶Ä²© Agent precisa estar em execu??o no host remoto e aceitar conex?es de entrada (monitora??o passiva). A execu??o dos comando ser¨¢ feita pelo agente em segundo plano.

O Áú»¢¶Ä²© n?o verifica se o comando foi ou n?o executado com sucesso.

Comandos remotos no Áú»¢¶Ä²© Agent s?o executados no agente sem limite de tempo ('system.run[,nowait]'). No Áú»¢¶Ä²© Server eles ser?o executados com limite de tempo definido pelo par?metro TrapperTimeout presente no arquivo de configura??o do servidor.

  • Na aba de Condi??es, defina as condi??es apropriadas. Neste exemplo, a a??o ser¨¢ executada somente quando ocorrerem eventos com severidade em n¨ªvel de Desastre e estiverem associados ¨¤ aplica??o Apache.

Permiss?o de acesso

Certifique-se que o usu¨¢rio 'zabbix' possua permiss?es de execu??o nos comandos configurados. Uma forma interessante de garantir isso ¨¦ atrav¨¦s do comando sudo para os comandos privilegiados. Para configurar, execute como o usu¨¢rio 'root':

# visudo

Exemplos de linhas que podem ser utilizadas no arquivo sudoers:

# permite o usu¨¢rio 'zabbix' executar sem precisar de senha.
       zabbix ALL=NOPASSWD: ALL
       
       # permite que o usu¨¢rio 'zabbix' reinicie o apache sem precisar de senha.
       zabbix ALL=NOPASSWD: /etc/init.d/apache restart

Em alguns ambientes o arquvio sudoers ir¨¢ proibir que usu¨¢rios remotos executem comandos. Para modificar isso, remova o coment¨¢rio da op??o requiretty no sudoers.

Comandos remotos e m¨²ltiplas interfaces

Se o sistema de destino possuir m¨²ltiplas interfaces de um mesmo tipo (Áú»¢¶Ä²© Agent ou IPMI), os comandos remotos ser?o executados apenas atrav¨¦s da interface padr?o.

Exemplos

Exemplo 1

Reiniciar o Windows em determinada condi??o.

Para reiniciar automaticamente o windows quando problemas forem detectados pelo Áú»¢¶Ä²©, defina a opera??o a seguir:

Par?metro Descri??o
Tipo da opera??o 'Remote command'
Tipo 'Script personalizado'
Comando c:\windows\system32\shutdown.exe -r -f
Exemplo 2

Reiniciar o host atrav¨¦s do controle IPMI.

Par?metro Descri??o
Tipo da opera??o 'Remote command'
Tipo 'IPMI'
Comando reset on
Exemplo 3

Desligar o host atrav¨¦s do controle IPMI.

Par?metro Descri??o
Tipo da opera??o 'Remote command'
Tipo 'IPMI'
Comando power off