Concept

Le collecteur de type "synchronizer-collector-linker" est une source qui permet au démon de type "Synchronizer" de récupérer les hôtes provenant d'une installation Shinken distante.

Le collecteur de type "synchronizer-collector-linker" interroge l'écouteur de type "listener-shinken" du Synchronizer distant pour y récupérer l'intégralité des hôtes, y compris ceux en nouveaux et en différences.


Certaines situations justifient la mise en place de plusieurs instances Shinken interconnectées. Voici deux exemples  :

  • Découverte dans un sous-réseau sécurisé :
    • Lorsqu’on souhaite découvrir les machines d’un sous-réseau sécurisé à l’aide du collecteur de type "discovery-import" ( réalisant des scans réseau via nmap ) il faudrait, dans un schéma classique, ouvrir les flux réseau vers l’ensemble des équipements à scanner. Cela peut représenter un risque en matière de sécurité.
    • Pour contourner cette contrainte, il est recommandé d’installer une instance Shinken directement dans le sous-réseau concerné. Cette instance locale se chargera des scans nmap L’instance centrale récupérera les hôtes locaux via un collecteur de type "synchronizer-collector-linker".
  • Autonomie d’un administrateur distant :
    • Un administrateur Shinken distant peut avoir besoin d’autonomie pour créer et gérer ses propres hôtes. En utilisant un Synchronizer sur sa propre instance, il peut ensuite faire remonter ses hôtes vers l’instance centrale grâce au collecteur de type "synchronizer-collector-linker"


Cette page détaille la configuration d'un collecteur de type "synchronizer-collector-linker". Une autre page est dédiée à son utilisation ( voir la page Collecteur de type ( synchronizer-collector-linker ) - Import depuis un autre Synchronizer ).

Activation du collecteur

Les collecteurs de type "synchronizer-collector-linker" doivent être activés sur un démon de type "Synchronizer".

  • L'activation du collecteur s'effectue en ajoutant le nom de ce collecteur dans le fichier de configuration du Synchronizer.
    • Pour cela, il faut ouvrir le fichier de configuration du Synchronizer et ajouter le nom du collecteur de type "synchronizer-collector-linker" dans le paramètre sources.
  • Il est possible d'avoir plusieurs collecteurs de type "synchronizer-collector-linker".
  • Shinken ne livre pas de collecteur de type "synchronizer-collector-linker" par défaut à l'installation ou à la mise à jour.


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

service shinken-synchronizer restart

Créer un nouveau collecteur synchronizer-collector-linker

Pour pouvoir configurer un module de type "synchronizer-collector-linker", il faut créer un nouveau fichier de configuration grâce au fichier d'exemple fourni par défaut.


  • Pour commencer, il faut choisir le nom du nouveau module : 
    • Pour l'exemple, on l'appelle "Mon-Collecteur-Synchronizer-Collector-Linker".
    • Remplacer dans l'exemple le mot "Mon-Collecteur-Synchronizer-Collector-Linker" par le nom qui a été choisi.
  • Puis il faut créer le fichier de configuration :
    • Copier le fichier de définition du collecteur d'exemple : /etc/shinken-user-example/configuration/daemons/synchronizers/sources/synchronizer-collector-linker/synchronizer-collector-linker-example.cfg dans le répertoire de définition des sources /etc/shinken/sources/.
      ( Exemple : /etc/shinken/sources/Mon-Collecteur-Synchronizer-Collector-Linker.cfg )


  • Ensuite, il faut modifier le fichier nouvellement créé pour configurer le nouveau collecteur.
    • Il faut vérifier que le fichier appartienne à l'utilisateur shinken et qu'il possède le droit d'édition. Si ce n'est pas le cas, il faut effectuer les commandes suivantes :

      chown shinken:shinken /etc/shinken/sources/Mon-Collecteur-Synchronizer-Collector-Linker.cfg
      chmod u+w  /etc/shinken/sources/Mon-Collecteur-Synchronizer-Collector-Linker.cfg
    • On change le nom du module en "Mon-Collecteur-Synchronizer-Collector-Linker" dans le fichier  /etc/shinken/sources/Mon-Collecteur-Synchronizer-Collector-Linker.cfg 

      ...          
          #======== source identity =========
          # Source name. Must be unique
          source_name         synchronizer-collector-linker-example
       ...
      
  • Ensuite, il faut ajouter le nouveau collecteur dans le démon de type "Synchronizer".
    • Dans notre exemple, on ajoute le collecteur de type "Mon-Collecteur-Synchronizer-Collector-Linker" au Synchronizer défini dans le fichier /etc/shinken/synchronizers/synchronizer-master.cfg

      define synchronizer {
          [...]
          sources                   Source 1, Source 2, Source 3, synchronizer-collector-linker
          [...]
      }
  • Puis pour finir, il faut redémarrer le Synchronizer pour que les modifications apportées à la configuration soient appliquées.

    service shinken-synchronizer restart

Il est possible d'avoir plusieurs collecteurs de type "synchronizer-collector-linker".  Il faut alors répéter les étapes précédentes, et donner un nom différent à chaque collecteur.

Configuration

Un exemple de configuration est disponible dans /etc/shinken-user-example/configuration/daemons/synchronizers/sources/synchronizer-collector-linker/synchronizer-collector-linker-example.cfg.

Exemple de fichier de configuration

#===============================================================================
# synchronizer-collector-linker
#===============================================================================
# Daemons that can load this source:
# - synchronizer
# This source is about loading remote synchronizers configurations
#===============================================================================

define source {


    #======== source identity =========
    # Source name. Must be unique
    source_name         synchronizer-collector-linker-example

    # Module type (to load module code). Do not edit.
    module_type         synchronizer-collector-linker

    # order: source order for a source imply if a source is before another source when merging data
    order               2

    # import_interval:  in minutes, what is the schedule import interval for this source.
    # note: 0 = don't schedule this source, will run only if an administrator launch it from the interface
    import_interval     5

    # enabled: is this source enabled or not
    enabled             1

    # description: display a description on the interface for this source
    description         This source is about loading remote Synchronizers configurations

    #======== Properties not stored ========
    # Do not remove _SE_UUID from this property unless you want hosts retrieved from remote sites to keep their _SE_UUID
    # in the main Shinken (where synchronizer-collector-linker is present)
    not_stored_properties           _SE_UUID

}

Détails des sections composant le fichier de configuration

Identification de la source

Il est possible de définir plusieurs instances de collecteur de type "synchronizer-collector-linker" dans une architecture Shinken.

  • Chaque collecteur doit avoir un nom différent.
    #======== source identity =========
    # Source name. Must be unique
    source_name         synchronizer-collector-linker-example

    # Module type (to load module code). Do not edit.
    module_type         synchronizer-collector-linker

NomTypeUnitéDéfautDescription
source_name 
Texte---synchronizer-collector-linker

Il est conseillé de choisir un nom en fonction de l'utilisation du module pour que la configuration soit simple à maintenir.

Caractères autorisés : lettres, chiffres, underscore ( _ ), et trait d'union ( - )

  • Doit être unique.
  • Doit commencer par une lettre.
  • D'une longueur maximum de 40 caractères.
module_type 
Texte---synchronizer-collector-linkerNe peut pas être modifié.

Fonctionnement de la source

define source { 
	...
    order              3
    import_interval    5
    enabled            1
    description        This source is about loading remote Synchronizers configurations
    ...
}
NomTypeUnitéDéfautDescription
order
Entier positif

---

2


L'ordre de la source dans l'interface de configuration et dans le mélange des sources ( voir la page Le mélange des sources & les clés de synchronisation (sync-key) ).


Si l'ordre est changé depuis l'Interface de Configuration, le fichier .cfg sera mis à jour.

 

import_interval

Entier positif

minute0

Délai écoulé entre les imports automatiques de la source. 

  • Si vaut 0, la source ne sera jamais exécutée automatiquement, uniquement manuellement. 
enabled
Booléen--- 0

Permet d'activer ou désactiver la source ( 1 pour activer, 0 pour désactiver ). 

Activer ou désactiver la source dans l'Interface de Configuration mettra à jour le cfg.

description
Texte---This source is about loading remote Synchronizers configurations

Description de la source qui apparaît dans l'interface du Synchronizer.

Propriétés non récupérées

Il est possible de définir des propriétés que la source ne devra pas récupérer. Ceci est utile si les instances Shinken distantes utilisent des propriétés propres à leur fonctionnement.

...     
    #======== Properties not stored ========
    # Do not remove _SE_UUID from this property unless you want hosts retrieved from remote sites to keep their _SE_UUID
    # in the main Shinken (where synchronizer-collector-linker is present)
    not_stored_properties           _SE_UUID 

...
NomTypeUnitéDéfautDescription
not_stored_properties
Texte---_SE_UUID

Empêche la récupération de certaines propriétés des hôtes récoltés.

Si plusieurs propriétés doivent être listées, les séparer par des virgules.

Exemple :

not_stored_properties _SE_UUID, realm, display_name 

Il est conseillé de laisser la valeur "_SE_UUID" et d'en rajouter d'autres si nécessaire. Si la valeur "_SE_UUID" est supprimée, les hôtes posséderont les mêmes "_SE_UUID" que sur le Shinken distants.