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.
| Panel |
|---|
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 3 é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.
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).
| Code Block | ||
|---|---|---|
| ||
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
max_ram_percent 95
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
| Code Block | ||
|---|---|---|
| ||
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):Code Block $ 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:
Code Block $ 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
Code Block $ shinken-daemons-disable demon1 demon2 ...
Cas particulier de l'Arbiter/Synchronizer
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
