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 la collecte d'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épartis 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 nouveaux éléments 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ûre 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 s’il est défini, son entrée LDAP et son emplacement. Voir la configuration de la source Active Directory  et OpenLDAP

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 par le serveur VSphere, et 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 sur une API SOAP de VMWare, à travers une connexion HTTPS.  Pour configurer cette source voir Module de source synchronizer-collector-vmware

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. Pour configurer cette source voir Importer ses propres fichiers CFG.

Scan réseau 

La découverte par 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). Pour configurer cette source voir Collecteur Discovery ( Découverte réseau ).

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éseau (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ées depuis des hôtes déjà présents 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

Pour plus d'information voir Paramétrage de l'interface de Configuration

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 à l'Arbiter de joindre 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.
vmware__statistics_compute_enable1Cette variable permet de désactiver la mesure par le daemon de la charge CPU des ESX qui hébergent le daemon.
Peut-être, pratique dans le cas où les vmware-tools de la VM ne sont pas activés ou ne fournissent pas toutes les informations attendues.
enabledN/ACette variable est utilisée pour définir si le Synchronizer est activé ou non.


Exemple de définition d'un synchronizer

(warning) Il est conseillé d'éditer les fichiers .cfg avec l'encodage utf-8

#===============================================================================
# SYNCHRONIZER
#===============================================================================
# Description: The Synchronizer is responsible for:
# - Hosting the Configuration UI
#===============================================================================
define synchronizer {
# 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-synchronizer-b755204a5add11e5a7c6080027f08538
    _SE_UUID_HASH       95a53927e628ec6f01ac7bd173e29601
# End of Shinken Enterprise part


    synchronizer_name    synchronizer-master

    #host_name       server-hostname

    # DNS name or IP
    address         localhost
    port            7765

    # 1 = is a spare, 0 = is not a spare
    spare           0

    modules    	 Cfg_password, synchronizer-module-database-backup

    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                 Automatically added
    #  discovery              Automatically added
    #  listener-shinken       Automatically added
    #  server-analyzer        Automatically added
    #  cfg-file-shinken       Mandatory Standard Shinken Enterprise packs
    #  listener-rest          SAMPLE for REST listener
    #  active-dir-example     SAMPLE for active directory
    #  sync-vmware            SAMPLE for VMWare
    #  cfg-file-nagios        SAMPLE for nagios import
    #  openldap-example       SAMPLE for OpenLDAP import
    #  cfg-file-sample        SAMPLE for Shinken framework import
    sources 		  syncui,cfg-file-shinken,active-dir-example,sync-vmware,cfg-file-nagios,discovery,openldap-example,cfg-file-sample,listener-rest,server-analyzer

    # Taggers:
    #  ip-tags
    #  regexp-tags
    taggers		      ip-tags,regexp-tags


    #======== VMWare / ESXi ==========
    # 1 (default) = if vmware get the ESXi CPU stats value, 0 = do not get value
    vmware__statistics_compute_enable     1


    enabled    1
}