Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=same_as_next_version
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmlfalse
Panel
titleSommaire

Table of Contents
stylenone

Description

Concept

Un Tagger basé sur des expressions régulières s'applique les éléments suivants issus de l'import des sources :

  • les hôtes,
  • les clusters,
  • les modèles d'hôtes ou
  • les modèles de clusters.

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 pour le Tagger.


Un

Ce module permet de définir un tagger qui va utiliser automatiquement le nom pour modifier des propriétés sur les hôtes / clusters qui respectent sa règle de nommage ( une regexp ) sur une propriété.

Typiquement, le cas d'usage classique est de rajouter/modifier des templates modèles d'hôtes/clusters sur les éléments s'ils respectent une règle de nommage sur le nom .

Voir : Tagger sur le nom de l'hôte

Activation du tagger

( voir la page Tagger basé sur des expressions régulières  ).


L'activation des taggers se fait dans le fichier de configuration du Synchronizer 

  • L'activation du tagger s'effectue en ajoutant le nom de ce tagger dans le fichier de configuration du démon Synchronizer.
  • Pour ce faire, ouvrer le

    d'un Tagger se fait en trois étapes

    fichier de configuration du Synchronizer à l'emplacement /etc/shinken
    1. Définir un Tagger qui utilise un module de type sync_regexp_tag ( ex : /etc/shinken/taggers/regexp-tags.cfg ).
    2. Configurer les règles du module ( ex :
    1. /etc/shinken/
    synchronizers
    1. modules/
    synchronizer
    1. sync-regexp-
    master
    1. tag.cfg
    , et ajouter le nom de votre tagger "regexp-tags".

    Exemple: par défaut, nous livrons un tagger dont le nom est "regexp-tags":

    Code Block
    languagebash
    define synchronizer {
        [...]     
        #======== Taggers =========
        taggers	          TAGGER_01, regexp-tags
        [...]
    }
    Pour prendre en compte le changement de configuration, redémarrer le Synchronizer:
    Code Block
    service shinken-synchronizer restart

    Définition du tagger

    La configuration du tagger se trouve par défaut dans le fichier  /etc/shinken/taggers/regexp-tags.cfg

    • Vous trouverez aussi systématiquement un exemple dans /etc/shinken-user-example/configuration/daemons/synchronizers/taggers/regexp-tags/regexp-tags.cfg

    Exemple de fichier de configuration

    Code Block
    languagejs
    #===============================================================================
    # regexp-tags
    #===============================================================================
    
    define tagger {
      tagger_name    regexp-tags
      order          1
      modules        sync-regexp-tag
      description    This tagger will tag host based on the host_name
    }

    Détails des sections composant le fichier de configuration

    Il est possible de définir plusieurs instances de tagger dans votre architecture Shinken.

    • Chaque instance devra avoir un nom unique.
    NomTypeUnitéDéfautCommentaire
    Code Block
    tagger_name
    Texte---regexp-tags

    Valeur obligatoire

    Nous vous conseillons de choisir un nom en fonction de l'utilisation du tagger pour que votre configuration soit simple à maintenir.

    Doit être unique.

    Ne doit pas contenir les caractères suivants: < > " '

    Code Block
    order
    Entier------

    Valeur obligatoire

    L'ordre du tagger dans l'interface de configuration ( Les taggers seront executé dans l'ordre lors de l'import ).

    Code Block
    modules 
    Listenom de modules---

    Valeur obligatoire

    Liste de nom de modules utilisé par le tagger. Voir ci-dessous pour la configuration des modules.

    Le séparateur est le caractère : ,

    Code Block
    description
    Texte------Une description du tagger affiché dans l'interface de configuration

    Configuration

    La configuration du module se trouve par défaut dans le fichier  /etc/shinken/modules/sync-regexp-tag.cfg

    • Vous trouverez aussi systématiquement un exemple dans /etc/shinken-user-example/configuration/daemons/synchronizers/modules/sync-regexp-tag/sync-regexp-tag-example.cfg
    1. ).
    2. Déclarer le Tagger dans le Synchronizer  (/etc/shinken/synchronizers/synchronizer-master.cfg ).

    Définition du tagger

    La configuration des Taggers doit être placée dans le dossier /etc/shinken/taggers/. 

    Le Tagger basé sur des expressions complexes livré par Shinken : /etc/shinken/taggers/regexp-tags.cfg.

    Un exemple de fichier de configuration est disponible : /etc/shinken-user-example/configuration/daemons/synchronizers/taggers/regexp-tags/regexp-tags.cfg

    Exemple de fichier de configuration

    Code Block
    languagejs
    themeConfluence
    define tagger {
    # Shinken Enterprise. Lines added by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them.
        _SE_UUID             core-tagger-f69a7f125adc11e5ae66080027f08538
        _SE_UUID_HASH        d183bc0dd8dba3d7a98725f676d7283c
    # End of Shinken Enterprise part
    
    
        tagger_name         regexp-tags
        order               1
    
        modules             sync-regexp-tag
    
    
        description         This tagger will tag host based on the host_name
    }

    Pour prendre en compte le changement de configuration, il faut redémarrer le Synchronizer :

    Code Block
    languagetext
    themeEmacs
    service shinken-synchronizer restart

    Détails des sections composant le fichier de configuration

    Il est possible de définir plusieurs instances de Taggers dans l'architecture Shinken.

    Chaque instance devra avoir un nom unique.


    Scroll Title
    anchorparameter_cfg
    title
    NomTypeUnitéDéfautCommentaire
    No Format
    tagger_name



    Texte------

    Valeur obligatoire

    Nom du Tagger.

    Le paramètre doit être unique parmi les autres taggers.

    Caractères interdits :
    les signes inférieur ou supérieur ( < ou > ), les guillemets ( ' ou " ).


    No Format
    order
    Entier------

    Valeur obligatoire

    L'ordre d'application des Taggers. Les Taggers sont exécutés les uns à la suite des autres dans l'ordre croissant de la propriété order.


    Warning

    Si plusieurs Taggers qui s'enchaînent modifient la même propriété, il est possible qu'un Tagger annule les modifications de précédents Taggers.

    Attention donc à l'ordre d'exécution des Taggers

    No Format
    modules 
    Texte------

    Valeur obligatoire

    Nom du module utilisé par le Tagger.

    No Format
    description
    Texte------

    Une description du Tagger affichée dans l'Interface de Configuration.

    Configuration du module

    La configuration des modules doit être placée dans le dossier /etc/shinken/modules/

    La configuration du module livré par Shinken se trouve dans le fichier  /etc/shinken/modules/sync-regexp-tag.cfg

    Un exemple de fichier de configuration est disponible ici :/etc/shinken-user-example/configuration/daemons/synchronizers/modules/sync-regexp-tag/sync-regexp-tag-example.cfg


    Exemple de fichier de configuration

    Code Block
    languagejs
    themeConfluence
    #===============================================================================
    # ip-tag-*
    #======================================================

    Exemple de fichier de configuration

    Code Block
    languagejs
    #===============================================================================
    # sync-regexp-tag
    # Daemons that can load this module:
    # - synchronizer (into a tagger object)
    # This module add new templates into hosts objects based on their hostname (regexp check)
    #===============================================================================
    
    
    define module{
    
    # DaemonsShinken thatEnterprise. canLines loadadded this module:
    # - synchronizer (into a tagger object)
    # This module add new templates into hosts objects based on their hostname (regexp check)
    #==by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them.
        _SE_UUID             core-module-be8578085adb11e59c43080027f08538
        _SE_UUID_HASH        05673d95f7f69b0c1c291e8343b6ec93
    # End of Shinken Enterprise part
    
        #======== Module identity =====================================================================
    
    
    define module{
    
        #======== Module identity =========
        # Module name. Must be unique
        module_name     
        # Module name. Must be unique
        module_name     sync-regexp-tag
    
        # Module type (to load module code). Do not edit.
        module_type     sync-regexp-tag
    
        # Module type (to load module code). Do not edit.
        module_type     sync-regexp-tag
    
            #======== Regexp definition and objects edition =========
        #  # matched_prop: which object property to check the regexp
          matched_prop     host host_name
    
          # regexp to try to detect
          matched_regexp   .*shinkendemo.*
    
          # property: which property to edit on the hosts. Default: use    (templates definitions)
          property                        use
    
          # method: how to edit the host "property". Several methods are available:
          # - replace = put the value if not another one is in place
          # - append   = add the value at the END
          # - prepend = add the value at the BEGINING
          # - set       = just the value, erase the previous value set by other tagger or source.
          method                          append
    
          # value:  which which value to set on the property
          value                         SHINKEN   SHINKEN-DEMO-REGEXP-EXAMPLE
    
    }  }

    Pour prendre en compte le changement de configuration, il faut redémarrer le Synchronizer :


    Code Block
    languagetext
    themeEmacs
    service shinken-synchronizer restart

    Détails des sections composant le fichier de configuration

    Identification du module

    Il est possible de définir plusieurs instances de module de type sync-regexp-tag dans votre architecture Shinken.

    • Chaque instance devra avoir un nom unique.
    NomTypeUnitéDéfautCommentaire
    Code Block
    module_name 
    Texte---sync-regexp-tag

    Nous vous conseillons de choisir un nom en fonction de l'utilisation du module pour que votre configuration soit simple à maintenir.

    Doit être unique.

    Code Block
    module_type 
    Texte---sync-regexp-tagNe peut être modifié.

    Regexp définition et édition d'objets

    Code Block
    languagejs
    themeConfluence
    # Shinken Enterprise. Lines added by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them.
        _SE_UUID             core-module-be8578085adb11e59c43080027f08538
        _SE_UUID_HASH        05673d95f7f69b0c1c291e8343b6ec93
    # End of Shinken Enterprise part
    
        #======== Module identity 
    Code Block
    languagejs
       ... 
    
    	#======== Regexp definition and objects edition ==========
    	# matched_prop: which object property to check the regexp
    	matched_prop host_name
    
    	# regexp to try to detect
    	matched_regexp .*shinkendemo.*
    
    	# property: which property to edit on the hosts. Default: use (templates definitions)
    	property use
    
    	# method: how to edit the host "property". Several methods are available:
    	# - replace = put the value if not another one is in place
    	# - append = add the value at the END
    	# - prepend = add the value at the BEGINING
    	# - set = just the value, erase the previous value set by other tagger or source.
    	method append
    
    	# value: which value to set on the property
    	value SHINKEN-DEMO-REGEXP-EXAMPLE    
    
    	...
    
    

    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

    NomTypeUnitéDéfautCommentaire
    Code Block
    matched_prop
    TexteNom de propriété d'un hôte

    host_name

    La propriété que l'on va regarder pour vérifier qu'elle correspond à ce que l'on recherche.
    • Par défaut, la propriété est le host_name ( Nom de l'objet hôte/cluster )
    Code Block
    matched_regexp
    Texteregexp python---

    Valeur obligatoire

    Regexp auquel la propriété doit correspondre

    Code Block
    method
    Texte------

    Valeur obligatoire

    Comment la modification de la propriété va avoir lieu sur l’élément :

    • replace: si aucune valeur n’était définie dans la propriété à vérifier, le contenu de value sera mis dans la propriété visée, c.a.d. property.
    • append: ajoute le contenu de value à la fin dans la propriété visée, c.a.d. property.
    • prepend: ajoute le contenu de value au début de la propriété visée, c.a.d. property.
    • set: force le contenu de value dans la propriété visée, c.a.d. property.
    Code Block
    property
    TexteNom de propriété d'un hôte---

    Valeur obligatoire

    Quelle propriété modifier

    Code Block
    value
    Texte------

    Valeur obligatoire

    La valeur qui sera ajouter/que prendra la propriété
        # Module name. Must be unique
        module_name     sync-regexp-tag
    
        # Module type (to load module code). Do not edit.
        module_type     sync-regexp-tag
    
    

    Il est possible de définir plusieurs instances de module de type sync-regexp-tag dans l'architecture Shinken.

    Chaque instance devra avoir un nom unique.


    Scroll Title
    anchorparameter_cfg
    title
    NomTypeUnitéDéfautCommentaire
    No Format
    module_name 
    Texte------

    Valeur obligatoire

    Nom du module.

    Doit être unique parmi les modules.

    No Format
    module_type 
    Texte---sync-regexp-tagNe pas modifier.

    Définition de l'expression régulière et de l'édition d'objets

    Code Block
    languagejs
    themeConfluence
    ...       
        #======== Regexp definition and objects edition =========
        # matched_prop: which object property to check the regexp
        matched_prop    host_name
    
        # regexp to try to detect
        matched_regexp  .*shinkendemo.*
    
        # property: which property to edit on the hosts. Default: use   (templates definitions)
        property               use
    
        # method: how to edit the host "property". Several methods are available:
        # - replace = put the value if not another one is in place
        # - append  = add the value at the END
        # - prepend = add the value at the BEGINING
        # - set     = just the value, erase the previous value set by other tagger or source.
        method                 append
    
        # value:  which value to set on the property
        value                  SHINKEN-DEMO-REGEXP-EXAMPLE  
    ...
    
    
    Scroll Title
    anchorparameter_cfg
    title
    NomTypeUnitéDéfautCommentaire
    No Format
    matched_prop
    TexteNom de propriété d'un hôte

    host_name

    Valeur obligatoire

    La propriété comparée à l'expression régulière.

    No Format
    matched_regexp
    Texteregexp python---

    Valeur obligatoire

    Regexp auquel la propriété doit correspondre.

    No Format
    property
    TexteNom de propriété d'un hôte---

    Valeur obligatoire

    Nom de la propriété à modifier.

    No Format
    method
    Texte---replace

    Valeur obligatoire

    Méthode d'édition : 

    • replace : ajoute la valeur si elle est absente.
    • append  : ajoute la valeur à la fin.
    • prepend : ajoute la valeur au début.
    • set : remplace la valeur actuelle ou l'ajoute si absente.
    No Format
    value
    Texte------

    Valeur obligatoire

    Valeur utilisée par la méthode.

    Ecrire une Expression Régulière ( Regexp ) pour la propriété matched_regexp

    Une expression régulière est une séquence de caractères qui forme un motif de recherche. Ce motif est principalement utilisé pour rechercher des correspondances dans des textes.

    Les caractères simples, comme a, b, 1, 2, etc., recherchent une correspondance exacte.

    Par exemple, le motif "bdx" recherchera exactement la séquence "bdx" dans la propriété ou la donnée définie dans "matched_prop". Les valeurs ci-dessous contiennent le motif "bdx", elles correspondent donc au motif défini et le Tagger appliquera la modification :

    • bdx-serveur-mysql
    • serveur-mysql-bdx
    • serveux-bdx-mysql


    Certains caractères sont spéciaux et ont une signification particulière dans les expressions régulières. Par exemple :

    • . : Correspond à n'importe quel caractère sauf un retour à la ligne.
    • * : Correspond à zéro ou plusieurs occurrences du caractère précédent.
    • + : Correspond à une ou plusieurs occurrences du caractère précédent.
    • ? : Correspond à zéro ou une occurrence du caractère précédent.
    • [] : Correspond à n'importe quel caractère à l'intérieur des crochets. Par exemple, [abc] cherchera les lettres "a", "b" ou "c".
    • (): Permet de grouper des caractères.
    • | : Correspond à l'un ou l'autre des motifs séparés par le pipe. Par exemple, "(bdx|bordeaux)" correspond à "bdx" ou "bordeaux".
    • ^ : Correspond au début d'une ligne.
    • $ : Correspond à la fin d'une ligne.

    Pour chercher un de ces caractères spéciaux dans un texte ( par exemple si le nom de l'hôte contient le signe dollar $ ) il faut le faire précéder d'un antislash, comme ceci : \$

    Ces caractères servent à affiner la recherche

    Pour plus d'explications sur comment écrire des expressions régulières, il est possible de se référer à la documentation de Python ( voir la page Guide des expressions régulières )

    Exemples

    Si seuls les éléments dont le nom commence par "bdx" doivent recevoir le modèle d'hôte Bordeaux, le motif précédent ne suffit plus, pour cela il faut également utiliser le symbole ^ :

    Code Block
    languagejs
    themeConfluence
    ^bdx

    Si le nom doit commencer par "bdx" OU "bordeaux" il faut également ajouter les parenthèses :

    Code Block
    languagejs
    themeConfluence
    $(bdx|bordeaux)


    Exemples de valeurs :

    TexteCorrespondance avec le motif
    bdx-serveur-1OUI
    serveur-mysql1-bdxNON car "bdx" n'est pas au début
    bordeaux-mysqlOUI
    Bordeaux-mysqlNON car le B est une lettre majuscule

    Déclarer le Tagger dans le Synchronizer

    L'activation des Taggers se fait dans le fichier de configuration du Synchronizer 

    • Il faut ajouter le nom du Tagger au paramètre taggers dans le fichier de configuration du démon Synchronizer (/etc/shinken/synchronizers/synchronizer-master.cfg ) .


    Exemple : Le Tagger livré par défaut dont le nom est "regexp-tags" :

    Code Block
    languagejs
    themeConfluence
    define synchronizer {
        [...]     
        #======== Taggers =========
        taggers	          TAGGER_01, regexp-tags
        [...]
    }


    Pour prendre en compte le changement de configuration, il faut redémarrer le Synchronizer :

    Code Block
    languagetext
    themeEmacs
    service shinken-synchronizer restart

    Affichage des Taggers sur l'interface de Configuration

    Les Taggers apparaissent sur la page Principale de l'Interface de Configuration ( voir la page Page Principale ).

    Excerpt Include
    Page Principale
    Page Principale
    nopaneltrue