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

Il est possible de définir sur un Tagger une action qui va utiliser une plage d’adresses IP afin d'éditer automatiquement une propriété des hôtes issus de l'import des sources en fonction de la valeur de leur IP ou nom DNS ( propriété "address" ).

  • Cette action est portée par un module de type sync_ip_tag, que vous aurez besoin d'ajouter sur votre Tagger.
  • L'intérêt est, par exemple, d'ajouter le modèle d'hôte DMZ sur les hôtes avec des adresses comprises dans la plage IP 172.20.0.0/26 ( voir la page Tagger utilisant un module basé sur les plages IP ).


L'activation de ce module se fait en 3 étapes :

  1. Définir le module de type sync_ip_tag.
  2. L'ajouter au Tagger qui exécutera cette règle.
    1. Si vous n'avez pas déjà de tagger défini, il faut le mettre en place ( voir la page Definition des taggers ).
  3. Redémarrer le Synchroniser pour que cette modification soit prise en compte.

Définition du module

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

  • Un exemple de fichier de configuration est disponible ici :  /etc/shinken-user-example/configuration/daemons/synchronizers/modules/ip-tag-dmz/ip-tag-dmz-exemple.cfg.
  • Copier cet exemple et adapter le à votre besoin ( voir plus bas, la description des différents paramètres ).

    Code Block
    languagetext
    themeEmacs
    cp /etc/shinken-user-example/configuration/daemons/synchronizers/modules/ip-tag-dmz/ip-tag-dmz-example.cfg /etc/shinken/taggers/MY_-MODULE-ip-tag.cfg

    Nous vous recommandons d'intégrer, dans le nom du module, un rappel du type du module. C'est plus simple en gestion ( ex :   MY_MODULE_ip_ MY-MODULE-ip-tag.cfg ).

  • Renommé le module ( paramètre module_name ).

  • Editer les paramètres pour définir l'action du module :
    • Les hôtes à impacter. 
    • La nature de l'action.

Exemple de fichier de configuration

Cette exemple ajoute 

  • le modèle d'hôte DMZ sur les hôtes à la fin des modèles d'hôtes utilisé par chaque hôte,
  • avec des adresses comprises dans la plage IP 172.20.0.0/30.


Code Block
languagejs
themeConfluence
#===============================================================================
# ip-tag-*
#===============================================================================
# Daemons that can load this module:
# - synchronizer (into a tagger object)
# This module add new templates into hosts objects based on their IP range. For example to set a DMZ template is an host is in a DMZ ip range.
#===============================================================================


define module{
    #======== Module identity =========
    # Module name. Must be unique
    module_name            MY-MODULE-ip-tag-dmz

    # Module type (to load module code). Do not edit.
    module_type            sync_ip_tag




    #======== Ip range definiton, and objects edition =========
    # IP range to detect. Should looks like:   XXX.XXX.XXX.XXX/YY
    ip_range               172.20.0.0/30

    # host_name listed will be skipped by tagger
    # ignore_hosts

    # 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                  DMZMY-HOST-TEMPLATE

}

Détails des sections composant le fichier de configuration

Identification du module

Code Block
languagejs
themeConfluence
#======== Module identity =========
# Module name. Must be unique
module_name            MY_-MODULE_-ip_-tag

  ## Module type (to load module code). Do not edit.
module_type            sync_ip_tag

Il est possible de définir plusieurs instances de module de type sync_ip_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 tous les modules.

No Format
module_type 
Texte--- sync_ip_tag Ne pas modifier.

Définition des hôtes ou l'action de modification sera appliqué ( plage d'adresses IP et exclusion )

Code Block
languagejs
themeConfluence
    #======== Ip range definiton, and objects edition =========
    # IP range to detect. Should looks like:   XXX.XXX.XXX.XXX/YY
    ip_range               172.20.0.0/30

    # host_name listed will be skipped by tagger
    # ignore_hosts 
Scroll Title
anchorparameter_cfg
title
NomTypeUnitéDéfautCommentaire
No Format
ip_range
TexteIP/masque ---

Valeur obligatoire

Plage d'IP à détecter.

No Format
ignore_hosts
Liste------

Liste de nom d'hôtes ( et pas de leurs adresses ) qui seront ignorer par ce module de Tagger.

Édition des hôtes

Code Block
languagejs
themeConfluence
    # 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                  MY-HOST-TEMPLATE
Scroll Title
anchorparameter_cfg
title
NomTypeUnitéDéfautCommentaire
No Format
property
Texte--- ---

Valeur obligatoire

Nom de la propriété à modifier sur l'hôte.

Ex : use pour les modèles de l'hôte.

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 lors de l'application de la règle.

Déclarer le Module dans le Tagger

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 "ip-tags":

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         MY-TAGGER
    order               1

    modules             TAGGER_-MODULE_-01, TAGGER_-MODULE_-02, MY_-MODULE_-ip_-tag
 

     description         
}

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

Changer le screen pour montrer à l'intérieur du tagger


Les règles apportées par chaque module apparaissent à l'intérieur du Tagger, dans l'onglet Regles :