Projet

Général

Profil

Tâche #17426

Scénario #17425: L'agent Zéphir d'"État de démarrage du serveur" ne doit jamais être en erreur injustement

Faire en sorte que l'agent Zéphir ne soit pas en erreur si le serveur est en cours de démarrage.

Ajouté par Emmanuel GARETTE il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
07/10/2016
Echéance:
% réalisé:

100%

Temps estimé:
2.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Voir la proposition du scénario.

Révisions associées

Révision 1ddb5972 (diff)
Ajouté par Benjamin Bohard il y a plus de 7 ans

Redéfinir les statuts rapportés par l’agent zephir diagnostiquant l’état du serveur.

Ref #17426

Historique

#1 Mis à jour par Benjamin Bohard il y a plus de 7 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Benjamin Bohard
  • Restant à faire (heures) changé de 2.0 à 1.83

La sonde donnant l’état de démarrage du serveur utilise la sous-commande is-system-running de systemctl.
Cette commande renvoie normalement la réponse « degraded » si tous les services ne sont pas démarrés au moment de son exécution.

Ne faudrait-il pas regarder si c’est bien cette réponse qui est fournie lors du premier appel pour ne pas temporiser dans le cas des autres réponses également associées au status Error de la sonde.

#2 Mis à jour par Benjamin Bohard il y a plus de 7 ans

Le délai par défaut de la sonde est de 3600 secondes.

Son premier relevé se fait alors que le système est en cours de démarrage. systemctl is-system-running renvoie normalement starting qui est associé au statut d’erreur pour la sonde.
Le second relevé n’est opéré que 3600 secondes plus tard par défaut.

On peut décrire le problème comme suit :
- problème d’ordonnancement, z_stats ne devant utiliser les sondes que lorsque le système a fini sa séquence de démarrage pour ne pas renvoyer de faux négatifs prématurément ;
- problème d’intervalle d’exécution des sondes, un statut négatif restant longtemps affiché même si il ne correspond plus à l’état du serveur ;
- problème de correspondance entre le statut rapporté par la sonde et l’état du serveur, le statut Error étant peut-être utilisé dans trop de cas.

#3 Mis à jour par Benjamin Bohard il y a plus de 7 ans

  • Restant à faire (heures) changé de 1.83 à 1.0

La solution qui me semble la plus logique consiste à associer un statut différent de Error quand systemctl is-system-running renvoie starting, éventuellement en regardant depuis combien de temps le système est dans la phase de démarrage. Ceci pour éviter d’avoir une dépendance du comportement à la valeur de l’intervalle de mesure (comme ce serait le cas avec l’ajout d’un fichier dont la présence lors de la seconde mesure détermine le comportement de la sonde).

#4 Mis à jour par Benjamin Bohard il y a plus de 7 ans

  • Restant à faire (heures) changé de 1.0 à 0.17

Il semble que toute tentative d’effectuer un traitement pour calculer le temps depuis le début de la séquence de démarrage rallonge suffisamment le temps nécessaire à la mesure par la sonde pour que le serveur atteigne l’état running.

#5 Mis à jour par Benjamin Bohard il y a plus de 7 ans

  • % réalisé changé de 0 à 90
  • Restant à faire (heures) changé de 0.17 à 0.3

Deux statuts retenus pour un serveur en cours de démarrage selon le temps écoulé depuis le début de la séquence de boot.

Le seuil de temps reste à spécifier (constante déclarée dans le code de l’agent et non paramétrable).

#6 Mis à jour par Scrum Master il y a plus de 7 ans

  • Statut changé de En cours à Résolu

#7 Mis à jour par Benjamin Bohard il y a plus de 7 ans

  • % réalisé changé de 90 à 100
  • Restant à faire (heures) changé de 0.3 à 0.25

Délai de boot « raisonnable » fixé à 6 minutes.

#8 Mis à jour par Joël Cuissinat il y a plus de 7 ans

Pas de problème particulier constaté.

#9 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) changé de 0.25 à 0.0

Formats disponibles : Atom PDF