samedi 6 avril 2013

Monitoring server via une appli PHP gratuite



Si vous avez un serveur équipé de PHP et MySql, vous pouvez effectuer du monitoring server.

Ceci est très simple avec un serveur dédié, mais aussi possible avec un serveur mutualisé, via quelques astuces.

Nous allons voir comment mettre en place cela en 15 minutes.

Note : dans ce billet, je vais parler de CRONTAB. Crontab, ce sont les tâches planifiées sous Linux qui dans ce cas, nous permettent de planifier la récurrence des tests de monitoring.

Monitoring serveur sur un serveur dédié (accès Crontab)


Je vous propose d’utiliser « PHP Server Monitor », une plateforme Open Source de monitoring en PHP, disponible gratuitement sur : http://sourceforge.net/projects/phpservermon/

Ce système va vous permettre de vérifier la présence en ligne d’un serveur (requête http et https), ainsi que le fonctionnement de différents services : FTP, Imap, etc.

En cas de down, un e-mail est envoyé (ainsi qu’au retour à la normale). On peut créer plusieurs utilisateurs. Ainsi le webmaster du site Z recevra uniquement les infos relatives au serveur Z et le webmaster du site Y, les infos du site Y, pendant que le super Admin, recevra toutes les infos.

C’est très simple à installer : uploadez le dossier, créez une DB dédiée, allez sur la page install.php et ça marche.

Il vous suffit ensuite de paramétrer le Crontab du serveur:

#serveur monitoré toutes les 15 minutes
*/15 * * * * root /usr/bin/php /var/www/html/phpservermon/cron/status.cron.php

Voilà, c’est fini!


Monitoring serveur sur un serveur mutualisé (pas d’accès Crontab)


Sur un serveur mutualisé, vous n’avez pas accès au Crontab du serveur ; il va donc falloir un peu ruser.

Puisque vous êtes un fidèle lecteur de mes articles, vous avez déjà un serveur de monitoring installé en local : http://brice-cornet.blogspot.be/2012/11/logiciel-monitoring-serveur-gratuit.html

Nous allons utiliser ce serveur pour « remplacer » le Crontab.

Pour ce faire, allez dans PHP Server Monitor, dans le dossier \tpl et éditez la page main.tpl.html

Sous l’appelle du titre, vous allez ajouter le code en mauve :

<h1>{title}</h1>

<iframe
        src="CHEMIN_ACCES/cron/status.cron.php"
        id="c"
        width="100px"
        height="1px"
        scrolling="no"
        frameborder="0" >
</iframe>


Ensuite, dans l’espace de configuration de PHP Server Monitor, demandez à ce que la page des résultats soit rafraichie par exemple toutes les 90 secondes.

Ainsi, en appelant la page des résultats, le système force le lancement des tests de monitoring.

Sur votre serveur de monitoring local, vous créez une page HTML qui appelle dans une iframe la page de monitoring et qui s’auto rafraichit toutes les 5 minutes (il vous faudra donc laisser en permanence cette page web ouverte).

Pourquoi cela ? Parce que si vous êtes sur un serveur mutualisé, vous êtes sur un serveur bon marché qui va planter de temps en temps, à force d’appeler la page de monitoring en boucle ! Dès lors, forcer un rafraichissement de page en local, va bypasser ce soucis.

Code de la page :

<html>
<head>
<title>MonitorBox Serveur Mutualisé</title>
</head>
<script>
<!--
var limit="4:59"
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh(){
if (!document.images)
return
if (parselimit==1)
window.location.reload()
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+" minutes and "+cursec+" seconds left until page refresh!"
else
curtime=cursec+" seconds left until page refresh!"
window.status=curtime
setTimeout("beginrefresh()",1000)
}
}
window.onload=beginrefresh
//-->
</script>
<!--This is the header section.-->

<BODY>
<FONT FACE="Arial, Helvetica, Geneva">
<center>
<iframe src="URL_SERVEUR_MUTUALISE/index.php?type=servers" width="900" height="1000" frameborder="0" align="center" scrolling="yes">
<p>Your browser does not support iframes.</p>
</iframe>
</center>
</FONT>
</body>
</html>


Bloquer l’accès à PHP Server Monitor


PHP Server Monitor est par défaut ouvert à tout vent.

Il faut donc bloquer son accès via un fichier .htaccess et un fichier .htpasswd

Pour ce faire, je vous renvoie à cette page : http://www.helpclic.net/tutoriaux/tutoriel-358-Creer-un-fichier-htaccess-et-un-fichier-htpasswd-pour-proteger-un-dossier.html

Conclusion


Vous amortissez désormais mieux ce serveur dédié, recevez des emails en cas de soucis et avez fait évolué votre MonitorBox : youpie°°° (^_^)


Aucun commentaire:

Enregistrer un commentaire