Rôle

Le Synchronizer met à disposition une interface web pour gérer les éléments ( hôtes, checks, ... )  en supervision et la politique de supervision.

Il permet aussi d'automatiser collecte information pour mettre en supervision plus rapidement des équipements, ou détecter des modifications sur les existants. 

Les modules sources qui permettent de "collecter" ces informations sont réparties en 3 types:

  • Les Collecteurs
    • Interroge une source et collecte les informations des éléments

  • Les écouteurs
    • Reçoivent des messages venant de l’extérieur pour ajouter de nouveau élément ou modifier des éléments existants.

  • Les Analyseurs
    • Interroge directement élément par élément pour récupérer des informations.



Les collecteurs

Active Directory / OpenLDAP

La découverte de l'Active Directory ou OpenLDAP se fait avec un compte domaine et ne nécessite qu'un accès en lecture. La connexion peut être faite dans LDAPS pour être sûr que la connexion est sécurisée. 

Il est possible de définir un niveau haut d'organisation (OU = Organizational Unit) afin de lister les éléments seulement sous ce niveau.

Les informations que ce module récupère sont les noms de serveurs, FDQN, l'OS du serveur, et si il est défini, son entrée LDAP et son emplacement. La configuration pour la source Active Directory est située ici et OpenLDAP ici.

VSphere de VMWare

La découverte VSphere est faite pour trouver les serveurs physiques (ESX) et leurs serveurs virtuels. Elle va également récupérer leur OS et leur adresse IP, mais seulement si les outils VMware sont activés et tournent sur le serveur virtuel. 

La connexion du Synchronizer vers VMware connexion se fait toujours via le serveur VSphere, et ne nécessite qu'un accès en lecture. Le serveur Shinken Enterprise ne nécessite pas un accès direct aux serveurs ESX.

La communication de Shinken Enterprise vers VSphere se fait via une API SOAP de VMWare, à travers une connexion HTTPS. La configuration pour cette source est située dans une autre page.

Fichiers de configuration Nagios ou Shinken Framework

Shinken Enterprise est capable de charger des fichiers de configuration Nagios ou Shinken Framework. Il va automatiquement charger les objets définis. La configuration pour cette source est située dans une autre page.

Scan réseau 

La découverte via scan réseau est optionnelle. Elle se fait via une commande nmap, lancée par le Synchronizer. 

Les scans sont faits sur les ports TCP et UDP. Il va également essayer de récupérer des données complémentaires depuis les serveurs ou les services qui tournent dessus (il utilise l'option -O dans la commande nmap). La configuration pour cette source est située dans une autre page.

Les écouteurs

Un écouteur est une source qui reçoit des informations à partir d'une application tierce. Cette source est donc à l'écoute de nouveaux éléments grâce à des appels réseaux (par exemple une API Rest)

Les Analyseurs

Les Analyseurs permettent de remonter des informations depuis les hôtes après avoir exécuté des scripts d'analyses.

Les Analyses peuvent être lancés depuis des hôtes déjà présent dans Shinken, afin d'enrichir les données présentes ou bien depuis une plage réseau.

Stockage de données dans la configuration

Toutes les données découvertes par le Synchronizer sont stockées dans une base Mongodb. Si possible, il est préférable que la base soit sur le même serveur que le Synchronizer ; elle n'est pas partagée avec d'autres démons, donc ses communications doivent être limitées au serveur local.


Configuration

Configuration de l'interface et de ses accès

L'interface de configuration est stockée par le Synchronizer, et utilise un autre port TCP pour l'UI de visualisation. Vous pouvez utiliser 2 systèmes d’accréditation:

  • gestion directe dans l'interface de configuration
  • gestion des droits avec les comptes Active directory ou OpenLDAP. Le démon va alors utiliser les connexions LDAP pour vérifier les autorisations. La procédure est ici.

Les utilisateurs non-admin auront une visibilité restreinte sur les hôtes auxquels ils sont attachés directement, ou au groupe auquel ils sont rattachés. 

Cette interface utilise la même base Mongodb que le Synchronizer. Le port par défaut est le 7766.


InterfaceDémonPort
ConfigurationSynchronizer7766

Plus d'information sur le paramétrage de l'interface de configuration ici.

Résumé des connexions du Synchonizer


SourceDestinationPortProtocoleNote
ArbiterSynchronizer7765HTTP/HTTPS 
SynchronizerSynchronizer27017TCP/IPAccès à la base Mongo

 

Connexions possibles liées aux différentes sources :

SourceConnexion àPortProtocoleNote
SynchronizerActive Directory ou OpenLDAP389LDAP
SynchronizerActive Directory ou OpenLDAP636LDAPSAccès en lecture seule
SynchronizerVSphere443HTTPSAccès en lecture seule
SynchronizerScan RéseauxTCP/IP

 

Descriptions des variables


PropertyDefaultDescription
synchronizer_nameN/ACette variable est utilisée pour identifier le nom court du Synchronizer auquel les données sont attachées.
addressN/ACette directive est utilisée pour définir l'adresse permettant à ce que l'Arbiter joigne ce Synchronizer. Par défaut "localhost", changez le par un nom DNS ou une adresse IP.
port7765Cette directive est utilisée pour définir le port TCP utilisé par le démon.
spare0Cette variable est utilisée pour définir si le Synchronizer doit être géré en tant que spare (chargera la configuration seulement si le master est en erreur). La valeur par défaut est 0 (master).
modulesN/ACette variable est utilisée pour définir tous les modules que le synchronizer va charger.
use_ssl0Cette variable est utilisée pour définir si le Synchronizer doit être contacté en HTTPS (*1*) ou HTTP (*0*). La valeur par défaut est *0* (HTTP).
sourcesN/A

Liste des sources que le synchronizer va charger.

taggersN/A Liste des taggers que le synchronizer va charger. 
enabledN/ACette variable est utilisée pour définir si le Synchronizer est activé ou non.


Exemple de définition d'un synchronizer


#===============================================================================
# SYNCHRONIZER
#===============================================================================
# Description: The Synchronizer is responsible for:
# - Hosting the Configuration UI
#===============================================================================
define synchronizer {

    synchronizer_name    synchronizer-master
    #host_name       node1       ; CHANGE THIS if you have several Arbiters
    address         node1.mydomain   ; DNS name or IP
    port            7765
    spare           0           ; 1 = is a spare, 0 = is not a spare

    modules      Cfg_password

    use_ssl          0

    ## Uncomment these lines in a HA architecture so the master and slaves know
    ## how long they may wait for each other.
    #timeout              3   ; Ping timeout
    #data_timeout         120 ; Data send timeout
    #max_check_attempts   3   ; If ping fails N or more, then the node is dead
    #check_interval       60  ; Ping node every N seconds

    sources               syncui,cfg-file-shinken,active-dir-example,sync-vmware,cfg-file-nagios,discovery,openldap-example
    taggers               ip-tags,regexp-tags


    enabled    1 ;   If you set enabled 0, Don't forget to disable daemon on distant host
}