Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/10/2005, 15:44
Shockly
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 8 meses
Puntos: 0
Hola,

Como veo que últimamente este tema ha salido en un par de ocasiones, este es mi script de Server Status, Site monitor o como quiera ser llamado.

Viendo el source se ve claramente qué es lo que hace, pero básicamente se trata de traerse el 'index.php' del objetivo. Para monitorizar el servidor mySQL del objetivo, en el index está implementada una línea que muestra, entre otras cosas, los valores de Server Load y un simple contador incremental que reside en una base de datos cualquiera.

El script se lanza con el navegador y funciona en modo 'free running': el cierre del navegador no lo aborta, para abortarlo se crea una carpeta con un nombre específico.

El script monitoriza el objetivo cada minuto, y lleva funcionando ininterrumpidamente más de cuatro meses.

Sus complementos son un 'log viewer', un 'site stats' que interpreta y sumariza los logs, y un 'supervisor' del script, que se encarga de 'resucitarlo' en las contadas ocasiones en las que se ha reinicido el server que lo aloja... pero esos complementos son otra historia.


Un saludo.



El log que genera se interpreta así:

Código:
   START 22/07/2005 02:30:27  ----> (DD/MM/YY HH:MM:SS)
   [...]
   24, RUNNING, Server Running, 22/07/2005 02:53:38, 0.62, 1.342, 1357, 00/00:23:10, 0, 100.000, 0.000
   --  -------  --------------  -------------------  ----  -----  --    -----------  -  -------  -----
   |   |        |               |                    |     |      |     |            |  |        |
   |   |        |               |                    |     |      |     |            |  |        |
   |   |        |               |                    |     |      |     |            |  |        ----> DownTime (%)
   |   |        |               |                    |     |      |     |            |  ----> UpTime (%)
   |   |        |               |                    |     |      |     |            ----> Outages (#)
   |   |        |               |                    |     |      |     ----> Monitor Elapsed Time (DD/HH:MM:SS)
   |   |        |               |                    |     |      ----> Total Downloaded (Kb)
   |   |        |               |                    |     ----> Page Download Time (seconds)
   |   |        |               |                    ----> Host Server Load
   |   |        |               ---->  Round Date&Time (DD/MM/YY HH:MM:SS)
   |   |        ----> Brief Description
   |   ----> Host Status
   ----> Round (#)

y la definición de la info que suministra el target sobre él, es esta:

Código PHP:
//---------------------------------------------------------------------------------------------------
/*
    En 'global.php' del target:

        $monitor_info  = MAGIC_BEG;
        $monitor_info .= ",";
        $monitor_info .= $simple_counter;        //  extraido de la db
        $monitor_info .= ",";
        $monitor_info .= $serverload;
        $monitor_info .= ",";
        $monitor_info .= time();
        $monitor_info .= ",";
        $monitor_info .= MAGIC_END;

    En el template 'footer' del target:
    
        <!-- La info para el monitor: $monitor_info -->
        
    El resultado en el target:
    
        <!-- La info para el monitor: __ki78FEm__,235541,0.15,1130791487,__G3uuFT9__ -->

*/
//---------------------------------------------------------------------------------------------------