Monitorear servidor web usando PHP

5
3106

Volviendo a la batalla después de más de un mes, encontre un script bien práctico en Who Cat Code de cómo monitorear tu servidor web haciendo uso de PHP. El script es pequeño y fácil de entender:

<?php
function check($host, $find) {
$fp = fsockopen($host, 80, $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)\n";
} else {
$header = "GET / HTTP/1.1\r\n";
$header .= "Host: $host\r\n";
$header .= "Connection: close\r\n\r\n";
fputs($fp, $header);
while (!feof($fp)) {
$str .= fgets($fp, 1024);
}
fclose($fp);
return (strpos($str, $find) !== false);
}
}

function alert($host) {
mail('mi_mail@gmail.com', 'Monitoring', $host.' down');
}

$host = 'www.ribosomatic.com';
$find = 'Desarrollo web y mas...';
if (!check($host, $find)) alert($host);
?>

Tiene dos funciones: la primera, check, tiene como parametros de entrada 1) el nombre de nuestro sitio y  2) alguna palabra ó frase que siempre esta presente en el contenido de nuestro sitio, aunque es opcional. Este último parametro sirve para ver si se ha modificado el contenido de nuestro sitio por terceros (hacking) por ejemplo.

La segunda función, alert, envia un aviso al correo que hayamos establecido.

Una vez configurado nuestro script, guardado como … monitoreo.php por ejemplo y subido al server; accedemos a él mediante la dirección correspondiente a donde lo hayamos alojado.

http://miweb.com/monitoreo.php

Para que el proceso sea diario podemos hacer uso de cron, opción de algunos hosting basados en Linux de realizar tareas ó procesos a un determinado intervalo de tiempo establecido por nosotros. En el caso de un panel de administración basado en cPanel, pueden ir al menu Cron Jobs y establecer la frecuencia de ejecución del proceso monitoreo.php

 Check server

Para ver más puedes ir a How to easily monitor your web server using PHP que da sugerencias de como recibir la alertas mediante tu telefono movil también.

5 COMENTARIOS

  1. Hola!! muchas gracias por este post. Sabes que lo probé pero siempre me dice de un servidor que esta activo (y de hecho lo probé en otro host) que siempre esta down.

    EL sitio si despliega los contenidos correctos y en tiempo.

    Sabes en que podría tener la falla el script?

    Gracias de antemano.

  2. Para mi servidor, en donde dice command en cronjobs, agregue al inicio ‘php ‘, quedando asi:

    php /htdocs/www/monitor.php

    Gracias.

Comments are closed.