Aumentando a funcionalidade do WatchMouse 1. O que é isso? 2. Como funcionam os plug-ins? 3. Como posso criar meu próprio plug-in? 4. Limitações de tempo 5. Exemplos 1. O que é isso? Em alguns pacotes do Nimsoft Cloud Monitor (por exemplo, "Platinum"), você pode Especificar monitores do tipo 'plug-in'. Com esse monitor, você pode aumentar a capacidade do sistema Nimsoft Cloud Monitor de testar qualquer protocolo, servidor ou processo em suas instalações, mesmo por trás do firewall. 2. Como funcionam os plug-ins? Plug-ins são páginas da Web dinâmicas hospedadas no seu próprio servidor Web, que executam o teste em nome do servidor WatchMouse. A página (plug-in) é aberta mediante uma sequência de parâmetros (veja abaixo) e retorna o resultado do teste. Como a página dinâmica é executada em seu próprio servidor e sob seu controle, ela permite que você acesse mais sistemas do que o sistema Nimsoft Cloud Monitor externo. 3. Como posso criar meu próprio plug-in? Para criar seu próprio plug-in, crie uma página da Web dinâmica em um servidor Web que possa ser acessado via Internet. Pode-se usar qualquer linguagem de programação para criar a página dinâmica (PHP, ASP, C++, Java, TCL, ...). A página será visitada pelos servidores Nimsoft Cloud Monitor no intervalo que você especificar nas suas configurações de monitor. Os seguintes parâmetros são entregues a essa página dinâmica por meio de um comando HTTP POST: - WMhost
- WMport
- WMpath
- WMpar
- WMaccount
- WMpasswd
- WMua [to be implemented]
- WMmem [to be implemented]
O valor do parâmetro é copiado das configurações de seu monitor por meio dos campos de host, porta, caminho, parâmetro, conta e senha, respectivamente. Os parâmetros são postados por meio do protocolo HTTP 1.0. Nos registros de seu servidor Web, você pode reconhecer os testes de nossos servidores, já que eles estão marcados com o agente-usuário WatchMouse/NNN. Atualmente, a versão NNN é 1.20. 3.1. Valores de retorno Após executar o teste no script de sua página dinâmica, você deve retornar uma página com o tipo de conteúdo "text/plain" e com uma ou mais linhas finalizadas com uma nova linha (de preferência um caractere de alimentação de linha). Essas linhas devem aparecer assim (sem linhas vazias, sem espaços em branco): parameter=value Os valores de retorno a seguir já estão definidos; os outros nomes de parâmetros serão ignorados: | Name | Type | Optional | Description | | status | unsigned integer | N | Use 0 para denotar um resultado bem-sucedido, e 1..9999 se houver algum erro. Use diferentes valores para diferentes condições de erro. | | message | char(255) | Y | O texto deve ser breve (sem novas linhas, geralmente 20 caracteres, máx. 255 caracteres). Recomenda-se usar um texto específico para cada valor de status. | | rtime* | unsigned integer | N/A | Tempo de resolução. Ainda não registrado, mas disponível on-line. | | ctime | unsigned integer | Y | Tempo de conexão. Tempo em milissegundos para criar a conexão | | dtime | unsigned integer | Y | Tempo de download. Tempo em milissegundos para baixar as informações. | | dsize | unsigned integer | Y | Tamanho do download. Número de bytes baixados. | | ptime | unsigned integer | Y | Tempo de processamento. Tempo em milissegundos para executar o processamento. Geralmente o tempo entre o momento da conexão e o primeiro byte recebido | | user | unsigned integer | Y | Valor definido pelo usuário | | *) Ainda não registrado | Observe que, exceto pelos campos 'status' e 'message', na verdade todos os campos podem ser definidos pelo usuário. Usá-los para a finalidade descrita acima possibilitará que outras pessoas tenham mais facilidade para interpreter os registros e gráficos. 4. Limitações de tempo O tempo de espera (timeout) que você definiu no monitor (padrão de 8 segundos) é enviado ao plug-in, mas é também o tempo de espera do plug-in propriamente dito. No caso de um tempo de espera, os parâmetros (ctime, ...) não são armazenados. 5. Exemplos Abaixo, você encontrará um exemplo em PHP (http://www.php.net/), Java e ASP. 5.1. Exemplo de PHP 1. <? 2. // Conector Nimsoft Cloud Monitor para banco de dados MySQL 3. // Os seguintes parâmetros POST estão disponíveis 4. // WMhost, WMport, WMpath, WMaccount, WMpasswd, WMpar 5. // A saída do host remoto deve ser um cabeçalho MIME, 6. // seguido de: 7. // status=NNN\nmessage=XXX\n 8. // NNN é um número positivo, 0 denota ok, 1..9999 indica um erro 10. // XXX é uma mensagem, máx. 255 caracteres, somente caracteres ASCII de 32 a 127 11. 12. $dbhost = 'dbhost.yourdomain.com'; 13. $dbname = 'yourDBname'; 14. $dbuser = $WMaccount; 15. $dbpass = $WMpasswd; 16. 17. $dbh = @mysql_connect($dbhost, $dbuser, $dbpass); 18. 19. $err = mysql_errno()+0; 20. $msg = mysql_error(); 21. if (!$dbh && !$err) { 22. $err=1; 23. $msg = "Couldn\'t connect to $dbhost($dbuser))"; 24. } 25. print "status=$err\n"; 26. print "message=$msg\n"; 27. 28. if ($dbh) @mysql_close($dbh); 29. ?> 5.2. Exemplo de Java [TBI] 5.3. Exemplo de ASP [TBI] |