Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue


Panel
titleSommaire

Table of Contents
stylenone



Fonctionnement

Vous pouvez définir un tagger qui utilise les plages IP pour qualifier automatiquement des hôtes et leur appliquer une règle suivant la valeur de leur IP ( propriété address )

Comment définir une nouvelle règle

Pour chaque règle, vous devez définir un nouveau module et l'ajouter dans la configuration ip-tags .

Vous pouvez copier l'exemple /etc/shinken/modules/ip-tag-dmz.cfg et le modifier

Code Block
define module{
  module_name    ip-tag-dc1
  module_type    sync_ip_tag
  ip_range       192.168.0.0/24
  method         append
  property       use
  value          dc1
}

Les propriétés sont :

  • module_name: le nom du module ( doit être unique ).
  • module_type: doit être égal à sync_ip_tag.
  • ip_range: si l'adresse de l'hôte (champ address) est dans la plage IP fourni, on applique la modification ci après.
  • method: 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.
  • property: quelle propriété modifier
  • value: la liste des modèles qui seront ajoutés.

Vous devez ensuite éditer la définition du tagger pour la lier au nouveau module dans le fichier /etc/shinken/taggers/ip-tags.cfg:

Code Block
define tagger {
  tagger_name    ip-tags
  order          1
  modules        ip-tag-dmz,ip-tag-dc1
  description    This tagger will tag hosts based on their ip range
}


Info

La propriété tagger_name ne doit pas contenir les caractères suivants:

  • <
  • >
  • "
  • '


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

Code Block
define synchronizer {
	[ ... ]

    # Taggers:
    #  ip-tags
    #  regexp-tags
    taggers           ip-tags, regexp-tags, my-new-tagger

	[ ... ]
}


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 l'interface de configuration :


Panel


Cas des champs address des hôtes qui sont des noms DNS

Le tagger est fait pour comparer des IP par rapport à des ranges d'IP.

Si le champ address d'un hôte est rempli avec un nom DNS, alors le tagger va tenter de le résoudre via une résolution DNS système classique, et prendra comme valeur l'IP ainsi récupérée.


Cas d'exemple: automatiquement assigner au royaume Bordeaux les hôtes/clusters dont l'ip est dans le range 192.168.0.1/24

Exemple 1: mettre la valeur du royaume directement dans la valeur du royaume

Si nous savons que les serveurs dans le range IP 192.168.0.1/24 sont à Bordeaux, il est intéressant de le assigner automatiquement au royaume Bordeaux, ce qui permettra de les superviser au plus proche possible ( et donc avoir les bonnes règles de firewall par exemple pour lancer les sondes vers les serveurs ).


Nous pouvons donc définir le module suivant que nous accrochons au tagger ( comme indiqué précédemment ).

Il va fonctionner ainsi:

  • SI l'ip correspondant au champ address de l'hôte/cluster est dans le range 192.168.0.0/24
    • ALORS on va écraser ( method=set ) le champ realm ( property ) avec la valeur Bordeaux ( value ).


Code Block
define module{

  module_name    ip-tag-bordeaux-basic
  module_type    sync_ip_tag

  # La range IP de l'hote (champ address)
  ip_range       192.168.0.0/24
  
  # on va appliquer la regexp sur le nom de l'hote/cluster
  matched_prop      host_name

  # On va alors ecraser la propriete realm avec la valeur Bordeaux
  property          realm
  method            set
  value             Bordeaux

}


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

Si la méthode 1 fonctionne, elle n'est pas optimale: en effet, changer le royaume par Bordeaux est utile, mais dans le futur la localisation à Bordeaux va peu être demander à ce qu'une équipe locale ait les droits d'accès et de notifications sur la machine par exemple.

Il faudrait alors faire un second module, ce n'est pas l'idéal.


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 en masse sur toutes les machines Bordeaux, en modifiant juste le modèle Bordeaux.


Nous pouvons donc définir le module suivant que nous accrochons au tagger ( comme indiqué au dessus ).

Il va:

  • SI l'ip correspondant au champ address de l'hôte/cluster est dans le range 192.168.0.0/24
    • ALORS on va rajouter au début ( method=prepend ) le champ use ( property ) avec la valeur bordeaux ( value )


Code Block
define module{
  module_name    ip-tag-bordeaux-advanced
  module_type    sync_ip_tag

  # La range IP de l'hote (champ address)
  ip_range       192.168.0.0/24
  
  # 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             bordeaux
}


Visualisation dans l'interface de configuration

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


Panel

Image Added


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


Panel
Image Removed

Image Added