Un outil de surveillance pour votre site web

Vous avez un site internet ou un blog ? Voudriez-vous savoir (presque) instantanément lorsque votre site n’est plus joignable ou s’il est inaccessible à vos visiteurs ?
Voudriez-vous que ces alertes vous arrivent directement par email, voire par SMS, ou même les deux ?Beaucoup de sites utilisent des services gratuits (mais pas complètement) tels que Pingdom, Watch Mouse, Site Uptime and Zoho’s Site 24×7.
Ces sites permettent de surveiller, un suivi via monitoring, l’accessibilité d’un site internet. Les services de base sont gratuits, mais les alertes ne sont pas obligatoirement instantanées, ou alors il faut commencer à prendre un abonnement pour être alerté en temps réel.

Surveiller votre site via Google Docs

Pour toujours avoir un oeil sur l’accessibilité à votre site web (à vos sites web, si vous en avez plusieurs) est possible sans pour autant utiliser de services commerciaux.
Google Docs vous permet de monitorer sans aucune restriction vos sites internet.
Vous avez la possibilité de suivre autant de sites que vous le voulez avec Google Docs. Vous pouvez même vous faire envoyer une alerte par email ou sms lorsque le site n’est plus joignable.
Cela ne vous coûtera pas un centime, ces possibilités sont gratuites.

Vous allez voir ici comment utiliser Google Docs pour enregistrer l’heure à laquelle votre site n’est plus accessible, mais aussi l’heure à laquelle est faite la reprise d’activité. Tout cela sera enregistré dans une feuille de calculs.

La procédure

  1. Inscrivez-vous à Google Docs (même si vous n’utilisez pas d’adresse email Gmail), puis cliquez ici pour copier la feuille de calculs dans votre espace Google Drive. De la même manière, vous pourriez aussi utiliser un compte Google Apps.
  2. Ajoutez dans la cellule B2 l’adresse de votre site internet à surveiller. Si vous voulez en surveiller, ajoutez les URLs les unes après les autres, en les séparant par une virgule. Indiquez l’adresse email qui recevra les alertes dans la cellule B3. Si vous voulez être averti par SMS, veuillez remplacer No par Yes dans la cellule B4.
  3. Vous trouverez alors un onglet Website Monitor dans votre menu de barre d’outils Google Docs. Cliquez « Step 1: Initialize », une fenêtre popup (en bas à droite de l’écran) vous demandera l’autorisation d’utiliser les fonctions de votre agenda Google.
  4. Puis cliquez « Step 2 :  Start », le monitoring se met alors en route. Vous pouvez maintenant quitter la feuille de calcul, voire vous déconnecter.

A partir de ce moment, Google va surveiller votre site (ou vos sites) en arrière plan. Toutes les 5 minutes, le service ira vérifier si le site web est accessible. S’il n’est pas accessible, une alerte est envoyée (une ligne est écrite dans la feuille de calcul). De même, une alerte est envoyée lorsque le site est de nouveau opérationnel.
Vous avez alors la possibilité de vérifier ce qu’annonce votre hébergeur en matière de disponibilités…

Comment fonctionne le monitoring ?

En interne, il y a un simple Google Script attaché à la feuille de calcul Google Docs.

Le script s’appelle toutes les 5 minutes grâce à la magie des déclencheurs. Il essaie alors de contacter votre site en utilisant la fonction URLFetchApp.fetch (une fonction Google qui fonctionne selon le principe que WGET ou Curl). Si la réponse HTTP met plus de 200 millisecondes, le site est marqué comme ayant un problème.

Comment sont envoyés les SMS ?

Le script Google Apps peut envoyer des emails sans aucun problème. Pour l’envoi de SMS, il faut utiliser une astuce.

Le script créé un évènement dans votre agenda Google (c’est pour cela que vous a été demandée l’autorisation d’utiliser Google Calendar), avec un rappel par SMS.
L’évènement est réglé pour expirer au bout de 30 secondes, alors, vous recevez une message d’alerte par SMS sur votre téléphone mobile. Si aucun SMS ne vous arrive, veuillez vérifier qu’un numéro de téléphone est associé à votre Agenda Google.

Et le code, il a quelle tête ?

/* 
   Website Monitor HD by Digital Inspiration  
   =========================================  
*/

function init() {  
  if (ScriptApp.getScriptTriggers().length == 0) {
    // Set up a monitor that triggers every 5 minutes
    ScriptApp.newTrigger("websiteMonitor")
      .timeBased().everyMinutes(5).create();
  }  
}

function websiteMonitor()
{
  var response, error, code, urls;
  // The script can monitor multiple website URLs (comma separated)
  urls = SpreadsheetApp.getActiveSheet().getRange("B2").getValue();
  urls = urls.replace(/\s/g, "").split(",");

  for (var i=0; i<urls.length; i++) {

    var url = urls[i];

    if (!ScriptProperties.getProperty(url)) {
        ScriptProperties.setProperty(url, 200);
    }

    // Trying to connect to the website URL
    try {    
      response = UrlFetchApp.fetch(url);
    } catch(error) {
      // If URLFetchApp fails, the site is probably down
      updateLog(url, -1);
      continue;
    }

    code = response.getResponseCode();
    updateLog(url, code);

  }
}

function updateLog(url, code) {  

  if (ScriptProperties.getProperty(url) == code)
    return;

  ScriptProperties.setProperty(url, code);

  var sheet = SpreadsheetApp.getActiveSheet();

  var row   = sheet.getLastRow() + 1;    
  var time  = new Date();  
  var msg = "Down";

  if (code == 200)
    msg = "Up";

  msg = "Website is " + msg + "  " + url;

  sheet.getRange(row,1).setValue(time);
  sheet.getRange(row,2).setValue(msg);

  // Send an email notification when the site status changes
  var email = sheet.getRange("B3").getValue();  
  MailApp.sendEmail(email, msg, url);

  var now   = new Date(time.getTime() + 10000);

  // Create an event in Google Calendar with an SMS reminder
  if (sheet.getRange("B4").getValue().toLowerCase() == "yes")
    CalendarApp.createEvent(msg, now, now).addSmsReminder(0);
}

/*
   Published by Amit Agarwal on 09/14/2012    
*/

Article original : http://www.labnol.org/internet/website-uptime-monitor/21060/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *