Le mélange des sources

Après la collecte des données, c’est l'étape de mélange des sources ( rappel la description des étapes de l'import des sources se trouve dans la page Modules de Sources ( imports ) et de Taggers ( qualification ) ).

  • Le mélange des sources permet de créer un élément dont la définition est répartie entre plusieurs sources.

  • Les clés de synchronisation permettent de choisir quelle définition va être fusionnée avec quelle autre définition.

    Si une définition possède au moins une clé de synchronisation en commun avec une autre définition alors ces 2 définitions fusionnent.


  • Les propriétés utilisées pour récupérer les clés de synchronisation dépendent du type de l'élément et de la source.
  • Les pages des sources listent les clés utilisées par défaut.

    Les éléments d'une même source possédant au moins une clé de synchronisation en commun doivent avoir toutes leurs clés de synchronisation identiques ( Exemple pour un hôte de la source cfg-file : même nom et même adresses ) sinon ces éléments seront en erreur.


Exemple d'un mélange de source

Exemple avec 2 sources :


Les 2 sources ont leurs clés de synchronisation configurées par défaut, c’est-à-dire :

Pour les hôtes de la source "Ma source d'import par fichier" : 

  • host_name ( le nom de l'hôte )
  • SE_UUID 
  • address

Pour les hôtes de la source Discovery :

  • host_name ( le nom de l'hôte )
  • address


Les 2 sources donnent les définitions suivantes : 

define host {
    host_name          Hote 1
    address            localhost
    propriété_commune  valeur1
    propriété1         valeur1
}


define host {
    host_name          Hote 2
    address            localhost
    propriété_commune  valeur2
    propriété2         valeur2
}


define host {
    host_name          Hote 1
    address            localhost
    propriété_commune  valeur1
    propriété1         valeur1
    propriété2         valeur2
} 


Lorsque la même propriété est définie dans plusieurs définitions, la valeur de l'hôte pris en compte sera celle dont la source a le plus petit numéro d'ordre.

Dans l'exemple, on voit que la propriété commune ( propriété_commune ) a pour valeur la première valeur définie ( "valeur1" et que le nom de l'hôte est "Hote 1"), car la source "Ma source d'import par fichier" à un ordre plus petit que la source "Discovery".

Les clés de synchronisation 

Définition

Une clé de synchronisation est la valeur d'une propriété d'une définition donnée par la source. Le choix des propriétés dont les valeurs vont servir de clé de synchronisation dépend de la source et du type d'élément.
Certaines sources permettent de choisir quelles propriétés seront utilisées comme clé de synchronisation. Le nom de l'élément et son SE_UUID sont toujours utilisés comme clé de synchronisation si la source est capable de fournir ces propriétés.


Exemple de cas où la source ne donne pas de SE_UUID :
La source Discovery n'est pas capable de fournir un SE_UUID donc cette source ne donne pas cette clé de synchronisation. Il est conseillé de ne pas importer les SE_UUID d'un autre Synchronizer avec la source synchronizer-collector-linker. Cela pourrait créer des conflits avec les éléments déjà importés.

Cas du SE_UUID

Parmi les clés de synchronisation d'un objet, le SE_UUID est traité d'une manière différente.

Lorsqu'un élément possède un SE_UUID dans sa définition, il est considéré comme unique dans le mécanisme d'import des sources, et il ne sera pas fusionné avec un élément ayant un SE_UUID différent. Il peut par contre toujours être fusionné avec des éléments sans SE_UUID ou avec d'autres éléments ayant le même SE_UUID.

C'est utile dans le cas où on veut définir 2 hôtes avec la même adresse par exemple. Le SE_UUID permet de dire qu'il s'agit de 2 hôtes distincts et ils ne seront pas fusionnés.

define host {

   # 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-hosts-60f9373a47d511e8a3c1080027a3ae8c
      _SE_UUID_HASH        61917cb49e8f3b524ee2e9482f59a2e9
   # End of Shinken Enterprise part

    host_name               Host 1
    address                 host_addr
}

define host {

   # 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-hosts-6454ba8a47d511e897f8080027a3ae8c
      _SE_UUID_HASH        bc7ea10870bdcb985dd1ba4dbcc62688
   # End of Shinken Enterprise part


    host_name               Host 2
    address                 host_addr
    retry_interval          4
    check_running_timeout   4
}

Les 2 hôtes ne seront pas fusionnés à cause de la présence du SE_UUID.

Un SE_UUID à la forme suivante:

_SE_UUID          core-type_element-identifiant_unique

  • type_element: Le type de l'élément sur lequel on veut spécifier ce SE_UUID. Les différentes valeurs possibles sont les différents types définissables par fichier de configuration: 
    • clusters
    • clustertpls
    • hosts
    • hosttpls
    • hostgroups
    • serviceshosts
    • serviceshosttpls
    • servicesclusters
    • servicesclustertpls
    • servicetpls
    • contacts
    • contacttpls
    • contactgroups
    • escalations
    • notificationways
    • commands
    • businessimpactmodulations
    • macromodulations
    • resultmodulations
    • timeperiods 
  • identifiant_unique: Chaine de caractères ( alphanumériques ) permettant d'identifier de manière unique l'élément.

Voir les clés de synchronisation

Les clés de synchronisation sont visibles depuis l'onglet "Détail de la dernière exécution" dans la page de configuration des sources



Modification du mode de mélange des sources

Grâce au paramètre "Mode de mélange des sources" ( merge_mode dans le fichier de configuration de la source ) il est possible de modifier comment est gérée une source lors de l'étape du mélange des sources.

La valeur par défaut est : all

Les valeurs possibles sont : 

Nom des valeurs dans l'interfaceNoms des valeurs dans le fichierDescription
Ne fusionne pas avec les autres


dont_merge_with_other


Les éléments récoltés par cette source seront importés, mais pas fusionnés avec les autres sources.

Ce qui implique que si un élément de cette source possède une clé de synchronisation commune avec une autre source alors ces éléments ne pourront être importés et provoqueront un conflit.

A utiliser si votre source vous donne un élément complet et qui ne doit pas être modifié ni par l'interface de configuration ni d'autre source.


Seulement avec "Syncui"


only_with_syncui



Si un élément importé par cette source est aussi récolté par "Syncui", ils seront fusionnés pour ne donner qu'un élément.

A utiliser si votre source vous donne un élément complet et que vous voulez le modifier via l'interface de configuration.


Tout sauf Syncui


all_without_syncui



Si 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.

A utiliser si votre source vous donne un élément à compléter avec d'autres sources, mais qui ne doit pas être modifié par l'interface de configuration.


Toutes


all



Si un même élément est importé par plusieurs sources, alors les éléments seront fusionnés pour n'en donner qu'un.

Cas par défaut : les éléments de cette source seront complétés avec les autres sources et l'interface de configuration.



Syncui est une source qui importe tous les éléments de l'interface de configuration.

Chaque fois qu'une source est importée, elle l'est aussi. Si une source ne se mélange pas avec Syncui, les modifications faites dans l'interface de configuration sur les propriétés qui n'ont pas été importées de cette source apparaîtront en différence.


Les sources désactivées ne sont pas prises en compte lors du mélange des sources.


Mode de mélange : "Toutes"

Les éléments de la source avec le mode de mélange "Toutes" ( all ) seront fusionnés avec les éléments trouvés lors du dernier import des autres sources. Y compris Syncui, soit les dernières modifications de l'interface de configuration.

Vous trouverez ci-après un exemple de mélange de sources avec l'option "Toutes".



Mode de mélange :  "Tout sauf Syncui"

Les éléments de la source avec le mode de mélange "Tout sauf Syncui" ( all_without_syncui ) seront fusionnés avec les éléments des autres sources sauf avec la source Syncui. 

  • Les modifications faites dans l'interface de configuration sur les propriétés qui n'ont pas été importées de cette source apparaîtront en différence.

Vous trouverez ci-après un exemple de mélange de sources avec l'option "Tout sauf Syncui"




Quand la source Syncui provoque un conflit, elle n'est pas mélangée avec les autres sources.


Mode de mélange : "Ne fusionne pas avec les autres"

Les éléments de la source avec le mode de mélange "Ne fusionne pas avec les autres" ( dont_merge_with_other ) ne seront pas fusionnés avec les éléments des autres sources y compris la source Syncui. 

  • Les modifications faites dans l'interface de configuration sur les propriétés qui n'ont pas été importées de cette source apparaîtront en différence.
  • Et les éléments des autres sources ne pourront pas fusionner avec les éléments de cette source. Ce qui implique que si un élément de cette source possède une clé de synchronisation commune avec une autre source, alors ces éléments ne pourront pas être importés et provoqueront un conflit.

Vous trouverez ci-après un exemple de mélange de sources avec l'option "Ne fusionne pas avec les autres"



Mode de mélange : "Seulement avec "Syncui"

Les éléments de la source avec le mode de mélange "Seulement avec "Syncui" ( only_with_syncui ) seront fusionnés seulement avec la source Syncui.

  • Les éléments des autres sources ne pourront pas fusionner avec les éléments de cette source. Ce qui implique que si un élément de cette source possède une clé de synchronisation commune avec une autre source alors ces éléments ne pourront être importés et provoqueront un conflit.

Vous trouverez ci-après un exemple de mélange de sources avec l'option "Seulement avec "Syncui".