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:
Configurar uma ação para comandos remotos é muito similar a enviar uma mensagem, a única diferença é que o Zabbix 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 Zabbix 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.
Para os comandos remotos serem executados pelo Zabbix 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:
Por exemplo:
Neste caso o Zabbix Agent tentara reiniciar o processo do apache. Certifique-se que a opção Executar em esteja definida como Agente Zabbix.
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 Zabbix 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 Zabbix não verifica se o comando foi ou não executado com sucesso.
Comandos remotos no Zabbix Agent são executados no agente sem limite de tempo ('system.run[,nowait]'). No Zabbix Server eles serão executados com limite de tempo definido pelo parâmetro TrapperTimeout presente no arquivo de configuração do servidor.
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':
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.
Se o sistema de destino possuir múltiplas interfaces de um mesmo tipo (Zabbix Agent ou IPMI), os comandos remotos serão executados apenas através da interface padrão.
Reiniciar o Windows em determinada condição.
Para reiniciar automaticamente o windows quando problemas forem detectados pelo Zabbix, 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 |
Reiniciar o host através do controle IPMI.
Parâmetro | Descrição |
---|---|
Tipo da operação | 'Remote command' |
Tipo | 'IPMI' |
Comando | reset on |
Desligar o host através do controle IPMI.
Parâmetro | Descrição |
---|---|
Tipo da operação | 'Remote command' |
Tipo | 'IPMI' |
Comando | power off |