Ceci est une ancienne révision du document !
~~CLOSETOC~~
Surveillance automatique des sites webs
Pour un projet j'ai dû mettre une supervision sur les sites web de mon entreprise. Lorsqu'il n'y a qu'un serveur web avec un seul site, c'est pas très compliqué. Mais quand l'entreprise gère plusieurs dizaines de serveurs hébergeant chacun plusieurs dizaines de sites, ça peut rapidement devenir compliquer.
Une automatisation de cette mise en supervision peut alors s'avérer utile :
- La liste des sites à surveiller est créer automatiquement, pas de risque d'en oublier un.
- Les nouveaux serveurs Apache sont alors détecté et une alerte nous indique d'y ajouter les scripts nécessaires au besoin
Principe
Sur le serveur Apache
- Un cron exécute le script d'inventaire à 5h00.
- Le script d'inventaire crée 2 fichiers de réponse :
- Le premier contient la date d'exécution et la différence entre le nombre de sites actifs et le nombre de sites disponibles dans la configuration Apache (exception faîte des configurations par défaut et celle contenant ble terme
maintenance). - Le second contient la liste des sites actifs.
- Une fois les fichiers créés, le script les upload sur le dépôt distant (j'ai utilisé un dépôt NextCloud).
Sur le serveur Nagios
- Un cron exécute le script général à 10h00.
- Le script général crée une liste de tous les serveurs qui ont une surveillance sur le service Apache.
- Pour chaque serveur de cette liste, il récupère les fichiers de réponse qui se trouve sur le dépôt externe.
- Si les fichiers sont manquant, le serveur en question est ajouté à la liste des serveurs en erreur et le script passe au serveur suivant. Cette erreur est due soit à une erreur de réseau soit à l'absence du script d'inventaire.
- Si la date est obsolète, idem. Là, c'est soit un problème réseau, soit une erreur de cron.
- Si des différences sont notés, le serveur est ajouté à la liste des serveurs ayant des sites inactifs puis continue le traitement.
- Le script gère alors les sites déclarés pour chaque serveurs :
- Pour chaque site, il vérifie si le site est supervisé sinon il ajoute la supervision.
- Si l'ajout réussi, il ajoute le site à la liste des sites supervisés et à celle des sites nouvellement ajoutés.
- Si l'ajout rate, il ajoute le site à la liste des sites en erreur.
- Si le site est déjà supervisé, il ajoute le site à la liste des sites supervisés.
- Une fois tous les serveurs et sites traités, le script nettoie les surveillances obsolètes (celles pour les sites qui ont été supprimés).
- Il fait la liste de tous les sites déclarés dans Nagios et la compare avec la liste des sites supervisés qu'il a créé durant soin exécution.
- Il supprime alors les surveillances inutiles et ajoute les sites correspondants à la liste des sites supprimés
- Avec toutes les listes créées, un génère un rapport HTML qu'il envoie au contact paramétré.
L'ensemble des actions du script sont envoyé dans un fichier log.
— Nicolas THOREZ 2020/02/12 12:13

Discussion