Aller au contenu principal

Sur la machine srv-lin-01. Lire le ticket, agir dans le terminal, puis vérifier.

Ticket 6578, ouvert par Léna Guérin : ce matin, de 7 h à 9 h, le portail des abonnés a montré une page d'erreur aux abonnés venus consulter leur facture, parce que sa base de données ne répondait plus. Le tableau de bord de la supervision est resté vert tout du long. Sa sonde, /usr/local/lib/supervision/sonde-portail, ne vérifie que l'ouverture du port du portail, et le port est resté ouvert.

Réécrire la sonde pour qu'elle fasse ce que fait un utilisateur : demander la page d'état du portail, dont la supervision lui passe l'adresse en premier argument, et vérifier qu'elle annonce BASE: CONNECTEE. Elle rend le code 0 quand le service est rendu, et 2 (critique) dans tous les autres cas, y compris quand le portail ne répond plus du tout : la supervision abandonne une sonde qui n'a pas rendu son verdict au bout de 15 secondes. Elle est lancée sous le compte supervision.

Pour l'essayer, deux pages d'état : celle de la production, http://127.0.0.1:8080/etat, montre encore la panne ; celle de la recette, http://127.0.0.1:8081/etat, un portail qui va bien.

Rappel

Le chapitre distingue la supervision technique (la machine tourne-t-elle ?) de la supervision fonctionnelle (le service est-il rendu ?), et demande une sonde par service critique qui fait ce que fait un utilisateur.

Une sonde est un petit programme que la supervision lance à intervalle régulier, et dont elle lit le code de sortie : 0 pour OK, 1 pour un avertissement, 2 pour critique (c'est la convention de Nagios, que reprennent Centreon et bien d'autres outils). La ligne de texte qu'elle affiche apparaît sur le tableau de bord.

  • Dans un script, $1 est le premier argument ; exit 2 termine avec le code 2 ; if commande; then ... fi agit selon le code d'une commande ; dans commande1 | commande2, le code est celui de la dernière commande.
  • wget -q -O - URL affiche la page, et rend un code différent de 0 quand le serveur répond par une erreur ou ne répond pas ; -T 5 abandonne après 5 secondes sans réponse.
  • grep -qF 'texte' ne montre rien, et rend 0 si le texte exact figure dans ce qu'il lit.
  • Pour écrire le fichier : sudo nano /usr/local/lib/supervision/sonde-portail, ou printf '...' | sudo tee /usr/local/lib/supervision/sonde-portail (\n passe à la ligne). La sonde doit rester exécutable : ls -l le montre (x), sudo chmod 755 le rétablit.
  • Pour l'essayer comme la supervision : sudo -u supervision /usr/local/lib/supervision/sonde-portail http://127.0.0.1:8081/etat, puis echo $? pour lire son code.

Boîte à outils

Un clic écrit la commande au curseur, sans la lancer.

Indications

Indication 2
Indication 3

Le ticket se prépare dès que la machine est prête.