Description

Les sources de type synchronizer_collector_excel permettent d'importer des éléments ( hôte, modele d'hôte, check, utilisateurs ... ) à partir d'un fichier Excel.

Les formats de fichier supportés sont : 

  • Spreadsheet ( *.xls ) : Format des anciennes versions d'Excel.
  • Excel Workbook ( *.xlsx ) : Format des nouvelles versions d'Excel, à partir d'Excel 2007.


Cette page vous explique comment définir ce type de collecteur ( pour l'utilisation du collecteur, voir la page TODO ).

Format des données

Il est possible d'adapter la configuration du format des données pour importer votre fichier sans modification ( autre que l'ajout d'un onglet de configuration ).

Un exemple de fichier à importer est fourni à l’emplacement suivant : 

/etc/shinken-user-example/configuration/daemons/synchronizers/sources/synchronizer-collector-excel/source-data-synchronizer-collector-excel/Excel import file.xlsx

Description de la configuration du format des données

Le fichier doit contenir un onglet "Configuration" ( en anglais : "Configuration" ) qui contiendra le format d'import des éléments.

  • La case E2 doit contenir la version de la description du format. La seule valeur possible pour le moment est "V1".
  • La case E3 doit contenir la langue utilisée par ce fichier. Les valeurs possibles sont "EN" ( pour anglais ) ou "FR" ( pour français ).
  • La ligne 5 doit lister les types d'éléments à charger.
    • La première valeur est dans la colonne B et les valeurs suivants sont toutes les cinq colonnes ( "5B", "5G", "5L" ... ).
    • Les valeurs possibles sont : 
      • Hôte ( en anglais Host )
      • Modèle d'hôte ( en anglais Host template )
      • Groupe d'hôtes ( en anglais Host group )
      • Cluster ( en anglais Cluster )
      • Modèle de cluster ( en anglais Cluster template )
      • Utilisateur ( en anglais User )
      • Modèle d'utilisateur ( en anglais User template )
      • Groupe d'utilisateur ( en anglais User group )
      • Check appliqué à l'hôte ( en anglais Check applied on Host )
      • Check appliqué au cluster ( en anglais Check applied on Cluster )
      • Check appliqué au modèle d'hôte ( en anglais Check applied on Host template )
      • Check appliqué au modèle de cluster ( en anglais Check applied on Cluster template )
      • Modèle de check ( en anglais Check template )
      • Méthode de notification ( en anglais Notification Way )
      • Modulation de données ( en anglais Data modulation )
      • Modulation de résultats ( en anglais Result modulation )
      • Modulation d'impact métier ( en anglais Business impact modulation )
      • Escalade ( en anglais Escalation )
      • Commande ( en anglais Command )
      • Période de temps ( en anglais Timeperiod )
  • Les lignes suivantes décrivent le format des éléments : 
    • La ligne 7 contient pour chaque type d'élément le nom des colonnes suivant : 
      • "Type" - "Propriétés dans Excel" - "Propriétés dans Shinken"

    • Les lignes suivantes décrivent le format de l'onglet, les valeurs possibles sont :
      • "Première ligne" ( en anglais : "First line" ). Ligne ou commence la liste des éléments. Utile si vous avez un en-tête de plusieurs lignes sur les onglets avec vos éléments à importer.
      • "Onglet" ( en anglais : "Tab" ). Nom de l'onglet qui contient les éléments de ce type ( précisé en ligne 5 )
      • "Colonne" ( en anglais : "Column" ). Nom de la colonne, puis Nom de la clé d'import dans Shinken ( visible dans l'aide ). 


Activation de la source

Ajouter un collecteur de type synchronizer_collector_excel

Vous pouvez avoir plusieurs sources du type synchronizer_collector_excel, pour importer plusieurs fichiers.

Choisissez un nom pour ce nouveau collecteur.

  • Pour l'exemple, nous allons l'appeler "Mon-Collecteur-Synchronizer-Excel".
  • Remplacer dans l'exemple le mot "Mon-Collecteur-Synchronizer-Excel" par le nom que vous aurez choisi.


Pour ajouter une autre source, vous devez :

  • Copier le fichier de définition de la source d'exemple : /etc/shinken-user-example/configuration/daemons/synchronizers/sources/synchronizer-collector-excel/synchronizer-collector-excel-example.cfg dans le répertoire de définition des sources /etc/shinken/sources/.
    ( Exemple : /etc/shinken/sources/collector__synchronizer-collector-excel__Mon-Collecteur-Synchronizer-Excel.cfg )

    cp /etc/shinken-user-example/configuration/daemons/synchronizers/sources/synchronizer-collector-excel/synchronizer-collector-excel-example.cfg /etc/shinken/sources/collector__synchronizer-collector-excel__Mon-Collecteur-Synchronizer-Excel.cfg
  • Ouvrer ce fichier ( collector__synchronizer-collector-excel__Mon-Collecteur-Synchronizer-Excel.cfg ) :
    • Modifier la ligne source_name en remplaçant le nom par défaut "synchronizer-collector-excel-example" par le nom que vous avez choisi "Mon-Collecteur-Synchronizer-Excel".

      define synchronizer {
          [...]
          source_name         Mon-Collecteur-Synchronizer-Excel
           [...]
      }
  • Ajouter le nom de la nouvelle source au Synchronizer en modifiant le paramètre sources du fichier /etc/shinken/synchronizers/synchronizer-master.cfg.

    define synchronizer {
        [...]
        sources                   Source 1, Source 2, Source 3, Mon-Collecteur-Synchronizer-Excel
        [...]
    }
  • Redémarrez le Synchronizer pour qu'il puisse prendre en compte cette nouvelle source.


Configuration

Vous trouverez un exemple dans /etc/shinken-user-example/configuration/daemons/synchronizers/sources/synchronizer-collector-excel/synchronizer-collector-excel-example.cfg

Exemple de fichier de configuration

# CFG_FORMAT_VERSION 1 ( SHINKEN : DON'T TOUCH THIS LINE )

#================================================================================
# synchronizer-collector-excel
#================================================================================
# Daemons that can load this source:
# - synchronizer
# This collector import elements from an Excel file
#================================================================================

define source {

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    SOURCE IDENTITY    ────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Source name [ Must be unique ]                                                      [ MANDATORY ] ───
    # ───       /!\ Must be unique                                                                          ───
    # ───       /!\ Forbidden characters ?&"'$/#\\;                                                         ───
    # ───       /!\ Length of the name must not exceed 40 characters                                        ───
    #                                                                                                       ───
    source_name                                         synchronizer-collector-excel-example

    # ─── Module type [ Do not edit ]                                                         [ MANDATORY ] ───
    # ───                                                                                                   ───
    module_type                                         synchronizer_collector_excel

    # ─── Display a description on the interface for this source                                            ───
    # ───                                                                                                   ───
    description                                         This source is about loading element from a Excel file.

    # ─── Interval between each automatic import                                                            ───
    # ─── Interval in minutes between each automatic import of the source                                   ───
    # ───       -> Setting it to 0 will deactivate the automatic import and can only be done manually       ───
    #           Default : 0                                                                                 ───
    #                                                                                                       ───
    # import_interval                                     0

    # ─── Order of priority when merging data                                                               ───
    # ─── The final element will take the value of the element from the source with the highest priority    ───
    # ───       -> Priority at source with the order closest to 1                                           ───
    #           Default : 99                                                                                ───
    #                                                                                                       ───
    # order                                               99

    # ─── Make the source active                                                                            ───
    #                                                                                                       ───
    #           ...     : 0 => disabled                                                                     ───
    #           Default : 1 => enabled                                                                      ───
    # ───                                                                                                   ───
    # enabled                                             1

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ───────────────────────────────────────    MERGE OPTIONS    ─────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Behaviour of mixing of sources                                                                    ───
    #                                                                                                       ───
    #           Default : all                     => Merge with all source                                  ───
    #           ...     : dont_merge_with_other   => Don't merge with other source                          ───
    #           ...     : only_with_syncui        => Merge only with syncui                                 ───
    #           ...     : all_without_syncui      => Merge with all source without syncui                   ───
    # ───                                                                                                   ───
    # merge_mode                                          all

    # ─── New element calculation                                                                           ───
    #                                                                                                       ───
    #           Default : authorized ( Authorized the calculation of new items )                            ───
    #           ...     : never_new  ( Do not compute new items )                                           ───
    # ───                                                                                                   ───
    # compute_new_element                                 authorized

    # ─── Element difference calculation                                                                    ───
    #                                                                                                       ───
    #           Default : authorized       ( Authorized the calculation of differences )                    ───
    #           ...     : never_difference ( Do not compute differences )                                   ───
    # ───                                                                                                   ───
    # compute_element_difference                          authorized

    # ─── Specific treatment with elements that are no longer present in the source                         ───
    #                                                                                                       ───
    #           Default : disabled                                                                          ───
    #           ...     : delete_if_missing_in_all_sources                                                  ───
    #           ...     : delete_if_missing_in_this_source                                                  ───
    # ───                                                                                                   ───
    # compute_deleted_element_not_in_source               disabled

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    PUT IN OPTIONS    ─────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Targeted spaces to put elements                                                                   ───
    #                                                                                                       ───
    #           Default : source_space                  => Available for staging                            ───
    #           ...     : staging                       => Saved in staging                                 ───
    #           ...     : production                    => Saved in staging                                 ───
    #                                                      Saved in production                              ───
    #           ...     : production_and_reload_arbiter => Saved in staging                                 ───
    #                                                      Saved in production                              ───
    #                                                      Available to monitoring                          ───
    # ───                                                                                                   ───
    # put_in                                              source_space

    # ─── User responsible of import                                                                        ───
    # ───       accepted name : Only admin shinken name                                                     ───
    #                                                                                                       ───
    #           Default : admin                                                                             ───
    # ───                                                                                                   ───
    # put_in_user                                         admin

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────    EXCEL SPECIFIC OPTIONS    ─────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Path of the excel file to load                                                      [ MANDATORY ] ───
    # ───                                                                                                   ───
    excel_file_path                                     /etc/shinken-user/source-data/source-data-synchronizer-collector-excel/Excel import file.xlsx

}



Détails des sections composant le fichier de configuration

Identification du module de source

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    SOURCE IDENTITY    ────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Source name [ Must be unique ]                                                      [ MANDATORY ] ───
    # ───       /!\ Must be unique                                                                          ───
    # ───       /!\ Forbidden characters ?&"'$/#\\;                                                         ───
    # ───       /!\ Length of the name must not exceed 40 characters                                        ───
    #                                                                                                       ───
    source_name                                         synchronizer-collector-excel-example

    # ─── Module type [ Do not edit ]                                                         [ MANDATORY ] ───
    # ───                                                                                                   ───
    module_type                                         synchronizer_collector_excel

    # ─── Display a description on the interface for this source                                            ───
    # ───                                                                                                   ───
    description                                         This source is about loading element from a Excel file.

    # ─── Interval between each automatic import                                                            ───
    # ─── Interval in minutes between each automatic import of the source                                   ───
    # ───       -> Setting it to 0 will deactivate the automatic import and can only be done manually       ───
    #           Default : 0                                                                                 ───
    #                                                                                                       ───
    # import_interval                                     0

    # ─── Order of priority when merging data                                                               ───
    # ─── The final element will take the value of the element from the source with the highest priority    ───
    # ───       -> Priority at source with the order closest to 1                                           ───
    #           Default : 99                                                                                ───
    #                                                                                                       ───
    # order                                               99

    # ─── Make the source active                                                                            ───
    #                                                                                                       ───
    #           ...     : 0 => disabled                                                                     ───
    #           Default : 1 => enabled                                                                      ───
    #                                                                                                       ───
    # enabled                                             1

Il est possible de définir plusieurs instances de module de type synchronizer-collector-vmware dans votre architecture Shinken.

  • Chaque instance devra avoir un nom unique.
NomTypeUnitéDéfautCommentaire
source_name
Texte

---

synchronizer-collector-excel-example

Nous vous conseillons de choisir un nom en fonction de l'utilisation du module pour que votre configuration soit simple à maintenir.

Chaîne de caractères composée de lettres, de chiffres et des caractères _  et -  :

  • Doit être unique,
  • Doit commencer par une lettre,
  • D'une longueur maximum à 40 caractères,
  • Ne doit pas contenir le caractère "$".
module_type
Texte

---

synchronizer_collector_excel

Ne peut être modifié.

description	
Texte

---


Contient une description de la source qui vous permet de retrouver l'objectif de cette source.

import_interval

Entier positif

minute

0

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

  • Si 0, l'import de la source ne sera jamais exécuté automatiquement( L'import ne pourra être effectué uniquement manuellement ).
order
Entier positif--- 4

L'ordre de la source dans l'interface de configuration (  A  un impact dans la fusion des données lors des imports de sources  ).

 

Si vous changez l'ordre depuis l'interface ( page d’accueil ), le fichier .cfg sera mis à jour.

enabled	
Booléen

---

1

Permet d'activer/désactiver la source.

Si vous activez/desactivez la source depuis l'interface ( page d’accueil ), le fichier .cfg sera mis à jour.

Options de mélange des sources

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ───────────────────────────────────────    MERGE OPTIONS    ─────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Behaviour of mixing of sources                                                                    ───
    #                                                                                                       ───
    #           Default : all                     => Merge with all source                                  ───
    #           ...     : dont_merge_with_other   => Don't merge with other source                          ───
    #           ...     : only_with_syncui        => Merge only with syncui                                 ───
    #           ...     : all_without_syncui      => Merge with all source without syncui                   ───
    #                                                                                                       ───
    # merge_mode                                          all

    # ─── New element calculation                                                                           ───
    #                                                                                                       ───
    #           Default : authorized ( Authorized the calculation of new items )                            ───
    #           ...     : never_new  ( Do not compute new items )                                           ───
    #                                                                                                       ───
    # compute_new_element                                 authorized

    # ─── Element difference calculation                                                                    ───
    #                                                                                                       ───
    #           Default : authorized       ( Authorized the calculation of differences )                    ───
    #           ...     : never_difference ( Do not compute differences )                                   ───
    #                                                                                                       ───
    # compute_element_difference                          authorized

    # ─── Specific treatment with elements that are no longer present in the source                         ───
    #                                                                                                       ───
    #           Default : disabled                                                                          ───
    #           ...     : delete_if_missing_in_all_sources                                                  ───
    #           ...     : delete_if_missing_in_this_source                                                  ───
    #                                                                                                       ───
    # compute_deleted_element_not_in_source               disabled     
Mode de mélange des sources

Option qui définit le mode de mélange entre les hôtes récupérés de cette source et les hôtes des autres sources ( voir la page Voir la configuration du module ( synchronizer-collector-vmware ) ).

    # ─── Source merge mode                                                                                 ───
    #   - all                   : Merge with all source ( Default )                                         ───
    #   - dont_merge_with_other : Don't merge with other source                                             ───
    #   - only_with_syncui      : Merge only with syncui                                                    ───
    #   - all_without_syncui    : Merge with all source without syncui                                      ───
    # merge_mode                                        all
    
NomTypeUnitéDéfautCommentaire
merge_mode

Enumération

---

all

Ce paramètre peut avoir les valeurs suivantes :

NomDescription
dont_merge_with_otherLes éléments récoltés par cette source seront importés, mais pas fusionnés avec les autres sources. S'il existe le même élément importé par une autre source, l'élément ne sera pas importé.
only_with_syncuiSi un même élément existe déjà dans "Syncui", ils seront tous les deux fusionnés pour n'en donner qu'un.
all_without_syncuiSi un même élément est importé par plusieurs sources ( à part "Syncui" ), alors les éléments seront fusionnés pour n'en donner qu'un.
all Si un même élément est importé par plusieurs sources, alors les éléments seront fusionnés pour en donner qu'un.

À noter:  Syncui est une source ( interne à shinken ) qui importe tous les éléments de l'interface de configuration. Chaque fois qu'une source est importée, elle l'est aussi.

Détecter les nouveaux éléments

Les éléments proposés par la source sont soumis au calcul des nouveautés ( Voir la page  Modules de Sources ( imports ) et de Taggers ( qualification ) ).

    # ─── Detecting new elements                                                                            ───
    #   - authorized ( Default )                                                                            ───
    #   - never_new                                                                                         ───
    # compute_new_element                               authorized
NomTypeUnitéDéfautCommentaire

compute_new_element



Énumération---authorized 

Ce paramètre peut avoir les valeurs suivantes :

NomDescription
authorized  L'option est activée ⇒ le mécanisme de calcul des nouveautés analysera les éléments de la source pour identifier les nouveaux éléments par rapport à l'espace de données Staging.
never_newL'option est désactivée ⇒ les éléments de la source n’apparaîtront pas en tant que nouveau, même s'ils n'ont jamais été importés par rapport à l'espace de données Staging.
Calculer les différences

Les éléments proposés par la source sont soumis au calcul des différences ( Voir la page Modules de Sources ( imports ) et de Taggers ( qualification ) ).

    # ─── Calculate the differences                                                                         ───
    #   - authorized ( Default )                                                                            ───
    #   - never_difference                                                                                  ───
    # compute_element_difference                        authorized   



NomTypeUnitéDéfautCommentaire
compute_element_difference
Enumération--- authorized 

Ce paramètre peut avoir les valeurs suivantes :

NomDescription
authorized  L'option est activée ⇒ le mécanisme de calcul des différences analysera les éléments de la source pour identifier toute différence par rapport à l'espace de données Staging.
never_differenceL'option est désactivée ⇒ les éléments de la source n’apparaîtront pas en tant que différence, même s'ils possèdent des différences par rapport à l'espace de données Staging.
Détecter les éléments qui ne sont plus présent dans la source

Permet de proposer en suppression, les éléments qui ne sont plus présents dans la ou les source(s).

Cette option peut être activée que si cette source met directement dans l'espace "Staging" ou "Production" ses éléments importés.

    # ─── Detect elements that are no longer present in the source                                          ───
    #   - disabled ( Default )                                                                              ───
    #   - delete_if_missing_in_all_sources                                                                  ───
    #   - delete_if_missing_in_this_source                                                                  ───
    # compute_deleted_element_not_in_source             disabled   
NomTypeUnitéDéfautCommentaire
compute_deleted_element_not_in_source
Enumération--- disabled

Ce paramètre peut avoir les valeurs suivantes :

NomDescription
disabled L'option est activée ⇒ le mécanisme de calcul des différences analysera les éléments de la source pour identifier toute différence par rapport à l'espace de données Staging.
delete_if_missing_in_all_sourcesL'option est désactivée ⇒ les éléments de la source n’apparaîtront pas en tant que différence, même s'ils possèdent des différences par rapport à l'espace de données Staging.
delete_if_missing_in_this_sourceLes éléments qui ne sont plus présents dans cette source seront proposés à la suppression.

Choix de l'espace d'import des éléments

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    PUT IN OPTIONS    ─────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Targeted spaces to put elements                                                                   ───
    #   - source_space                  : Available for staging ( Default )                                 ───
    #   - staging                       : Saved in staging                                                  ───
    #   - production                    : Saved in staging                                                  ───
    #                                     Saved in production                                               ───
    #   - production_and_reload_arbiter : Saved in staging                                                  ───
    #                                     Saved in production                                               ───
    #                                     Available to monitoring                                           ───
    # put_in                                            source_space

    # ─── User responsible of import                                                                        ───
    # ───          accepted name : Only admin shinken name                                                  ───
    # >>> admin  ( Default )                                                                                ───
    # put_in_user                                       admin
 
Mettre dans l'espace

Permet d'appliquer les différences et d'importer les nouveaux éléments de cette source directement dans l'espace "Staging" ou "Production", ou bien de les laisser dans l'espace de calcul des sources comme par défaut.

NomTypeUnitéDéfautCommentaire
put_in
Enumération--- source_space

Ce paramètre peut avoir les valeurs suivantes :

NomDescription
source_spaceLes éléments sont sauvegardés dans l'espace de données "Sources". Cet espace sera comparé avec l'espace de données "Staging" afin de calculer les nouveautés et les différences.
staging Les éléments sont sauvegardés dans les espaces de données "Espace de calcul des Sources" et "Staging".
productionLes éléments sont sauvegardés dans les espaces de données "Espace de calcul des Sources", "Staging" et "Production".
production_and_reload_arbiterLes éléments sont sauvegardés dans les espaces de données "Espace de calcul des Sources", "Staging" et "Production".
L'Arbiter est redémarré après l'import afin de soumettre les changements à la supervision.

À noter : Une source avec le paramètre "put in" à la valeur "production" ou "production_and_reload_arbiter" ne poussera en production que les changements qui proviennent de la source et non tous les changements à appliquer en production ( tous les changements visibles dans la page de production ).

Ce qui implique que si un utilisateur supprime un élément importé par une source avec le paramètre "put_in" à la valeur "production" ou "production_and_reload_arbiter", alors que l'élément est réimporté par la source. Il y aura en production 2 éléments avec le même nom, car la suppression manuelle de l'élément ne sera pas prise en compte, ce qui provoquera une erreur.
Une source avec l'option "put_in" à "production_and_reload_arbiter" ne redémarrera l'Arbiter que si elle a des modifications à pousser en production.

Utilisateur utilisé pour la sauvegarde des changements

Option qui permet de choisir l'utilisateur qui apparaîtra comme étant le dernier à avoir mis à jour les éléments.

À Noter :  l'utilisateur doit être obligatoirement un administrateur Shinken.

NomTypeUnitéDéfautCommentaire
put_in_user
Texte--- shinken-core La valeur de ce paramètre est mise à jour avec l'utilisateur ayant fait la dernière modification sur les éléments en "Nouveau" et les éléments en "Différence".

Chemin du fichier Excel

Ce chapitre liste tous les paramètres qui sont spécifiques aux sources de type synchronizer_collector_excel :

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────    EXCEL SPECIFIC OPTIONS    ─────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Path of the excel file to load                                                      [ MANDATORY ] ───
    # ───                                                                                                   ───
    excel_file_path                                     /etc/shinken-user/source-data/source-data-synchronizer-collector-excel/Excel import file.xlsx
NomTypeUnitéDéfautCommentaire
excel_file_path
Texte------

Correspond au chemin du fichier Excel à charger.

La source peut charger des fichiers *.xls ou *.xlsx