Qu'est-ce qu'un cluster?

Son rôle principal est de permettre d'avoir dans un seul indicateur l'état agrégé d'autres états. Cet indicateur propose une vue unique pour des utilisateurs jouant différents rôles.

Rôles typiques:

  • Service delivery Management
  • Business Management
  • Engineering
  • IT support

Prenons l'exemple d'un rôle de service delivery pour une application ERP . Il est principalement constitué de:

  • 2 databases, en haute disponibilité, donc avec une seule base active, le service est considéré comme rendu
  • 2 web servers, en partage de charge, donc avec un web server actif, le service est considéré comme rendu
  • 2 load balancers, encore en haute disponibilité

Ces composants (Hôtes dans cet exemple) seront la base de ce service ERP .

Avec des règles métier, vous pouvez avoir une vue agrégée de l'indicateur représentant l'état du service ERP !

Shinken Enterprise vérifie chaque composant un par un pour l'analyse de problème source. .

Accéder à la configuration du Cluster

Accès par le menu principal "Elements".

Comment définri les Clusters

Exemple de configuration d'une règle ERP :

 

(srv-oracle-1 | srv-oracle-2) & (srv-http-1 | srv-http-2) & (srv-loadbalancer-1 | srv-loadbalancer-2)

Logique de notification

Un Cluster a la même logique de notification que les hôtes. 

Avec "nécessite au moins " X éléments" clusters

Dans certains cas, un cluster de N éléments nécessite d'avoir au moins X d'entre eux en état OK pour tourner. C'est facilement paramétrable, il suffit d'utiliser l'opérateur "X of:" .

Voici un exemple avec 3 http web servers, et au moins 2 d'entre eux en état OK :

(srv-oracle-1 | srv-oracle-2) & (2 of: srv-http-1 & srv-http-2 & srv-http-3) & (srv-loadbalancer-1 | srv-loadbalancer-2)
 

Valeurs possibles de of X dans l'expression X of:

L'expression X of: peut être configuré avec différentes valeurs en fonction du besoin.

The supported expressions are described below:

  • un nombre entier positif, soit "au moins X hôtes doivent être up"
  • un pourcentage positif, soit "au moins X pourcent d'hôtes doivent être up".
    On peut combiner des expression groupées telles que "95 pourcents de mes web front ends doivent être up"..
  • un nombre entier négatif, soit "au moins X hôtes doivent être down"
  • un pourcentage négatif, soit "au moins X pourcent d'hôtes doivent être down".
    On peut combiner des expression groupées telles que "5 pourcents de mes web front ends doivent être down".

 

(srv-oracle-1 | srv-oracle-2) & (srv-loadbalancer-1 | srv-loadbalancer-2) & 95% of: g:frontend

La règle PAS

Vous pouvez définir une règle "PAS" d'état. Cela peut être utile pour les réglages actif/passif setups . Vous devez juise ajouter un ! devant le nom de l'élément.

L'état agrégé sera Ok si le base 1 est OK et la base 2 est DOWN dans cet exemple.

(srv-oracle-1 & !srv-oracle-2)

Groupement d'expression

Parfois, vous ne souhaitez pas spécifier précisément les hôtes contenus dans une règle, mais préférez utiliser une expression groupée du type "hôtes du groupe d'hôtes xxx"

Pour cela, il est possible d'utiliser des expressions groupées suivant cette syntaxe :

flag:expression

Le flag est un simple caractère qualifiant le type d'expansion.
Les types supportés (et les tags associés) sont décrits dans les tables ci-dessous.

Host flags

FlagExpansionExampleEquivalent to
gContenu du hostgroupg:websweb-srv1 & web-srv2 & ...
rHôtes dont le nom correspond à regexr:^webweb-srv1 & web-srv2 & ...
tHôtes ayant des templatest:httpweb-srv1 & web-srv2 & ...

Check flags

FlagExpansionExampleEquivalent to
rchecks dont le nom correspond à regexr:^HTTPS?web-srv1,HTTP & db-srv2,
HTTPS & ...
tchecks ayant des templatest:httpweb-srv1,HTTP & db-srv2,
HTTPS & ...

 Exemples d'expression combinées

Si vous souhaitez créer une règle incluant tous les web servers composant l'application frontend.

l:front,r:HTTPS?

qui est équivalent à:

web-srv1,HTTP & web-srv3,HTTPS

Vous devriez donc combiner l'expansion d'expression avec : .

l:front,h:HTTPS? & db-srv1,MySQL

qui est équivalent à:

(web-srv1,HTTP & web-srv3,HTTPS) & db-srv1,MySQL

 





 

 

 

 

 

  • No labels
Write a comment…