Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Shinken Enterprise regardent toutes les relations et créée un graphe avec. Un graphe est une partition de relations.

Illustration :

Image Removed

 Image Added

Dans cet exemple, nous avons 2 partitions:

...

Quand toutes les partitions sont créées, l'Arbiter les agrègent agrège dans N configurations si l'administrateur a défini N Schedulers actifs (sans spare).

La répartition se fait sur un critère de poids des Schedulers : plus le poids est élevé, plus il y a de packs .

 

Illustration :

Image RemovedImage Added

Envoi des configurations vers des satellites 

...

Un Scheduler peut commencer à lancer des checks une fois qu'il a reçu et chargé sa configuration sans avoir à attendre que TOUS les Schedulers soient prêts. 

...

Les délais sont volontairement très courts pour de petites installations ( Voir paramètres de configuration des Démons pour plus d'information ).

Illustration :

 

Image Removed

 Image Added

Distribution par Commande Externe 

...

L'architecture de Shinken Enterprise est très pratique quand on utilise le même type de Poller pour tous les checks. Mais il peut également être nécessaire d'avoir plusieurs types de PollerPollers, comme par exemple un GNU/Linux et un Windows.Nous avons déjà vu que tous les Pollers communiquent avec tous les Schedulers. En fait, les Pollers  peuvent être caractérisés ("tag") afin qu'ils n'exécutent que certains checks définis. 

...

Ces checks peuvent être caractérisés à 3 niveaux :

  • Hôte
  • Check
  • Commande

 

Le paramètre pour caractériser qualifier une commande, un hôte ou un check , est le "poller_tag". Si un check utilise une valeur "tagged" ou une commande "untagged", il utilise le "poller_tag" de ce couple hôte/check it takes the poller_tag of this host/check. In a "untagged" host/check, it's the command tag that is taken into account. 

 

L’existence du paramètre est déterminé dans l'ordre de cascade suivant:

 

  • On regarde d'abord sur la commande
  • Puis le check
  • Puis sur l'hote.

 

Les pollers peuvent être identifiés par plusieurs poller_tags. Si ils ont des tags, ils ne prendront que les checks qui correspondent à ce tag.
Pour avoir les checks caractérisés spécifiquement par une liste de poller_tag et ceux non défini, il faut juste rajouter explicitement le tag "None". Ceci permet d'exclure certains tags sans avoir à définir une liste exhaustiveLes Pollers peuvent être caractérisés par plusieurs "poller_tag". Si ils sont caractérisés, ils prendront uniquement les checks correspondant, excepté si la valeur du tag est "none". .

Cas d'usage

Cette fonctionnalité est très utile pour une DMZ.

Dans un 1er cas, il peut être utile d'avoir une boîte windows Windows dans un domaine avec un Poller tournant dans un compte domaine. Si ce Poller lance les requêtes WMI, il est ainsi aisé de mettre en place une supervision windows. .

Le 2ème cas de figure est assez classique : quand vous avez une DMZ, vous devez avoir un Poller dédié qui est DANS la DMZ et qui renvoie les résultats des checks à un Scheduler via le LAN. Ainsi, vous pouvez avoir des dépendances entre des hôtes en DMZ te et des hôtes en LAN, et être certains que les checks seront réalisés à l'intérieur de l'espace sécurisé grâce au Poller dédié..

 

...

Différents types

...

de Reactionners: reactionner_tag

Like for the pollers, reactionners can also have 'tags'. So you can tag your host/check or commands with 

"reactionner_tag". If a notification or an event handler uses a "tagged" or "untagged" command in a untagged host/check, it takes the reactionner_tag of this host/check. In a "untaged" host/check, it's the command tag that is taken into account.

The reactionners can be tagged with multiple reactionner_tags. If they are tagged, they will only take checks that are tagged, not the untagged ones, unless they defined the tag "None".

Like for the poller case, it's mainly useful for DMZ/LAN

 

Advanced architectures: Realms

Shinken Enterprise's architecture allows the administrator to have a unique point of administration with numerous schedulers, pollers, reactionners and brokers. Hosts are dispatched with their own checks to schedulers and the satellites (pollers/reactionners/brokers) get jobs from them. Everyone is happy.

Or almost everyone. Think about an administrator who has a distributed architecture around the world. With the current Shinken Enterprise architecture the administrator can put a couple of scheduler/poller daemons in Europe and another set in Asia, but he cannot "tag" hosts in Asia to be checked by the asian scheduler . Also trying to check an asian server with an european scheduler can be very sub-optimal, read very sloooow. The hosts are dispatched to all schedulers and satellites so the administrator cannot be sure that asian hosts will be checked by the asian monitoring servers.

In the normal Shinken Enterprise Architecture,it is useful for load balancing with high availability, for single site.

Shinken Enterprise provides a way to manage different geographic or organizational sites.

We will use a generic term for this site management, Realms.

Realms in few words

A realm is a pool of resources (scheduler, poller, reactionner and broker) that hosts or hostgroups can be attached to. A host or hostgroup can be attached to only one realm. All "dependancies" or parents of this hosts must be in the same realm. A realm can be tagged "default"' and realm untagged hosts will be put into it. In a realm, pollers, reactionners and brokers will only get jobs from schedulers of the same realm.

Realms are not poller_tags!

Make sure to undestand when to use realms and when to use poller_tags.

  • realms are used to segregate schedulers
  • poller_tags are used to segregate pollers

For some cases poller_tag functionality could also be done using Realms. The question you need to ask yourself: Is a poller_tag "enough", or do you need to fully segregate a the scheduler level and use Realms. In realms, schedulers do not communicate with schedulers from other Realms.

  • If you just need a poller in a DMZ network, use poller_tag.
  • If you need a scheduler/poller in a customer LAN, use realms.

Sub realms

...

D'une manière totalement symétrique aux pollers, les Reactionners peuvent être caractérisés avec un ou plusieurs "reactionner_tags". Leur logique est complètement identique au paramètre poller_tags, mais elle permet de distribuer les exécutions dans les reactionners plutôt que les pollers.

Ce paramètre peux être caractérisés à 3 niveaux :

  • Hôte
  • Check
  • Commande

Là encore, l’existence du paramètre est déterminé dans l'ordre de cascade suivant:

  • On regarde d'abord sur la commande
  • Puis le check
  • Puis sur l'hote.

 

Les reactionners peuvent être identifiés par plusieurs reactionner_tags. Si ils ont des tags, ils ne prendront que les commandes qui correspondent à ce tag.
Pour avoir les commandes caractérisées spécifiquement par une liste de reactionner_tag et ceux non défini, il faut juste rajouter explicitement le tag "None". Ceci permet d'exclure certains tags sans avoir à définir une liste exaustive.

Architecture avancée: les Royaumes

L'architecture de Shinken Enterprise permet à l'administrateur d'avoir un point unique de gestion pour tous les Schedulers, Pollers, Reactionners et Brokers. Les hôtes sont répartis avec leur propres checks vers les Schedulers et ses satellites récupèrent directement leurs tâches. Jusque là tout se passe bien. 

Ou presque bien... Imaginons un administrateur qui a une infrastructure répartie dans le monde entier. En version simple avec Shinken Enterprise, l'administrateur peut installer plusieurs couples Scheduler/Poller dans différentes zones géographiques (par exemple Europe et Asie), mais il ne peut pas forcer les checks "Asie" à être réalisés par le Scheduler "Asie". Essayer de lancer un check en Asie depuis le serveur Europe peut également se révéler très leeennnnnnt, les hôtes étant répartis sur tous les Schedulers et leurs satellites, donc il n'y a aucune garantie que les hôtes locaux seront checkés par leurs serveurs locaux. 

Shinken Enterprise permet alors de gérer la notion de zones géographiques ou organisations séparées. 

Le terme utilisé pour gérer cette notion de séparation dans l'outil est le  Royaume.

Les Royaumes en quelques mots

Un royaume est un ensemble de ressources (scheduler, poller, reactionner et broker) auxquelless sont rattachés des hôtes ou des groupes d'hôtes. Un hôte ou un groupe d'hôte ne peut être rattaché qu'à un seul royaume. Toutes les dépendances ou parents des hôtes doivent également être dans le même royaume. Un royaume peut être défini par défaut, les hôtes non affectés lui seront automatiquement rattachés.  Dans un royaume, les pollers, reactionners et brokers ne recevront les tâches que des schedulers du même royaume. 

Les Royaumes ne sont pas des poller_tags!

Soyez sûrs de bien comprendre quand utiliser les Royaumes et quand utiliser les poller_tags .

  • Les royaumes sont utilisés pour séparer les schedulers
  • les poller_tags sont utilisés pour utiliser les pollers séparés 

Dans certains cas, la fonctionnalité poller_tag peut aussi être réalisée en utilisant les royaumes. La vraie question à se poser est : est que le poller_tag est suffisant, ou est-ce nécessaire de totalement séparer les environnements au niveau du scheduler à travers la notion de royaume. enough",Dans un royaume, les schedulers ne communiquent qu'avec les autres schedulers du même royaume, et jamais avec d'autres.

  • si vous avez juste besoin d'un poller dans une DMZ, utiliser le poller_tag.
  • Si vous avez besoin d'un scheduler/poller dans un LAN client, utiliser les royaumes

Sous royaumes


Un royaume peut contenir un autre royaume (sous royaume). Cela ne change rien pour les schedulers : ils ne sont responsables que des hôtes de leur royaume/sous royaume. L’arborescence royaumes est utile pour les satellites comme les reactionners ou brokers: ils peuvent recevoir les tâches des schedulers de leur royaume mais aussi des schedulers des sous royaumes. Les pollers peuvent également recevoir les tâches des sous royaumes, mais c'est moins intéressant donc désactivé par défaut.

 

ATTENTION : avoir plusieurs brokers dans un royaume n'est pas une bonne idée. Même chose pour l'arbiter, il n'y a qu'un seul arbiter et une seule configuration quelque soit le nombre de royaumes.  .

Exemple d'utilisation des royaumes


Regardons 2 environnements distribués. Dans le 1er cas, l'administrateur veut des démons totalement distincts. Dans le second cas, il veut simplement avoir des schedulers/pollers distincts, tout en gardant un seul endroit pour envoyer les notifications (reactionners) et un seul endroit pour l'export de base (broker).

Royaumes distincts :

 

Image Added

 

 

Usage plus classique: le royaume global (avec reactionner/broker) et les sous-royaumes (avec schedulers/pollers):

 

 

Image Added


Les satellites peuvent être rattachés également aux royaumes et sous-royaumes.Ce n'est qu'un paramètre dans la configuration de l'élément

Example of realm usage

...

Distincts realms :

 

Image Removed

 

 

 

More common usage, the global realm with reactionner/broker, and sub realms with schedulers/pollers:

 

Image Removed

 

 

Satellites can be used for their realm or sub realms too. It's just a parameter in the configuration of the element.