Haute disponibilité pour la supervision

La plateforme de supervision est souvent un élément très important d'un parc informatique. Il faut pouvoir avoir pleinement confiance dans cette plateforme, et en sa capacité à informer des erreurs et problèmes potentiels du périmètre de machines supervisées.

Il est donc intéressant d'avoir une architecture hautement disponible pour la supervision afin que celle ci soit fonctionnelle même lors d'un problème sur une partie du logiciel de supervision.

Shinken Entreprise permet de configurer les démons qui composent une installation de manière à obtenir une supervision hautement disponible.

Comment configurer Shinken Entreprise pour avoir une supervision hautement disponible

Le principe des spares

Chaque démon dans Shinken Entreprise peut être secondé par un démon de même type configuré en tant que Spare. Le principe des Spares permet d'assurer une haute disponibilité en assurant un service continu même lorsqu'un démon cesse de fonctionner.


On classe alors les démons dans 2 catégories: les démons maîtres et les démons Spare.


Le cycle de vie d'un Spare est le suivant:

  • Dans un fonctionnement nominal, le démon maître fonctionne correctement: il reçoit des données des autres démons et effectue son travail. Le démon Spare est présent pour pouvoir effectuer la travail du démon maître si celui ci ne peut plus assumer son rôle. Dans un cas de fonctionnement nominal comme celui ci, le démon Spare est inactif.
  • Le démon maître cesse de fonctionner pour une raison quelconque (erreur inconnue, arrêt volontaire, maintenance du serveur, ...). Il ne peut donc plus assumer son rôle. Ce dysfonctionnement est détecté par l'Arbiter qui va alors activer le démon Spare pour qu'il remplace le démon maître et puisse continuer d'assurer le service. Le démon spare agit donc exactement comme la démon maitre: il assure le même service. Ce remplacement de démons est invisible du point de vue de l'utilisateur.
  • Le démon maître est à nouveau fonctionnel (intervention suite à une erreur, fin de maintenance du serveur, ...). L'Arbiter remarque que le démon maître peut à nouveau effectuer son travail. Puisqu'il s'agit du démon maître, il va être préféré au démon Spare. L'Arbiter va donc désactiver le démon Spare et ordonner le démon maître de reprendre son travail.



Plusieurs remarques peuvent être effectuées sur le fonctionnement des spares.

  • L'exemple sur le schéma met en scène un seul démon maître et un seul démon Spare. Il peut en fait exister plusieurs démons maîtres et plusieurs démons Spares.
    Par exemple, on peut avoir 3 Schedulers maîtres et 2 Schedulers spares. Dans ce cas, lorsqu'un Scheduler maitre est en erreur, un Scheduler spare sera choisi au hasard pour assurer le rôle du Scheduler maître en erreur.
  • Un démon spare ne peut remplacer un démon maître que si ils sont de même type
    Par exemple, un Scheduler Spare ne peut pas remplacer un Poller maître en erreur, mais il pourra remplacer un Scheduler maître.
  • Un démon spare ne peut remplacer un démon maître que si les deux démons se trouvent dans le même royaume
    Un Poller spare d'un royaume "France" ne pourra pas remplacer un Poller maître d'un royaume "Allemagne". 

Procédure de configuration d'un démon Spare

L'ajout d'un démon Spare s'effectue en 4 étapes:

  • Déclarer le démon comme n'importe quel autre démon
  • Activer la propriété Spare dans le démon
  • S'assurer que le démon Poller est bien activé sur la machine du démon Spare.
  • Redémarrer Shinken afin que la nouvelle configuration soit prise en compte par les démons.


Pour illustrer la configuration d'un démon spare, on prend l'exemple d'un Poller qu'on va configurer en tant que spare.

La configuration d'un Spare, comme pour la configuration d'un démon classique, s'effectue sur la machine hébergeant le démon Arbiter. Aucune modification au niveau des fichiers de configuration n'est à effectuer sur la machine hébergeant le Poller spare.

  • La première étape est donc de déclarer le nouveau Poller dans /etc/shinken/pollers/poller-spare.cfg. Dans ce fichier, on va donc mettre le contenu suivant (copié depuis /etc/shinken/pollers/poller-master.cfg).
define poller {
    poller_name               poller-spare
    address                   adresse-poller-spare (ip ou nom dns)
    port                      7771
    use_ssl›                  0

    keep_timeout_time         1200
    min_workers               0
    processes_by_worker       256
    polling_interval          1
    #exec_stat_range          50, 100, 200, 300, 400
    max_ram_percent           95 
    #max_cpu_queue_per_cpu    4

    timeout                   3
    data_timeout              120
    max_check_attempts        3
    check_interval            60

    modules

    realm                     All
    manage_sub_realms         0
    #poller_tags              None

    passive                   0
    spare                     0

    enabled                   1
}

  • On prend soin ensuite de passer la valeur de l'option spare à 1
define poller {
    ...
    spare 1
    ...
}


  • Enfin, sur la machine hébergeant le Poller spare, il faut vérifier que le poller est bien activé. Cette vérification va se faire avec les commandes de Manipulation des démons Shinken.
    On vérifie d'abord que le démon Poller est activé (sur la machine du spare):

    $ shinken-daemons-list

    Si le Poller n'est pas activé sur la machine spare, on peut l'activer grâce à la commande shinken-daemons-enable:

    $ shinken-daemons-enable poller

    Aussi, seul les démons utilisés doivent être activés sur la machine de spare, sous peine d'avoir des comportements hasardeux en cas de mauvaise configuration. Les démons inutilisés peuvent être désactivés grâce à la commande shinken-daemons-disable:

    $ shinken-daemons-disable demon1 demon2 ...


Cas particulier de l'Arbiter/Synchronizer

Nous avons vu que dans Shinken Entreprise, l'ajout d'un démon spare n'était pas plus difficile que l'ajout de n'importe quel autre démon:

  • Déclaration du démon
  • Activation du paramètre spare
  • Activation du démon sur la machine concernée

Deux démons échappent à cette règle de configuration pour le cas des spares: l'Arbiter et le Synchronizer

En effet, ces deux démons sont spéciaux dans le sens ou ils ne peuvent pas être répliqués facilement:

  • Le Synchronizer est unique dans une installation Shinken Entreprise. Il permet de définir la configuration et contient les informations sur les éléments supervisés dans une base de données locales. Le dupliquer ou l'utiliser en tant que spare est bien plus complexe que les autres démons car il faut également répliquer la base de données de configuration.
  • L'Arbiter est le démon central de Shinken Entreprise. Il distribue la configuration à tous les autres démons et nécessite des étapes de configuration supplémentaires pour être utilisé en tant que spare.


Compte tenu de son rôle central, la configuration d'un Arbiter spare nécessite donc des étapes supplémentaires:

  • Déclaration d'un nouvel Arbiter dans la configuration
  • Activation du paramètre spare
  • Activation du démon sur la machine concernée
  • Activation du paramètre spare sur la machine hébergeant l'Arbiter spare

TODO

C'est mort pour le synchronizer.

Arbiter un peu plus chiant a configurer → a faire aussi sur la machine spare (mettre spare à 1 dans le fichier de conf), changer le hostname dans la conf sur la machine master