Le fait d'avoir plusieurs sources distinctes peut vous aider si vous avez un grand nombre de fichiers cfg et que vous souhaitez pouvoir choisir et séparer les imports. Par exemple, vous avez des fichiers cfg relatifs à l'organisation de Paris, et d'autres à l'organisation de Bordeaux (Hôtes, Utilisateurs, ..).
A un instant donné, vous pouvez avoir de besoin d'importer les fichiers de Bordeaux uniquement. Ce sera chose possible avec les deux sources distinctes.
Ce chapitre va vous permettre de configurer votre propre source depuis la source exemple : cfg-file-sample
| Tip |
|---|
A chaque fois que vous avez besoin de personnaliser Shinken, le répertoire à utiliser est /etc/shinken-user/ |
Création d'une source
Placez vous à présent dans le répertoire des sources Shinken (dans /etc/shinken/sources/) et copiez la source Sample existante (qui a le format d'une source standard sur laquelle vous pouvez vous baser pour créer une source personnalisée) :
| Code Block | ||
|---|---|---|
| ||
cd /etc/shinken/sources/ cp cfg-file-sample.cfg cfg-file-ma-source.cfg |
Modifiez le fichier cfg-file-ma-source.cfg Supprimez les 4 lignes allant de # Shinken Enterprise à # End of Shinken Enterprise part |
Modifiez
| Code Block |
|---|
source_name cfg-file-sample cfg_path /etc/shinken-user/source-data/source-data-cfg-sample/definition-source-data-cfg-sample.cfg |
avec
| Code Block |
|---|
source_name cfg-file-ma-source
cfg_path /etc/shinken-user/source-data/source-data-cfg-ma-source/definition-source-data-cfg-ma-source.cfg |
(ce chemin sera celui du répertoire de vos fichiers cfg dans le shinken-user)
En ce qui concerne les paramètres des sources, voici leurs descriptions :
| Propriété | Exemple | Description |
|---|---|---|
| source_name | cfg-file-ma-source | Nom de la source affichée dans l'UI de configuration en page d'accueil. Doit être unique et d'une longueur inférieure à 40 caractères, sans quoi le Synchronizer ne démarrera pas. |
| module-type | cfg-file-import | Définition du type de module utilisé par la source. |
| cfg_path | /etc/shinken-user/source-data/source-data-cfg-ma-source/definition-source-data-cfg-ma-source.cfg | Indique le chemin du fichier de définition de la source. |
| not_stored_properties | < liste de champs > | Ce paramètre permet de définir un ou plusieurs champs que ne seront pas importés dans shinken. Cela peut être utile pour exclure une propriété ou bien utiliser des champs personnalisés utiles pour la gestion de vos fichiers .cfg |
| properties_used_as_synckey | address | Définit la liste de propriétés qui seront utilisées en plus du nom et du SE_UUID de l'élément pour générer les clés de synchronisation (sync_key). Ce paramètre est optionnel. Si ce paramètre n'est pas présent, sa valeur par défaut vaut champ "address". S'il est défini à vide, le champ "address" ne sera pas utilisé comme synckey. |
| update_cfg_with_staging_se_uuid | 1 | S'il est activé, ce paramètre permet récupérer l'identifiant SE_UUID d'un élément du Synchronizer ( de Staging ) et de l'écrire pour cette élément dans le fichier .cfg de votre collecteur. Il faut que l'élément existe déjà dans l'espace Staging. Note: pour cela il faut que l'utilisateur Shinken est les droits d'écriture sur les fichiers .cfg. |
| create_and_write_SEUUID_in_file | 0 | Si cette option est activé la source va écrire un SE_UUID dans tout les éléments des fichiers lue. Si l'élément existe déjà dans l'interface de configuration alors il pourra avoir conflit, il faut donc activé cette option que si vous étes sur que les éléments n'existe pas déjà dans l'interface. |
Pour créer son propre répertoire dans le répertoire des sources de shinken-user :
| Code Block | ||
|---|---|---|
| ||
cd /etc/shinken-user/source-data cp -r source-data-cfg-sample/ source-data-cfg-ma-source/ mv source-data-cfg-ma-source/definition-source-data-cfg-sample.cfg source-data-cfg-ma-source/definition-source-data-cfg-ma-source.cfg |
Rajouter les droits sur le répertoire :
| Code Block |
|---|
cd /etc/shinken-user/source-data chown -R shinken:shinken source-data-cfg-ma-source/ |
| Tip | ||
|---|---|---|
| ||
Une fois le répertoire créé, les fichiers cfg pourront alors être placés directement dans le répertoire source-data-cfg-ma-source/elements ou source-data-cfg-ma-source/packs |
Modifiez le fichier /etc/shinken/synchronizers/synchronizer-master.cfg A la fin de la ligne "sources", rajoutez votre source. |
Exemple :
| Code Block |
|---|
sources syncui,cfg-file-shinken,active-dir-example,sync-vmware,cfg-file-nagios,discovery,openldap-example,cfg-file-ma-source |
Redémarrez le synchronizer pour qu'il prenne acte de la nouvelle source :
| Code Block | ||
|---|---|---|
| ||
service shinken-synchronizer restart |
Affichage de la source dans l'UI de configuration
Une fois le démon redémarré, votre nouvelle source personnalisée doit apparaître :
Son paramétrage sera alors en place : son état (activée ou désactivée), son ordre, sa fréquence en automatique ou en manuel.
Les données globales peuvent être configurées dans /etc/resources.d/. Ce dossier contient des fichiers définissant des données globales pour différents sujets (email, mysql, oracle, ...) accessibles par vos objets globalement dans Shinken.
Pour une organisation plus facile et une configuration plus propre, les données globales peuvent également être configurées dans les sources.
- Le dossier d'exemple d'une source cfg est situé dans /etc/shinken-user/source-data et contient un dossier global-data dans lequel les définitions des données globales peuvent être placées (un fichier échantillon est également présent dans ce dossier)
- Lorsque la source est importée, ces fichiers de données globales seront copiés dans /etc/resources.d/source_name
Ce mécanisme vous permet également de surcharger les valeurs définies dans /etc/resources.d avec des fichiers définis dans les sources.
Précisions techniques
Clés de synchronisation
Les clés utilisées pour la synchronisation entre les sources sont des chaines de caractères accrochées sur les éléments. Elles permettent de considérer un élément comme identique provenant de plusieurs sources, même si l'élément n'est pas identique dans les sources. s
La source choisie 1 ou plusieurs propriétés de l'élément importé comme clé de synchronisation ( différent suivant les sources et leurs paramétrages ).
- Le fonctionnement et l'utilité des clés de synchronisation sont décrits de manière plus détaillée dans la page de documentation dédiée: Précision technique sur le fonctionnement de l'import des sources ( il importait que vous lisiez cette page avant d'aller plus loin dans ce chapitre ).
Le module d'import de fichier cfg utilise le paramètre properties_used_as_synckey de son fichier de configuration pour lister les propriétés de l'objet qui seront accrochées à un élément importé en tant que clés de synchronisation.
- Si un élément importé a une ou plusieurs propriétés remplies lors de l'import, le Synchronizer les rajoutera à la liste des valeurs de synchronisation de cet objet.
| Warning | ||
|---|---|---|
| ||
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:même nom et même adresses ) pour être fusionnés |
- Si le paramètre properties_used_as_synckey
- n'est pas défini,
- sa valeur par défaut est à address. Tout élément ayant la propriété address aura la valeur de son "address" ajouté dans les clés de synchronisation.
- est vide,
- aucune propriété ne sera ajoutée dans les clés de synchronisation.
- est redéfini à display_name
- seul la valeur de cette propriété sera ajoutée dans les clés de synchronisation.
Remarque: plusieurs propriétés peuvent être définies comme clef de synchronisation ( cela dépendra de vos besoins )
Code Block properties_used_as_synckey host_name, display_name, address
- n'est pas défini,
- Si dans une même source, deux éléments importés ont toutes leurs clés de synchronisation sont communes, les deux éléments seront fusionnés.
- Par exemple, pour des clés de synchronisation sur le nom et l'adresse :
- Si Hôte 1 et Hôte 2 ont le même nom et la même adresse, ces deux éléments seront fusionnés.
- Par contre si Hôte 1 et Hôte 2 ont le même nom, mais pas la même adresse, ces éléments ne seront pas fusionnés, car toutes les clés ne sont pas communes
- Par exemple, pour des clés de synchronisation sur le nom et l'adresse :
| Info |
|---|
Remarque: le Synchronizer ajoute automatiquement le nom de l’élément comme clé de synchronisation. |

