Qui, que, quoi superviser sur son site web ?
Après avoir vu pourquoi il était important « ou pas » de superviser, il est naturel de continuer par la question suivante quoi superviser sur son site web, dans quel domaine ?
Qu’il soit de type e-commerce, de type éditorial, présentation d’entreprise, et en ne regardant que l’aspect technique des choses, il est possible de lister un certain nombre d’éléments nécessaires à la mise à disposition d’un site sur la toile. En tentant d’être le plus simple possible, il est possible de résumer un site web comme tout traitement informatique à des besoins de calcul, de réseau, de mémoire et de fichiers. Voilà des premières pistes d’éléments à surveiller.
Ce site web a besoin d’un serveur web (IIS, Apache, Nginx…), d’une bases de données (MySQL, PostgreSQL, MariaDB…), d’un ensemble de fichiers (CSS, Javascript, HTML, images…) et d’un langage (PHP, Python, Ruby, Javascript…) pour produire les pages dynamiquement. Ce pourrait être un blog Wordpress, un site de e-commerce Magento, un wiki de type Mediawiki… pour n’en citer qu’un de chaque genre ! Voilà en tous les cas d’autres pistes à surveiller.
Si vous avez lu le précédent article, vous aurez peut-être retenu qu’il faut tout superviser ! tentons alors d’être exhaustif, au moins au niveau technique, sur les éléments à superviser pour un site web.
Supervision technique
À l’instar du modèle OSI des réseaux en couches, la supervision technique peut être organisée en couches successives pour arriver au plus haut niveau fonctionnel, à savoir l’application, le service à surveiller.
- Application comme un blog Wordpress par exemple.
- Bases de données comme MySQL, PostgreSQL, MongoDB.
- Serveur d’application comme Apache + PHP5.
- Système comme Debian ou CentOS.
- Réseau
- Matériel comme IBM, Dell, HP…
- Environnement
Chaque couche a besoin que la couche sous-jacente soit fonctionnelle. Si la couche 1 est fonctionnelle, alors toutes les couches 2 à 7 sont fonctionnelles.
Pour chaque couche, vous pouvez avoir des indicateurs de consommation, de capacité, de disponibilité, de qualité, de quantité, de performance…
Environnement
C’est parce que les ordinateurs ne fonctionnent toujours pas correctement dans n’importe quelles conditions de température ou d’humidité qu’il convient de surveiller celles-ci dans la salle où est opéré le ou les serveurs. C’est particulièrement important quand vous savez que les conditions d’hébergement salle de vos serveurs ne sont pas optimales.
Vous pouvez aussi avoir envie de surveiller la consommation électrique de vos serveurs pour pouvoir mettre en parallèle avec la facture d’électricité.
Matériel
Même le virtuel finit tôt ou tard sur du matériel, et dans ce contexte; celui-ci prend de plus en plus d’importance finalement. Un serveur physique qui tombe en panne et c’est de 10 à 100 serveurs virtuels ou plus qui sont impactés.
IPMI est le standard de facto pour la supervision du matériel et est présent sous différentes appelations commerciales chez les principaux constructeurs de serveurs matériel.
Vous pouvez très bien surveiller la vitesse de fonctionnement des ventilateurs, l’état des CPU, des cartes réseaux, des disques durs, des barettes mémoire…
Réseau
L’ensemble des données envoyées et reçues par l’ensemble des cartes réseaux reliés au serveur.
Pour chacune des cartes réseaux, cela peut donner:
- Nombre d’octets transmis/reçus/erreurs.
- Quantité de données transmises/reçues/erreurs.
- Répartition par protocole/carte/ip-source-distante.
Certains outils de supervision vont jusqu’à l’analyse des flux réseaux afin d’en tirer des informations pour la sécurité ou l’exploitation.
Système
Le système est la première couche logicielle à surveiller dans la pile applicative.
Il est possible aussi de surveiller certains indicateurs généraux comme :
- La charge système.
- L’espace occupés/libre sur les systèmes de fichiers.
- La répartition de l’occupation mémoire.
- Nombre total de processus et nombre de zombies.
Chaque processus nécessaire à la réalisation du service proposé par l’application nécessite l’utilisation de CPU, mémoire, fichiers et éventuellement réseau.
Il est donc naturellement nécessaire de superviser ces éléments sur chacun des processus participant à la vie de l’application.
CPU
La charge de la CPU ainsi que la répartition de son utilisation.
Mémoire
Mémoire libre, mémoire pour le cache, mémoire utilisée sont quelques uns des indicateurs possibles.
Fichiers
Il est possible de contrôler l’intégrité des fichiers via checksum, les permissions, leurs chemins d’accès… Ceci peut s’avérer intéressant pour des fichiers de configuration sensibles ou pour des raisons de sécurité.
Bases de données
Quelque soit la marque et le modèle de celle-ci, vous pouvez monitorer les bases de données que vous utilisez. Temps d’exécution des requêtes, utilisation/efficacité du cache, journaliser les requêtes lentes sont des indicateurs qui peuvent aider en toutes situations.
Applicatif
Pour chaque applicatif, vous pouvez reprendre la logique précédente et superviser pour la partie spécifique à l’application :
- Réseau
- Processus
- Mémoire
- Fichiers
Mais vous pouvez aussi soritr des indicateurs plus intrinsèques à votre application. Par exemple, le nombre de connectés, le nombre de transactions sur une API…
Hyperviseur
C’est la supervision de la couche qui vous permet de supporter sur un serveur physique l’utilisation de machines virtuelles, quelque soit la technologie utilisée (VMware, Xen, KVM, LXC…)
Cette couche est d’autant plus importante qu’elle permet en général de pouvoir récupérer les infos systèmes des serveurs virtuels tournant au dessus de l’hyperviseur. C’est le cas avec VMWare ou Libvirt par exemple.
Contraintes et choix
Vous pouvez très bien ne pas superviser l’ensemble des points indiqués ci-dessus, par choix ou par contraintes. Si vous êtes sur un serveur virtuel, il est par exemple impossible de faire un supervision matériel de celui-ci car vous n’avez pas accès à la couche physique du serveur. Vous avez pourtant besoin de cette couche physique. Veillez à choisir alors un hébergeur qui vous donne des indications sur les couches sous-jacentes à votre serveur virtuel.
Surveillez ce qui incombe de votre responsabilité directe ou indirecte.
Supervision métier, business
La technique n’est pas tout, et il est bien évidemment possible de la même façon de créer des indicateurs métiers, business, commerciaux. Un chemin qui peut vous conduire tout droit vers le syndrome Big Brother.