Manuale d'uso dei plug-in di WatchMouse

Espansione della funzionalità di WatchMouse


1. Che cos’è?

2. Come funzionano i plug-in?

3. Come posso creare un plug-in personalizzato?

4. Limiti di tempo

5. Esempi



1. Che cos’è?

In alcuni pacchetti WatchMouse (ad es. "Platinum") è possibile specificare monitoraggi di tipo 'plugin'. Utilizzando un monitoraggio plug-in è possibile espandere la funzionalità del sistema WatchMouse per verificare qualunque protocollo e qualsiasi server o processo a propria disposizione, anche dietro un firewall.

2. Come funzionano i plug-in?

I plug-in sono pagine Web dinamiche posizionate sul proprio server Web, che eseguono la verifica per conto del server WatchMouse. La pagina (plug-in) viene aperta con una serie di parametri (vedere sotto) e restituisce il risultato della verifica. Dato che la pagina dinamica viene eseguita sul proprio server, ed è sotto il proprio controllo, è in grado di accedere ad altri sistemi oltre al sistema WatchMouse esterno.

3. Come posso creare un plug-in personalizzato?

È possible creare un plug-in personalizzato realizzando una pagina Web dinamica su un server Web raggiungibile via Internet. Per creare questa pagina dinamica è possible utilizzare qualsiasi linguaggio di programmazione (PHP, ASP, C++, Java, TCL, ...). La pagina viene visitata dai server WatchMouse in base all’intervallo specificato nelle impostazioni dei monitoraggi.

I seguenti parametri vengono inviati a tale pagina dinamica utilizzando un comando HTTP POST:

  • WMhost
  • WMport
  • WMpath
  • WMpar
  • WMaccount
  • WMpasswd
  • WMua [da implementare]
  • WMmem [da implementare]

Il valore del parametro viene copiato dalle impostazioni dei monitoraggi utilizzando i campi relativi a host, porta, percorso, parametro, account, e password, rispettivamente.
I parametri vengono spediti utilizzando il protocollo HTTP 1.0. Nei registri del proprio server Web è possible riconoscere le verifiche provenienti dai nostri server, poiché sono contrassegnate con l’user-agent WatchMouse/NNN. Attualmente, la versione NNN è 1.20.

3.1. Valori di risposta

Dopo l’esecuzione della verifica tramite lo script della propria pagina dinamica, dovrebbe essere restituita una pagina con content-type "text/plain" e con una o più righe che terminano con una nuova riga, possibilmente un carattere di interruzione di riga. Queste righe dovrebbero apparire come segue (nessuna riga vuota, nessuno spazio iniziale):

    parametro=valore

Vengono definiti i seguenti valori di risposta, gli altri nomi di parametro verranno ignorati:

Nome Tipo Opzionale Descrizione
stato numero intero positivo N Usare 0 per denotare un risultato positive e un valore di 1..9999 in caso di errore. Usare valori diversi per ogni condizione di errore.
messaggio caratt.(255) Y Un testo breve (senza paragrafi, normalmente 20 caratteri, max 255 caratteri). Possibilmente, utilizzare un testo specifico per ogni valore di stato.
rtime* numero intero positivo N/A Tempo di risoluzione. Non ancora registrato, ma disponibile online.
ctime numero intero positivo Y Tempo di connessione. Tempo in millisecondi per stabilire la connessione
dtime numero intero positivo Y Tempo di download. Tempo in millisecondi per scaricare le informazioni.
dsize numero intero positivo Y Dimensioni di download. Numero di byte scaricati.
ptime numero intero positivo Y Tempo di elaborazione. Tempo il millisecondi per l’elaborazione. Normalmente il tempo trascorso dalla connessione al primo byte ricevuto
user numero intero positivo Y Valore definito dall’utente
*) Attualmente non registrato

Eccetto i campi 'stato' e 'messaggio', tutti i campi sono in realtà definibili dall’utente. Se vengono utilizzati allo scopo descritto sopra consentiranno una più agevole interpretazione dei registri e dei grafici da parte di altri utenti.

4. Limiti di tempo

Il timeout impostato nel monitoraggio (valore predefinito 8 secondi) viene inoltrato al plug-in, ma rappresenta anche il timeout del plug-in stesso. In caso di un timeout, i parametri (ctime, ...) non vengono memorizzati.

5. Esempi

Di seguito, è possibile trovare un esempio in PHP (http://www.php.net/), Java, e ASP.

5.1. Esempio PHP

1. <?
2. // Elemento di collegamento WatchMouse per database MySQL
3. // Sono disponibili i seguenti parametri POST
4. // WMhost, WMport, WMpath, WMaccount, WMpasswd, WMpar
5. // L’output dell‘host sarà un’intestazione MIME,
6. // seguita da:
7. // stato=NNN\nmessaggio=XXX\n
8. // NNN è un numero positivo, 0 corrisponde a OK, 1..9999 ad un errore
10. // XXX è un messaggio, max 255 caratteri, solo car. ASCII 32..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 = "Impossibile eseguire il collegamento a $dbhost($dbuser))";
24. }
25. print "status=$err\n";
26. print "message=$msg\n";
27.
28. if ($dbh) @mysql_close($dbh);
29. ?>

5.2. Esempio Java

[TBI]

5.3. Esempio ASP

[TBI]