Le mélange des sources

Apres la collecte des données c'est l'étape de mélange des sources. Voir Modules d'import ( Sources ) et de qualification ( Taggers ) pour avoir description des étapes de l'import des sources.

Le mélange des sources permet de permet de crée 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ées 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é 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 listes les clé utilisées par défaut.


Les éléments d'une même source qui ont au moins une clé de synchronisation commune doivent avoir toutes leurs clés de synchronisation identique ( 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 leur clé de synchronisation configuré 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 donne 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éfinition, la valeur de l'hôte est celle dont la source a le plus petit numéro d'ordre.

Dans l'exemple, on voit que la propriété commune a pour valeur la première valeur définie, soit "valeur1" et que le nom de l'hôte est "Hote 1".

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.

Certaine source permet de choisir qu'elles propriétés sera utilisé comme clé de synchronisation .

Le nom de l'élément et son SE_UUID sont toujours utilisé 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 cette clé de synchronisation 
  • Il est conseillé de ne pas importé les SE_UUID d'un autre synchronizer avec la source synchronizer-collector-linker. Donc la source ne donnera plus dans cas de SE_UUID donc le SE_UUID ne pourra pas être utilisé comme clé de synchronisation.

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 visible depuis l'onglet Détail de la dernière exécution dans la page de configuration des sources