Chapitre 1512 minIntermédiaire
Épreuve blanche n° 2 : être alerté quand l'intranet tombe
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- t'entraîner sur une deuxième épreuve E6 SISR ;
- mettre en place une alerte de supervision ;
- réussir la recette et l'entretien d'explicitation.
4 exercices corrigés
Cette seconde épreuve blanche est une E6 SISR complète sur la réalisation 2 de Ravelle Conseil (l'intranet en haute disponibilité, supervisé et sauvegardé). Elle entraîne la compétence « Exploiter, dépanner et superviser » : passer d'une supervision des serveurs à une supervision du service vu par l'utilisateur, avec des alertes testées et une procédure d'astreinte.
Les conditions
Les mêmes qu'à l'épreuve blanche n° 1 : 30 minutes de préparation, 20 minutes d'entretien, 1 heure de réalisation, 20 minutes de recette. Ouvre chaque réponse après la phase correspondante.
Le contexte
L'infrastructure est décrite au chapitre 4. L'essentiel pour cette épreuve :
- l'intranet
https://intranet.ravelle.lanpointe vers SRV-LB (10.10.20.30), qui répartit la charge entre WEB1 (.31) et WEB2 (.32) avec HAProxy ; la page d'accueil contient le titre « Intranet Ravelle » ; - Zabbix 7.0 tourne sur ZABBIX (10.10.30.20), dans le VLAN d'administration ; il supervise WEB1, WEB2 et SRV-LB avec le modèle
Linux by Zabbix agent; - le type de média Email est configuré avec le relais SMTP du laboratoire ; le groupe d'utilisateurs « Service informatique » reçoit les alertes ;
- le pare-feu autorise le VLAN 30 vers le VLAN 20 sur le port 10050 (agents Zabbix), en SSH, et en DNS (TCP/UDP 53) vers les contrôleurs de domaine SRV-AD1 et SRV-AD2 (10.10.20.10 et .11).
L'expression des besoins
| Rubrique | Contenu |
|---|---|
| Réalisation retenue | N° 2 : publier l'intranet en haute disponibilité, le superviser et le sauvegarder |
| Circonstances | Mardi dernier, l'intranet est resté inaccessible de 9 h 10 à 11 h 05. Le service informatique l'a appris par les appels des collaborateurs. Les disques de WEB1 et WEB2 étaient pleins, HAProxy n'avait plus de serveur disponible. Zabbix affichait pourtant les trois serveurs « disponibles » : il vérifiait les agents, pas le service rendu aux utilisateurs. |
| Spécifications fonctionnelles | 1. Le service informatique est alerté par courriel en moins de 5 minutes quand l'intranet ne répond plus aux utilisateurs à l'adresse https://intranet.ravelle.lan. 2. Il est alerté avant que le disque système d'un serveur web soit plein, dès 85 % d'occupation. 3. Un courriel signale le retour à la normale. 4. Le technicien d'astreinte sait quoi faire quand il reçoit l'alerte « intranet ». |
| Documents fournis | Schéma du siège, liste des hôtes supervisés |
| Production attendue | Supervision configurée, alertes déclenchées et reçues lors d'un test |
| Documentation à présenter | Documentation technique (procédure d'astreinte) et rapport de test |
Phase 1
Exercice 1 sur 4 Phase 1 : ta préparation en 30 minutes Réussi À revoir
Rédige la reformulation, les implicites et les hypothèses, les spécifications techniques, la démarche et le cahier de recette.
Voir la réponseMasquer la réponse de l'exercice 1
Reformulation. « Superviser l'intranet comme le voit un utilisateur, pas seulement les serveurs ; alerter par courriel en moins de 5 minutes en cas d'indisponibilité, dès 85 % de disque sur les serveurs web, et au retour à la normale ; fournir une procédure à l'astreinte. »
Implicites et hypothèses.
- Le test doit passer par le chemin des utilisateurs : nom DNS, HAProxy, HTTPS. Un processus HAProxy actif ne prouve rien : sans serveur disponible, il répond une erreur 503.
- Une page d'erreur peut répondre 200 : je vérifie aussi un texte de la page (« Intranet Ravelle »).
- Flux : ZABBIX, dans le VLAN 30, doit joindre 10.10.20.30 en TCP 443. Les règles actuelles autorisent le 10050, le SSH et le DNS vers les contrôleurs de domaine (TCP/UDP 53, nécessaire à tout le VLAN d'administration) ; il manque le 443 : une règle à ajouter sur l'interface du VLAN 30.
- Résolution : ZABBIX doit résoudre
intranet.ravelle.lan, donc utiliser les DNS de l'annuaire ; le flux DNS est déjà ouvert, je le vérifie quand même avant de configurer le scénario. - Certificat : émis par l'autorité interne. Le scénario web de Zabbix ne vérifie pas le certificat par défaut ; je le laisse ainsi et je le dis.
- Ambiguïté à signaler : le contrat de service couvre 8 h à 19 h. « Faut-il alerter la nuit ? Je propose d'alerter à toute heure pour l'intranet ; si l'astreinte ne couvre que les heures ouvrées, on limite la période active du média de l'utilisateur. »
- « En moins de 5 minutes » : un test chaque minute donne une détection en 1 à 2 minutes, et laisse de la marge pour la livraison du courriel.
Spécifications techniques.
| Élément | Valeur |
|---|---|
| Pare-feu | Interface VLAN 30 : autoriser TCP de 10.10.30.20 vers 10.10.20.30 port 443 |
| Hôte Zabbix | Intranet, groupe Services web, sans interface (le test part du serveur Zabbix) |
| Scénario web | Intranet, intervalle 1 minute ; étape « Accueil » : URL https://intranet.ravelle.lan/, code attendu 200, texte requis « Intranet Ravelle », délai 15 secondes |
| Déclencheur | « Intranet injoignable pour les utilisateurs », gravité High, last(/Intranet/web.test.fail[Intranet])<>0 |
| Disque | Macro {$VFS.FS.PUSED.MAX.WARN:"/"} = 85 sur WEB1 et WEB2 |
| Action | Conditions : groupes Serveurs web ou Services web, gravité au moins Warning ; opérations et opérations de rétablissement : courriel au groupe « Service informatique » |
Démarche. Instantané de ZABBIX ; règle de pare-feu et test curl -skI https://intranet.ravelle.lan/ depuis ZABBIX ; hôte et scénario ; déclencheur ; macros ; action ; tests de déclenchement ; procédure d'astreinte ; rapport de test.
Cahier de recette.
| N° | Test | Résultat attendu |
|---|---|---|
| T1 | Scénario en fonctionnement normal | Dernière valeur de web.test.fail[Intranet] à 0, temps de réponse visible |
| T2 | systemctl stop haproxy sur SRV-LB | Problème « Intranet injoignable » en moins de 2 minutes, courriel reçu en moins de 5 |
| T3 | systemctl start haproxy | Problème résolu, courriel de rétablissement |
| T4 | fallocate sur WEB1 jusqu'à dépasser 85 % | Problème disque sur WEB1, courriel reçu |
| T5 | Suppression du fichier | Problème résolu, courriel de rétablissement |
| T6 | Arrêt de WEB1 seul | Pas d'alerte « intranet » : WEB2 assure le service (alerte de disponibilité de WEB1 seulement) |
Tu avais trouvé ?
Exercice 2 sur 4 Entretien 1 : les questions de la commission Réussi À revoir
- « Pourquoi ne pas simplement surveiller le processus HAProxy ? »
- « Le serveur Zabbix est dans le VLAN d'administration. Que devez-vous ouvrir, et pourquoi pas plus ? »
- « Un seuil à 85 %, c'est pertinent sur tous les disques ? »
- « Qui surveille Zabbix ? »
Voir la réponseMasquer la réponse de l'exercice 2
- « Parce que l'incident de mardi l'aurait raté : HAProxy tournait, mais sans serveur disponible il répondait une erreur 503. Le scénario web teste ce que voit l'utilisateur : le nom, le répartiteur, le certificat, un serveur web, le contenu de la page. »
- « Une seule règle : de 10.10.30.20 vers 10.10.20.30, TCP 443. Le serveur de supervision n'a pas besoin d'atteindre tout le VLAN serveurs sur tous les ports. Si Zabbix était compromis, chaque flux ouvert serait une porte de plus. »
- « Non. Sur un disque de 20 Go, 15 % libres font 3 Go ; sur un disque de 2 To, 300 Go. Pour les serveurs web de 20 Go, 85 % laisse le temps d'agir, d'après la vitesse de remplissage observée lors de l'incident. Sur les gros volumes, je combinerais un seuil en espace libre absolu ou une prévision de remplissage. »
- « Personne aujourd'hui, et c'est une limite : si ZABBIX tombe, plus aucune alerte. Je proposerais un contrôle externe minimal, par exemple une tâche planifiée sur SRV-BAK qui vérifie que l'interface de Zabbix répond et envoie un courriel sinon. Je le note dans les perspectives, ce n'est pas dans la demande. »
Tu avais trouvé ?
Phase 2
Exercice 3 sur 4 Phase 2 : réalise en une heure Réussi À revoir
Configure la supervision, provoque les alertes, rédige la procédure d'astreinte et le rapport de test.
Voir la réponseMasquer la réponse de l'exercice 3
La réalisation, étape par étape.
- Instantané de ZABBIX. Sur pfSense, interface du VLAN 30 : règle « autoriser TCP 10.10.30.20 vers 10.10.20.30 port 443 », placée avant les blocages. Depuis ZABBIX :
getent hosts intranet.ravelle.lanrenvoie 10.10.20.30, puiscurl -skI https://intranet.ravelle.lan/renvoieHTTP/1.1 200 OK. - Data collection > Hosts > Create host :
Intranet, groupeServices web, aucune interface. - Sur cet hôte, onglet Web puis Create web scenario : nom
Intranet, intervalle1m. Onglet Steps : étapeAccueil, URLhttps://intranet.ravelle.lan/, Required stringIntranet Ravelle, Required status codes200, Timeout15s. - Sur l'hôte
Intranet, Triggers > Create trigger : nom « Intranet injoignable pour les utilisateurs », gravité High, expressionlast(/Intranet/web.test.fail[Intranet])<>0. - Sur WEB1 et WEB2, onglet Macros :
{$VFS.FS.PUSED.MAX.WARN:"/"}=85. - Alerts > Actions > Trigger actions : l'action existante du service informatique reçoit la condition « groupe d'hôtes =
Services web» (en plus deServeurs web) et une gravité minimale Warning ; dans Recovery operations, « notifier toutes les personnes impliquées ». - Tests T1 à T6, avec l'heure de chaque événement notée dans le journal.
- Documentation, puis rapport de test.
La procédure d'astreinte (extrait de la documentation technique) : alerte « Intranet injoignable pour les utilisateurs ».
- Ouvre Zabbix (
https://zabbix.ravelle.lan) depuis le poste d'administration : Monitoring > Problems. D'autres problèmes en même temps (disque, serveur indisponible) ? - Sur SRV-LB :
systemctl status haproxy, puisecho "show servers state" | socat stdio /run/haproxy/admin.sock. Combien de serveurs web sont disponibles ? - Sur chaque serveur web indisponible :
df -h /,systemctl status nginx,journalctl -u nginx --since "-1h". - Disque plein :
journalctl --vacuum-size=200Met suppression des anciens journaux Nginx compressés ; puissystemctl restart nginx. - Vérifie que l'alerte passe en « résolu » et que l'intranet répond depuis un poste du VLAN 10.
- Non résolu en 30 minutes : appelle le responsable informatique. Plus de 15 minutes d'indisponibilité : préviens les utilisateurs par la liste de diffusion.
- Ouvre un ticket d'incident dans GLPI avec l'heure de détection, les actions et l'heure de retour à la normale.
Le rapport de test.
| N° | Test | Attendu | Obtenu | Statut |
|---|---|---|---|---|
| T1 | Fonctionnement normal | web.test.fail à 0 | 0, temps de réponse 85 ms | Conforme |
| T2 | Arrêt de HAProxy à 14 h 02 | Problème en moins de 2 min, courriel en moins de 5 | Problème à 14 h 03, courriel reçu à 14 h 03 | Conforme |
| T3 | Redémarrage à 14 h 06 | Courriel de rétablissement | Problème résolu à 14 h 07, courriel reçu | Conforme |
| T4 | Disque de WEB1 à 87 % | Problème disque, courriel | Problème « Linux: FS [/]: Space is low » (gravité Warning), courriel reçu | Conforme |
| T5 | Fichier supprimé | Rétablissement | Résolu, courriel reçu | Conforme |
| T6 | Arrêt de WEB1 seul | Pas d'alerte intranet | Alerte de disponibilité de WEB1 seulement, intranet servi par WEB2 | Conforme |
Tu avais trouvé ?
Recette et entretien 2
Exercice 4 sur 4 Recette : mène-la et réponds Réussi À revoir
Mène la recette en 6 minutes, puis réponds aux questions.
- « Faites tomber l'intranet devant nous. »
- « L'alerte arrive à 3 h du matin. Est-ce voulu ? »
- « Vous avez corrigé l'alerte. Comment empêchez-vous que les disques se remplissent à nouveau ? »
- « Votre scénario ne vérifie pas le certificat. N'est-ce pas un risque ? »
Voir la réponseMasquer la réponse de l'exercice 4
Le déroulé de la recette. Rappel du besoin. T1 à l'écran (Monitoring > Web, le scénario au vert). T2 et T3 en direct : arrêt de HAProxy, apparition du problème, courriel dans la boîte du service, redémarrage, courriel de rétablissement. T4 et T5 montrés par leurs captures si le temps manque. Puis la procédure d'astreinte et le rapport de test.
- Arrête HAProxy sur SRV-LB et commente pendant l'attente : « Le scénario s'exécute chaque minute ; le prochain passage échouera, le déclencheur passera en problème et l'action enverra le courriel. » Montre le problème, puis le courriel avec son heure.
- « C'est le choix que j'ai proposé en phase 1 : l'intranet est critique, et l'alerte la nuit permet d'agir avant 8 h. Si le cabinet n'a pas d'astreinte la nuit, je limite la période d'activité du média courriel de l'utilisateur, par exemple
1-5,08:00-19:00, et l'alerte de la nuit sera vue au matin dans Zabbix. C'est une décision du responsable, pas la mienne. » - « La supervision détecte, elle ne prévient pas la cause. La cause de mardi était la rotation des journaux de Nginx : je vérifie
/etc/logrotate.d/nginx(rotation quotidienne, 14 fichiers gardés, compression) et je teste aveclogrotate -d /etc/logrotate.d/nginx. C'est le passage de l'incident au problème. » - « Le risque est faible ici : Zabbix et l'intranet sont dans le même réseau interne, et un certificat expiré ferait de toute façon échouer l'accès des utilisateurs. Mais un certificat qui expire est une panne annoncée : j'ajouterais une alerte sur la date d'expiration du certificat, 30 jours avant, avec l'élément de Zabbix agent 2 qui lit le certificat d'un site web. »
Tu avais trouvé ?