Contents Previous Next

Variáveis repassadas para ScriptServer e ScriptClient

O objetivo das variáveis ScriptServer e ScriptClient é permitir uma ação no computador que está gerando o evento (Client) ou no computador servidor do MTMON (Server ). Esta ação pode ser enviar um email ou SMS para o responsável pelo evento, acionar algum recurso ou gerar um registro em outro software de gerência, como por exemplo o Nagios , IBM Tivoli, HP OpenView, CA Unicenter ou BMC Patrol.

Quando o script definido é acionado, estão disponíveis as seguintes variáveis de SHELL :

Além dessas variáveis definidas pelo MTMON, todos os parâmetros configurados na TabelaOrigem são repassados para os script, gerando uma variável de ambiente chamada MTMON_parametro.

As variáveis repassadas ao script podem ser verificadas incluindo a seguinte linha de comando no script :

  env | grep "^MTMON" | sort

A variável MTMON_Origem é recuperada do arquivo de parâmetros instalado no computador cliente do MTMON. A variável MTMON_Empresa é definida no arquivo TabelaOrigem configurada no computador servidor do MTMTON usando a Origem definida no computador cliente do MTMON. As demais variáveis são informadas na chamada do mtmon_evento.pl.

É importante entender que o script definido na variável ScriptClient é executado no computador cliente com o UID do usuário que está criando o evento ao passo que o script definido na variável ScriptServer é executado no computador que é o servidor do MTMON, com o UID do APACHE lá definido. Desta forma, podemos acionar recursos locais e/ou remotos, permitindo assim inúmeras implementações de forma bastante simples.

Na linha do tempo, o ScriptServer é executado antes de ScriptClient. Isso ocorre por que os scripts são executados após o cadastro do evento e o ScriptClient só é executado depois do retorno do processamento no servidor do MTMON.

Esta abordagem é interessante quando o servidor do MTMON é controlado por uma empresa diferente de onde o processo é monitorado. Neste caso, o ScriptClient acionaria recursos locais da empresa monitorada, como por exemplo gerar entradas no nagios local.

Por outro lado, ScriptServer define os acionamentos que ocorrerão na empresa monitoradora, como por exemplo, acionar algum analista sobre o fato do file system estar com a disponibilidade de área comprometida. As ações executadas por ScriptServer e/ou ScriptClient ocorrem em background, sem que o operador que está acompanhando o monitoramento na janela do browser seja notificado, definindo assim um alto grau de pró-atividade.

Definição do script à ser executado

Os parâmetros ScriptServer e/ou ScriptClient definem o nome do script à ser executado na criação de eventos no MTMON. No entanto, o sistema faz uma verificação para identificar scripts personalizados para Origem e Server.

Por exemplo, se o parâmetro ScriptServer está configurado com o conteúdo :

    Server='Proxy';
    Origem='Empresa';
    ScriptServer='/usr/local/Multitask/mtmon/bin/teste_server.sh';

O MTMON procurará os seguintes script's:

   /usr/local/Multitask/mtmon/bin/Proxy.Empresa.teste_server.sh
   /usr/local/Multitask/mtmon/bin/Empresa.teste_server.sh
   /usr/local/Multitask/mtmon/bin/teste_server.sh

Para o ambiente Windows, o recomenda-se que o script seja um executável ou um script em Perl.

O primeiro arquivo que for executável será usado para tratar o evento. Ou seja, se existir o arquivo Proxy.Empresa.teste_server.sh , todos os eventos gerados no servidor Proxy da origem Empresa serão tratados por este script. Se o arquivo não existe ou não tem permissão de execução, é verificado da mesma forma o arquivo Empresa.teste_server.sh. Se existir e é executável, este será usado para tratar os eventos da origem Empresa. Em último caso, testa a existencia do arquivo teste_server.sh, que será usado no tratamento de todos os eventos criados no servidor.

A idéia é que podemos definir scripts personalizados por Origem e Server, diminuindo a complexidade dos scripts que tratam dos eventos.

O critério definido acima é válido para ScriptClient.

Definindo critérios para a criação do evento

Existem eventos que só devem ser criados em situações específicas, que são identificadas por meio de um processamento ou validação, é que não é possível definir em arquivos de configuração. Para estes casos, a opção ScriptClientCheck deve ser usada.

Se o script definido em ScriptClient retorna um valor diferente de 0, o evento não será enviado para o servidor MTMON e o mesmo não será criado. Esta funcionalidade simplifica o tratamento de geração de eventos, pois o programa que monitora algum recurso, se concentra na tarefa de gerar um evento quando determinado fato gerador ocorrer. Mas, muitas vezes, este fato gerador só deve ser reportado em determinadas horas do dia ou dias da semana, podendo nos demais períodos ser ignorados de forma segura.

É importante atentar para o fato que o script definido em ScriptClient será acionado 2 vezes. A primeira imediatamente antes de enviar o evento para o servidor MTMON e depois novamente após a criação do evento.

Na segunda chamada do script, a variável MTMON_EventoCadastrado estará definida com o código do evento gerado no servidor MTMON.

Exemplo de script em Perl (Windows)

Para o script abaixo :

exit 0 if ($ENV{'MTMON_EVENTOCADASTRADO'});

my $hora = (localtime(time))[2];
exit 0 if ($hora > 17);
exit 0 if ($hora < 8);
print "MTMON_Finaliza=1\n";
exit 0;

Se o nome do script é C:/Multitask/mtmon/bin/preExec.pl configure o parâmetro conforme abaixo :

    ScriptServer=C:/Multitask/mtmon/bin/preExec.pl

Observe que para o script acima, durante o horário comercial, o mesmo gera uma linha com o conteúdo MTMON_Finaliza=1. Esta linha informa o cliente do MTMON para finalizar o evento durante o horário comercial.

Podem ser geradas outras variáveis inciadas por MTMON_VARIAVEL =VALOR. Internamente, estas variáveis serão convertidas em argumentos para configurar o evento gerado no MTMON.


Contents Previous Next