Sommaire

Introduction

Dans l'interface de Configuration, les sources peuvent être utilisées pour importer des éléments ( voir Définition et utilisations des sources pour plus de détail). Chaque objet trouvé dans les sources est ensuite affiché en tant que Nouveau ou présente des Différences sur les objets déjà présents dans Staging.

Lors de l'import d'éléments depuis les sources, des erreurs ou avertissements peuvent être remontés. Ces différents avertissements et leur résolution sont décrits dans les sections suivantes.

Impossible d'écrire dans le fichier de configuration

Lors de l'import d'un fichier de configuration, Shinken peut avoir besoin d'écrire dedans pour y mettre des informations sur les objets qu'il vient d'importer (pour éviter de les importer en double).

Si Shinken n'a pas les droits d'écriture sur un fichier de configuration qu'il essaye d'importer, l'import de la source est stoppé et le message d'erreur suivant est affiché.


Pour résoudre ce problème, il faut donner les droits en écriture sur le fichier en question (le chemin vers le fichier est présent dans le message d'erreur). La manière la plus simple est d'attribuer la propriété du fichier à l'utilisateur Shinken:

chown shinken:shinken /etc/shinken-user/source-data/cfg-documentation/edition_element/commands.cfg

D'autres méthodes permettant à l'utilisateur "shinken" d'écrire dans le fichier de configuration peuvent être utilisées.


Erreur listée pour la recherche sur cette page

Le chargement de la configuration a échoué avec les erreurs suivantes :

* [config] cannot open config file '/etc/shinken-user/source-data/cfg-documentation/edition_element/commands.cfg' for reading: [Errno 13] Permission denied: u'/etc/shinken-user/source-data/cfg-documentation/edition_element/commands.cfg'

Propriété manquante

Certains éléments importés sont ignorés lorsqu'il manque une propriété obligatoire. Quand c'est le cas, un message affichant la propriété manquante est affiché dans le résultat de la source.


Dans l'exemple, la source contient un hôte sur lequel la propriété "host_name" n'est pas définie.


Erreur listée pour la recherche sur cette page

L'élément Hôte nommé [ HOST_NAME ] importé depuis la source cfg-import:/etc/shinken-user/source-data/source-data-cfg-testpack-import/elements/elts.cfg:34 comporte des anomalies :
- Nom d'élément manquant


Propriété inconnue

Quand une propriété non obligatoire est inconnue, l'élément est importé, mais la propriété inconnue est ignorée. La propriété est affichée dans le message d'avertissement sur la source qui contient l'élément.


Dans l'exemple, on voit qu'une erreur a été faite sur le nom du champ "addresss".


Erreur listée pour la recherche sur cette page

L'élément Hôte nommé [ customer4-switch ] comporte des anomalies :

  • Propriété ignorée : la propriété addresss est inconnue

Propriété non valide ignorée

Quand une propriété définie dans une source possède une valeur incorrecte, cette propriété est ignorée, et l'erreur est indiquée.


Dans l'exemple, la valeur de la propriété "check_interval" doit être un entier positif ou -1, mais une chaîne de caractères a été spécifiée. Le champ est donc ignoré pour cet élément.


Erreur listée pour la recherche sur cette page

L'élément Hôte nommé [ customer4-swith ] comporte des anomalies :

  • Propriété ignorée : la propriété check_interval doit contenir une valeur numérique

Propriété non valide modifiée

Des propriétés valides, mais mal formées peuvent également être importées, avec un reformatage effectué par le mécanisme d'import des sources. Lorsque l'import des sources modifie certaines valeurs de propriétés d'éléments importés, un message d'avertissement indique l'opération effectuée sur la propriété.


Dans cet exemple, Shinken indique que la donnée _HOSTCUSTOM_DATA trouvée dans la commande "Command1" a été mise en majuscule pour des raisons de cohérence.


Erreur listée pour la recherche sur cette page

L'élément "commands" nommé [ Command1 ] importé depuis la source cfg-import:/etc/shinken-user/source-data/source-data-cfg-testpack-import/elements/elts.cfg:40 a été modifié pour les raisons suivantes:
- Avertissement: Les noms de macros doivent être en majuscules. Les macros suivantes ont donc été transformées en majuscules dans la ligne de commande : _HOSTCUSTOM_DATA

Propriété interdite

Quand une propriété non obligatoire est interdite (clé obsolète), l'élément est importé, mais la propriété interdite est ignorée. La propriété est affichée dans le message d'avertissement sur la source qui contient l'élément.


Dans l'exemple, on voit que la propriété "checkmodulations" tente d'être utilisée, alors que cette clé n'est plus valide dans la version de Shinken Enterprise.


Erreur listée pour la recherche sur cette page

L'élément Hôte nommé [ customer-6 ] comporte des anomalies :

  • Propriété ignorée : la propriété checkmodulations est interdite

Incohérence entre un élément et un groupe

Lors de l'import si un groupe possède un membre et que ce même membre possède dans sa définition un groupe défini à 'null', l'import ne peut choisir si l'élément est ou n'est pas dans le groupe.


Vous devez modifier la définition de l'élément.

Erreur listée pour la recherche sur cette page

Erreur : l'élément Hôte nommé [ customer-6 ] importé depuis les sources [ documentation,syncui ] définit la propriété hostgroups à null alors que l'élément Groupe d'hôtes nommé [ France ] importé depuis la source [ documentation ] définit la valeur customer-6 dans la propriété "members".

Conflits lors de l'import des objets

_SE_UUID dupliqué

Erreur

Le _SE_UUID permet d'identifier de manière unique un élément dans un fichier de configuration.


Lorsque le même _SE_UUID est présent 2 fois dans les sources, Shinken marque les 2 objets ayant le même _SE_UUID comme invalides et n'importe pas la source contenant l'erreur pour ne pas provoquer d'erreurs supplémentaires.

Cette erreur est courante lorsqu'on copie un fichier ou la définition d'un élément sans changer les _SE_UUID des objets.


Erreur listée pour la recherche sur cette page

Certains éléments ont des entrées _SE_UUID dupliqués, cela n'est pas autorisé et ce champ doit être unique.
Ils sont situés dans les fichiers de configuration

  • /etc/shinken-user/source-data/cfg-documentation/edition_element/hosts.cfg:40
  • /etc/shinken-user/source-data/cfg-documentation/edition_element/hosts.cfg:59

Résolution

L'erreur à l'import indique le fichier et la ligne des éléments à problème. Supprimer ou changer les _SE_UUID de ces objets suffit pour résoudre le conflit.

Changer le nom et/ou l'adresse de l'élément importé. Un conflit de nom est très souvent une erreur d'inattention. Changer le nom de l'hôte permet de résoudre le conflit. L'élément importé depuis les sources sera alors fusionné avec l'élément de Staging qui a la même adresse (ou autre clé de synchronisation)

L'éléments peut être fusionné avec plusieurs éléments des sources (clés de synchronisation communes avec d'autres éléments mais _SE_UUID différents)

Erreur

Lorsque des éléments sont importés avec des _SE_UUID, Shinken les empêche d'être fusionnés avec des éléments de _SE_UUID différents. Un élément présent dans une source qui ne possède pas de _SE_UUID peut être fusionné avec un autre élément qui a une clé de synchronisation commune.



Mais, quand un élément d'une source a plusieurs éléments distincts avec lesquels il peut être fusionné, Shinken ne peut pas décider avec quel élément le fusionner. Dans ce cas, plutôt que de choisir arbitrairement un élément pour la fusion des propriétés, Shinken affiche un avertissement indiquant le problème.

Le schéma suivant illustre le problème:

Erreur listée pour la recherche sur cette page

Elément ignoré: L'élément Hôte nommé [ Host 1 ] importé depuis les sources [ cfg-file-testpack-import ] est en conflit avec les 3 éléments suivants:
- L'élément host nommé [ Host ] importé depuis la source [ cfg-file-testpack-import ] dans le fichier [ cfg-import:/etc/shinken-user/source-data/source-data-cfg-testpack-import/elements/elts.cfg:1 ] avec les clés [ host_addr,host,core-host-719e2ebc486911e88974080027a3ae8c ]
- L'élément host nommé [ Host bis ] importé depuis la source [ cfg-file-testpack-import ] dans le fichier [ cfg-import:/etc/shinken-user/source-data/source-data-cfg-testpack-import/elements/elts.cfg:12 ] avec les clés [ host_addr,host bis,core-host-75ae7296486911e88532080027a3ae8c ]
- L'élément host nommé [ Host 1 ] importé depuis la source [ cfg-file-testpack-import ] dans le fichier [ cfg-import:/etc/shinken-user/source-data/source-data-cfg-testpack-import/elements/elts.cfg:23 ] avec les clés [ host 1, host_addr ]

Tous ces éléments contiennent des clés de synchronisation communes, mais des _SE_UUID différents. Shinken ne peut pas déterminer comment regrouper les propriétés de ces éléments. Veuillez consulter la page de documentation pour corriger ce problème.

Résolution

Plusieurs solutions sont envisageables pour résoudre ce problème:

  • S’il ne faut pas que l'hôte "Host 1" soit fusionné, lui positionner un _SE_UUID. 
  • Si "Host 1" doit être fusionné systématiquement avec "Host" ou "Host bis", il faut lui mettre le même _SE_UUID que l'élément avec lequel il doit être fusionné. Une autre solution, si applicable, peut être de ne pas répartir la définition d'un même élément dans plusieurs fichiers de configuration pour éviter les problèmes de ce type.