Surveiller des sites automatiquement (http 200) avec Google Sheets et un script

Nous allons voir comment lire le statut HTTP d’un site internet avec Google Sheets et envoyer un email automatique en cas d’anomalie.

J’ai rencontré des soucis (non résolus 10 jours après mon premier signalement…) avec mon hébergement Plesk. Il arrive que la base de données de l’hébergement soit en panne et on n’a aucun moyen de le savoir sans essayer d’accéder à l’un des sites de l’hébergement. Les systèmes habituels de vérification par « ping » ne donne pas satisfaction car les sites répondent à un ping mais sont inaccessible depuis un navigateur (le code HTTP n’est pas 200). Comme mon fournisseur d’hébergement se montre incapable d’accepter qu’il y a un problème ou au moins de générer une alerte automatique en cas de panne de la base de données, j’ai décidé de créer un système d’alerte automatique.

Obtenir le code HTTP de réponse d’un site avec Google Sheets

Je me suis inspirée de cet article : How to Pull an HTTP Response Code in Google Sheet.

J’ai créé un fichier Google Sheets dans lequel j’ai placé le tableau suivant :

site url statut
parcours-P parcours-performance.com =VALUE(HTTPResponse(B3))
knowledge PP knowledge.parcours-performance.com =VALUE(HTTPResponse(B4))

Ce qui donne ce qui suit dans Google Sheets :

Google Sheets : surveiller le code httpde sites
Google Sheets : surveiller le code httpde sites

 

Avec l’éditeur de scripts (menu « Outils »), j’ai créé la fonction  HTTPResponse .

J’ai ensuite cliqué sur « enregistrer ».

Lorsque je retourne dans ma feuille de calcul, si les sites fonctionnent, je vois « 200 » dans la troisième colonne de mon tableau, celle qui contient =VALUE(HTTPResponse(Bx)) .

Régler la fréquence de vérification

Je veux vérifier au moins toutes les heures que les sites sont opérationnels.

Dans l’éditeur de scripts, je sélectionne (A) la fonction  HTTPResponse puis je clique sur le bouton « déclencheur du projet actuel » (B). Ensuite, je régle le déclenhement pour que le script s’exécute à chaque heure :

Régler le déclencheur d'un script Google Sheets
Régler le déclencheur d’un script Google Sheets
Déclencher un script Google Sheets toutes les heures
Déclencher un script Google Sheets toutes les heures

Générer un mail automatique en cas d’anomalie avec Google Sheets

Pour cette partie, je me suis beaucoup inspirée de « Automating Google Spreadsheets – Email Reminders« .

Dans l’éditeur de script, j’ai placé la fonction checkStatut() :

Cette fonction identifie le bon onglet (0) de la feuille de calcul puis lit toutes les données de statut. Lorsqu’un statut n’est pas égal à 200 (OK), la fonction lit le nom du site correspondant. La fonction crée un message (msg) avec tous les dysfonctionnements puis, s’il y a des alertes, m’envoie un mail pour m’en informer.

Le déclencheur de la fonction est un changement dans la feuille de calcul (lorsque   HTTPResponse se déclenche et indique une réponse différente de ce qui précédait) :

Déclencher un script Google Sheets lorsque la feuille change
Déclencher un script Google Sheets lorsque la feuille change

 

J’ai vérifié que ça fonctionne en placant « 404 » dans l’une des cellules de statut et je reçois bien un mail d’alerte.

Et maintenant

Je suis en train de regarder comment changer d’hébergeur mais je dispose maintenant d’un système d’alerte des anomalies. Si je reçois un mail, je me connecte à mon interface client et je redémarre le VPS. En quelques minutes tous mes sites fonctionnent de nouveau.

4 commentaires


  1. Moi j’utilise ce site : https://uptimerobot.com
    C’est gratuit en plus 😉

    Il surveille des sites en http ou https
    On peut faire surveiller des port spécifique aussi…

    et ça envois un mail quand c’est down 🙂

    Répondre

  2. Bonjour et merci pour ce système très intéressant mais j’ai une question : est-ce qu’une fois la page de Google Sheets fermée le script continue de surveiller les sites ?

    Répondre

    1. Bonjour Sylvain,

      Merci pour ce commentaire. La surveillance n’a malheureusement jamais très bien fonctionné lorsque la page google sheets est fermée.
      Je crois que la solution présentée dans cet article n’est pas très efficace ! Depuis j’ai changé d’hébergeur et mon système est beaucoup plus stable.
      Je n’ai pas eu besoin de trouver une autre solution. Mais si vous en trouvez une, dites nous.
      Anne-Laure

      Répondre

Laisser un commentaire

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