# Monitoring de site web

Le monitoring de site web ou surveillance de site web consiste en une vérification de la disponibilité et de la navigabilité d'un site web. L'intérêt étant de connaître les conditions d'accès et de navigation des internautes, le monitoring est le plus souvent externe, soit réalisé au moyen de points de contrôles (ou sondes) disséminés dans le monde.
À ne pas confondre avec la supervision de serveur (ou monitoring serveur), qui va permettre de surveiller les composants propres de la machine et le fonctionnement des applicatifs qu'elle héberge.
La fréquence de vérification est variable (typiquement de 60 min à 1 min) et dépend du caractère critique du site ou service surveillé.
Lorsqu'une erreur est détectée (indisponibilité, temps de chargement trop élevé, non-résolution de nom de domaine, etc.), une contre-mesure est effectuée par un ou plusieurs autres points de contrôle. Si l'erreur est confirmée, une alerte est alors envoyée au responsable du site (SMS, courriel, messagerie instantanée). Les seuils d'erreurs et d'alertes sont le plus souvent personnalisables par le client.
L'ensemble des données collectées lors de chaque vérification sert à établir des rapports de tests, lesquels présentent ainsi de précieuses données statistiques, fréquemment utilisées pour optimiser la structure d'un site. Ces rapports sont émis selon des fréquences variables : horaire, quotidienne, hebdomadaire, mensuelle et/ou annuelle. Le taux de disponibilité y est également indiqué.
| S'il est disponible à… | Sur une année, il est indisponible pendant… |
| 90 % | 876 heures, soit ~ 1 mois et 6 jours |
| 95 % | 438 heures, soit ~ 18 jours |
| 99 % | 87 h 36 min, soit ~ 3,6 jours |
| 99,9 % | 8 h 45 min 36 s |
| 99,99 % | 52 min 33,6 s |
| 99,999 % | 5 min 15,36 s |

## Différences entre le monitoring interne et externe
### Monitoring interne

Il sert à vérifier le bon fonctionnement des serveurs et services présents sur l'intranet de l'entreprise et ce, depuis l'entreprise. Il peut être complémentaire du monitoring externe mais ne peut suffire à mesurer la disponibilité d'un site web du point de vue d'Internet.
Le plus souvent, le monitoring interne est réalisé par le biais d'un logiciel installé sur un serveur de l'entreprise. (exemple : Uptrends)

### Monitoring externe

Il sert à vérifier le bon fonctionnement des serveurs et services de l'entreprise accessibles aux internautes, depuis Internet. La vérification est réalisée au moyen de multiples sondes réparties dans des zones géographiques différentes.
Le monitoring externe peut être sous-traité à des entreprises disposant des infrastructures et du savoir-faire nécessaires. (exemple : Doyoucheck, Uptrends, Insping, 2Be-FFICIENT, NETvigie, Witbe, ip-label, Pingdom, Evertest...).

## Différents types de monitoring externe

Il existe deux types de monitoring externe : le traditionnel et le scénarisé.
Le premier consiste en une simple requête d'URL (accompagnée le cas échéant d'une vérification d'intégrité de contenu et de mesures de réactivité). Le second consiste en une véritable navigation sur le site, visant à simuler la visite d'un internaute. Lorsque cette visite a pour objet de vérifier le bon fonctionnement d'un processus d'achat, on parle de monitoring transactionnel.

## Différents protocoles objets « monitorables »

Tous les protocoles sont monitorables toutefois certains protocoles sont plus surveillés que d'autres en raison de leur forte utilisation ou la simplicité de la mise en œuvre.
Le protocole ping est très souvent monitoré par les fournisseurs de serveur dédié. L'absence de réponse étant souvent interprété comme un possible problème matériel, propriété de l'hébergeur.
Des services gratuits ou payants sont assez souvent proposés pour les protocoles applicatifs les plus courants (HTTP, FTP, POP, SMTP, DNS, etc.).
Pour les protocoles non standards comme les serveurs de jeux il faut programmer soi même le système de vérification et l'héberger sur un serveur suffisamment distant du serveur de production pour être significatif.

## Technologies utilisées

En général, des scénarios sont utilisés pour simuler des comportements complexes des internautes, permettant de valider la chaine applicative (web service → application service → base de données) sur laquelle repose le site web.
L'outil de monitoring appellera ensuite via les méthodes GET ou POST la(les) page(s) web pour valider le bon fonctionnement du site web.
Outre la vérification du code de retour HTTP (exemple: code 200) pour valider le bon fonctionnement de la page web, les outils de monitoring évolués vont également vérifier le contenu du site web. Par exemple, une partie de la page web provient de la base de données, il suffit de prendre un mot précis du code source et de valider que ce mot est bien présent dans la page pour valider le bon fonctionnement de cette page. De même, l'utilisation de scénarios bien précis retourneront par exemple "OK", ainsi l'outil de surveillance vérifiera la simple présence de cette chaine de caractère pour valider le bon fonctionnement du scénario.
Un site web complexe sera surveillé au travers de plusieurs pages web scénarisées (vérification de la connectivité entre le webserver et la base de données, vérification de tel ou tel webservice, etc).
Des outils spécialisés sont disponibles sur internet: Nagios, Xymon, ZenOSS, etc.

## Points clés de la surveillance

Pour surveiller les points sensibles d'un site web, on peut surveiller en particulier :
* La page d’accueil : c'est la vitrine de l'entreprise et elle fait partie intégrante de sa communication.
* Une page accédant à des ressources externes (base de données, serveur d’application, etc.), qui permet de tester leur bon fonctionnement (par exemple, "monitorer" une « page produit » générée à partir d’une base de données permet de valider le fonctionnement d'un serveur web mais aussi d'une base de données.)
* Les formulaires : de réservation, de contact, de login, de recherches, etc.
* Les services de messagerie : environ 70 % du courrier en entreprise passe aujourd’hui par le courriel, il est donc utile de surveiller les serveurs de messagerie POP/IMAP et/ou SMTP.
* Le serveur de transfert de fichier « FTP ».
* Les routeurs, firewalls, serveurs hétérogènes, webcams, grâce au protocole « ping » qui enverra une requête au serveur afin de vérifier son état (pas de connexions, pertes de paquets, etc.).
* Le serveur DNS : en vérifiant le résultat d’un « query DNS ».
* Pour surveiller toutes les autres applications connectées à l’Internet, on peut utiliser le protocole « TCP ».
* Les rapports de monitoring communiqués par les différentes entreprise spécialisées. En pratique, analyser les statistiques pour comprendre la source d’erreur ou de lenteur afin d’optimiser les services. Il n’y a pas de solution miracle : il faudra analyser les pannes au cas par cas.
* L'intégrité du contenu d'un site : en vérifiant la présence d'un ou plusieurs mots clés. La seule vérification de la disponibilité du site ne garantit pas que son contenu est exact.
* Par ailleurs, la possibilité est souvent offerte par de suspendre le monitoring pendant des plages horaires, telles que celles correspondant aux périodes de sauvegarde ou de mise à jour du site, afin de ne pas fausser les statistiques de disponibilité.
* Pour une page web, le monitoring pourra charger uniquement le corps de page HTML, ou bien charger la totalité de la page (images, scripts, objets flash etc.), ce qui est une simulation meilleure de la perception de l'internaute, mais plus coûteuse en ressources.

## Tarifs

Les prix sont très variables en fonction du prestataire et de la sophistication de la surveillance proposée (analyse de contenu, navigation scénarisée, fréquence de surveillance, etc). Le tarif par URL oscille de gratuit à plusieurs milliers par mois. Le choix d'une solution en mode service hébergé permettra de réduire les coûts à l'usage réel et éventuellement de s'appuyer sur un prestataire externe (l'éditeur du service ou bien un prestataire tiers). Le choix d'une solution en mode licence entrainera un coût d'acquisition plus élevé mais pourra permettre de capitaliser sur les compétences internes en offrant un détail technique plus poussé. Dans certains cas, le monitoring basique peut être gratuit et certains prestataires proposent des comptes d'évaluation.