Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmlfalse
Panel
titleSommaire

Table of Contents
stylenone

Concept

Un Tagger utilisant un module basé sur les expressions régulières ( de type sync-regexp-tag ) s'applique sur les hôtes, clusters, les modèles d'hôtes, les modèles de clusters, issus de l'import des sources.

  • Il utilise une expression régulière ( regexp ) sur une propriété ou une donnée pour sélectionner les éléments auxquels appliquer la modification configurée par son module.


Info

Pour résoudre les éléments qu'il doit modifier, ce Tagger peut utiliser n'importe quelle propriété ou donnée de l'élément à configurer. De plus, il n'est pas limité aux hôtes.

  • Ce que ne peut pas faire un Tagger utilisant un module basé sur les plages IP

Définir ou configurer un Tagger

Regarder :

Exemple : automatiquement assigner au royaume Bordeaux les hôtes/clusters dont le nom commence par bdx

Exemple 1 : mettre le nom du royaume directement dans la propriété définissant le royaume

Pour quoi est-il fait ?

Vous pouvez définir un tagger qui va utiliser automatiquement le nom pour ajouter des modèles aux objets détectés. Le nom commun du tagger est regexp-tags et peut charger de nouvelles règles de nommage

Comment définir une règle Regexp

Pour chaque règle Regexp , vous devrez définir un nouveau module et l'ajouter dans la configuration du tagger regexp-tags .

Vous pouvez copier l'exemple  /etc/shinken/modules/sync-regexp-tag.cfg dans un nouveau fichier pour le modifier

Code Block

Si les éléments dont le nom commence par la chaine bdx, sont situés à Bordeaux, il est pertinent de les assigner automatiquement au royaume Bordeaux. Cela permet une supervision plus efficace, par exemple en utilisant le Poller du royaume Bordeaux, autorisé par les pare-feux de ces serveurs.


Le module de type sync_regexp_tag suivant permet ce comportement :

  • SI la propriété host_name ( le nom ) de l'hôte/cluster commence par bdx
    • ALORS, on va écraser ( paramètre method à la valeur "set" ) la propriété realm ( paramètre "property" ) avec la valeur Bordeaux ( paramètre "value" ).
Code Block
languagejs
themeConfluence
define module{
  module_name       sync-regexp-tag-
windows
bordeaux
  module_type       sync-regexp-tag

  # La regexp a appliquer
  matched_regexp    ^bdx.*
  
  # on va appliquer la regexp sur le nom de l'hote/cluster
  matched_prop      host_name

  # On va alors 
matched_regexp .*srvwin.*
ecraser la propriete realm avec la valeur Bordeaux
  
method
property          realm
  
append
method  
property
          
use
set
  value             
windows
Bordeaux

}
Warning
titleIMPORTANT

À noter que cette méthode est facile à appréhender, mais n'est pas une bonne pratique sur le long terme :

  • en effet, il pourra être nécessaire de modifier d'autres propriétés liées, en lien avec le datacenter de bordeaux dans le futur ( ajout d'utilisateur à notifier sur l'hôte, dépendances réseaux ... ), 
  • cela nécessitera d'ajouter des modules de Taggers de type sync-regexp-tag pour chaque nouvelle édition de propriété.

La bonne pratique est de définir un modèle d'hôte et de l'accrocher systématiquement aux équipements de ce datacenter.

  • Ainsi, vous pourrez avoir un modèle où mettre les futures spécificités du datacenter de bordeaux.
  • le prochain exemple en explique la mise en place.


Exemple 2: plus flexible, rajouter un modèle "bordeaux", prioritaire sur les autres modèles

Si la méthode précédente fonctionne, elle n'est pas optimale :

  • en effet, changer le royaume par Bordeaux est utile, mais d'autres éditions de propriétés seront peut-être nécessaires dans le futur ( ajout d'utilisateur à notifier sur l'hôte, dépendances réseaux ... ).
  • Or la méthode précédente impose de créer un nouveau Tagger avec un nouveau module de type sync_regexp_tag pour chaque nouvelle édition de propriété.


Il est donc fortement recommandé de ne pas modifier les propriétés directement, mais plutôt de passer par des modèles d'hôtes/cluster.

Il sera ainsi facile de faire des changements sur toutes les machines situées à Bordeaux, en modifiant juste le modèle Bordeaux.


Le module de type sync_regexp_tag suivant permet ce comportement :

  • SI la propriété host_name ( le nom ) de l'hôte/cluster commence par bdx
    • ALORS, on va rajouter au début ( paramètre method à la valeur "prepend" ) de la propriété use ( paramètre "property"  ) la valeur bordeaux ( paramètre "value" ).
Code Block
languagejs
themeConfluence
define module{
  module_name       sync-regexp-tag-bordeaux
  module_type       sync-regexp-tag

  # La regexp a appliquer
  matched_regexp    ^bdx.*
  
  # on va appliquer la regexp sur le nom de l'hote/cluster
  matched_prop      host_name

  # On va alors rajouter le template bordeaux au debut de use (prioritaire)
  property          use
  method            prepend
  value

Les propriétés sont :

  • module_name: doit être unique
  • module_type: doit être égal à sync-regexp-tag
  • matched_prop: la propriété qui doit correspondre. Par défaut, la propriété est le nom de l'objet hôte (host_name)

  • matched_regexp: Regexp auquel l'objet doit correspondre

  • method: comment vous voulez modifier l'objet détecté:
    • replace: mettre la valeur si aucune en place
    • append: ajouter la valeur à la FIN du modèle
    • prepend: ajouter la valeur au DÉBUT du modèle
    • set: juste la valeur, en écrasant la valeur précédente .
  • property: quelle propriété modifier
  • value: quelle valeur prendre en compte

Vous devez alors éditer le fichier rexexp-tags pour lier le nouveau module dans le fichier  /etc/shinken/taggers/regexp-tags.cfg:

Code Block
define tagger {
  tagger_name    regexp-tags
  order          1
  modules        sync-regexp-tag,sync-regexp-tag-windows
  description     This tagger will tag host based on the host_name
}
Info

Le tagger_name ne doivent pas contenir les caractères suivants:

  1. <
  2. >
  3. "
  4. '

Une fois votre fichier sauvegardé, vous devez l'ajouté dans la liste des taggers du synchronizer concerné. ( par exemple /etc/shinken/synchronizers/synchronizer-master.cfg )

Code Blockdefine synchronizer { [ ... ] # Taggers: # ip-tags # regexp-tags taggers
         
ip-tags,
 
regexp-tags,
 
my-new-tagger [
 
...
 
]
bordeaux
}

Pour que les modifications soient prises en compte, vous devez ensuite redémarrer le Synchronizer.

Si votre configuration est correcte, vous devriez retrouver votre tagger en bas de page de

Visualisation dans l'interface de configuration

:

Image Removed

Visualisation dans

Sur l'

interface de configuration

Interface de Configuration, les noms des Taggers listés sont des liens cliquables.


Panel

Image Added


  • Ces liens redirigent sur leurs configurations.


Panel


Image Added

  • Un onglet

Vous pouvez consulter la configuration des différents taggers sur nom d'hôtes présent sur le synchronizer sur la page d'accueil en cliquant sur regexp-tags.

Image Removed

Un onglet vous
  • permet de visualiser également un résumé des règles qui vont s'appliquer.
Image Removed


Panel
Image Added