Introduction
Shinken Enterprise can be configured to support distributed monitoring of network checks and resourcespeut être configuré pour supporter une architecture distribuée .
The goal in the distributed monitoring environment is to offload the overhead (CPU usage, etc.) of performing and receiving checks from a "central" server onto one or more "distributed" servers. Most small to medium size shops will not have a real need for setting up such an environment. However, when you want to start monitoring thousands of hosts (and several times that many checks) using Shinken Enterprise , this becomes quite important.
The global architecture
L'objectif de cette architecture distribuée est de réduire la charge (CPU...) et d'améliorer les temps de traitement des checks d'une approche "un seul serveur qui traite" vers une approche "plusieurs serveurs qui traitent". La plupart des environnements simples ne nécessiteront pas la mise en place de cette architecture distribuée, mais quand vous commencez à gérer plusieurs milliers d'hôtes, cela devient crucial.
L’architecture globale
L'architecture de Shinken Enterprise selon les principes Unix : un outil, une tâcheShinken Enterprise's architecture has been designed according to the Unix Way: one tool, one task.
Shinken Enterprise has an architecture where each part is isolated and connects to the others via standard interfaces. Shinken Enterprise is based on the a HTTP backend. This makes building a highly available or distributed monitoring architecture quite easily.
...
The smart and automatic load balancing
Distribution des hôtes à travers les schedulers
Shinken Enterprise is able to cut the user configuration into parts and dispatch it to the schedulers. The load balancing is done automatically: the administrator does not need to remember which host is linked to another to create shards, Shinken Enterprise does it for him.
The dispatch is a host-based one: that means that all checks of a host will be in the same scheduler than this host. The major advantage of Shinken Enterprise is the ability to create independent configurations: an element of a configuration will not have to call an element of another shard. That means that the administrator does not need to know all relations among elements like parents, hostdependencies or check dependencies: Shinken Enterprise is able to look at these relations and put these related elements into the same shards.
This action is done in two parts:
- create independent shards of elements
- paste shards to create N configurations for the N schedulers
Creating independent shards
The cutting action is done by looking at two elements: hosts and checks. checks are linked with their host so they will be in the same shard. Other relations are taken into account :
- parent relationship for hosts (like a distant server and its router)
- hostdependencies
est capable de couper la configuration en plusieurs parties et les distribuer aux Schedulers .
Le load balancing est fait automatiquement : l'administrateur n'a pas besoin de se souvenir quel hôte est lié à tel autre pour créer les packs
La répartition est basée sur les hôtes : cela veut dire que tous les checks associés à un hôte seront dans le même Scheduler que l'hôte . Cela signifie que l'administrateur n'a pas besoin de connaître toutes les relations entre éléments comme les parents,, dépendances d'hôtes ou dépendances de checks : Shinken Enterprise est capable de lire ses relations et de rassembler tous les éléments liés dans la même partition.
Cette action se fait en 2 parties :
- création de partitions indépendantes pour les éléments
- copie des partitions pour créer N configurations pour N Schedulers
Création de partitions indépendantes
L'action de hachage se fait en se basant sur 2 éléments : les hôtes et les checks. Les checks sont liés à l'hôte donc ils seront dans la même partition.
D'autres relations sont prises en compte :
- Liaisons réseau pour un hôte (comme un serveur distant et son routeur).
- Dépendances logiques.
Shinken Enterprise regardent toutes les relations et créée un graphe avec. Un graphe est une partition de relations.
Illustration Shinken Enterprise looks at all these relations and creates a graph with it. A graph is a relation shard. This can be illustrated by the following picture :
In this example, we will have two shards:
...
