Sommaire

Présentation

L'onglet de configuration afficher les paramètres de configuration définie dans le fichier de configuration de votre module peut être consultée dans cet onglet ( voir la page Collecteur de type ldap-import ( pour Open LDAP ) ) :

La configuration du collecteur définie dans le fichier de configuration de la source ( pour la source par défaut : /etc/shinken/sources/openldap.cfg ) peut être consultée dans cet onglet :

Elle est divisée en 5 chapitres :

  • Configuration générale.
  • Options de mélange des sources.
  • Choix de l'espace où seront placé les éléments importés.
  • Paramètres spécifiques à la source.
  • Clé de synchronisation ( sync_key ).

Remarque : Cet onglet ne permet pas encore d'éditer la configuration ( => Sera implémenté dans une prochaine version )

Configuration générale

Ce chapitre contient tous les paramètres pour le chargement et fonctionnement des sources en général.


NomTypeUnitéDéfautCommentaire
source_name 
Texte--- discovery

Shinken conseille de choisir un nom en fonction de l'utilisation du module pour que la configuration soit simple à maintenir.

Doit être unique.

module_type 
Texte--- discovery-import

Valeur obligatoire et non modifiable ( permet au Synchronizer de charger le code logiciel correspondant ).

order
Entier--- 10

L'ordre de la source dans l'interface de configuration (  A un impact dans la fusion des données lors des imports de sources, voir la page Le mélange des sources & les clés de synchronisation (sync-key) ).

Remarque :  Si l'ordre est changé depuis l'interface ( page d’accueil ), le fichier .cfg sera mis à jour.

import_interval
EntierMinute 5

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

  • Si 0, la source ne sera jamais exécutée automatiquement.

Options de mélange des sources

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 la gestion d'une source lors de l'étape du mélange des sources ( voir la page Le mélange des sources & les clés de synchronisation (sync-key) ).

La valeur par défaut est : all

Les valeurs possibles sont : 


Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

merge_mode

merge_mode
Texte---all

Ce paramètre peut prendre les valeurs suivantes :

  • dont_merge_with_other : 

    Les éléments récoltés par cette source seront importés sans être fusionnés avec les autres sources.

    Si un élément de cette source possède une clé de synchronisation commune avec une autre source, la source provoquera un conflit et ces éléments ne pourront pas être importés.

    À utiliser si la source donne un élément complet qui ne doit pas être modifié, ni par l'interface de configuration ni par d'autres sources.   

  • only_with_syncui : 

    Les éléments récoltés par cette source seront importés et fusionnés  seulement avec ceux de la "syncui". 

    À utiliser si la source importe un élément complet qui ne doit être modifié que via l'interface de configuration.

  • all_without_syncui : 

    Les éléments récoltés par cette source seront importés et fusionnés  avec ceux des autres sources sauf la "syncui".

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

  • all ( valeur par défaut ) :  

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

    Les éléments de cette source seront complétés avec les autres sources et les modifications de l'interface de configuration.

La source de type "syncui" est une source qui importe tous les éléments de l'interface de configuration.

Chaque fois qu'une source est importée, la  source de type "syncui" est automatiquement importée aussi. Si une source ne se mélange pas avec la "syncui", les modifications sur l'interface de configuration seront ignorées.

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

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


Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

compute_new_element

compute_new_element
Texte---authorized 

Ce paramètre peut prendre les valeurs suivantes :

  • authorized ( valeur par défaut ) :  

    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_new :  

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


Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

compute_element_difference

compute_element_difference
Texte---authorized 

Ce paramètre peut prendre les valeurs suivantes :

  • authorized ( valeur par défaut ) :  

    Activée → le mécanisme de calcul des différences analysera les éléments de la source pour calculer les différences par rapport à l'espace de données Staging.

  • never_new :  

    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.



Suppression des éléments absents

Détecter les éléments qui ne sont plus présent dans la source

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


Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

compute_deleted_element_not

_in_source

compute_deleted_element_not
_in_source
Texte---disabled 

Ce paramètre peut prendre les valeurs suivantes :

  • disabled ( valeur par défaut ) :  

    Les éléments qui ne sont plus présents dans cette source, ni dans aucunes autres, ne seront pas proposés à la suppression.

  • delete_if_missing_in_all_sources :  

    Les éléments, qui ne sont plus présents dans cette source et qui n'existent pas dans les autres sources à l'exception de la "syncui", seront proposés à la suppression.

    La prise en compte de ce paramètre dépend de la valeur de put_in. Si cette valeur correspond à source_space ( sa valeur par défaut ), alors le paramètre compute_deleted_element_not_in_source sera ignoré.

  • delete_if_missing_in_this_source :  

    Les éléments qui ne sont plus présents dans cette source seront proposés à la suppression.

    La prise en compte de ce paramètre dépend de la valeur de put_in. Si cette valeur correspond à source_space ( sa valeur par défaut ), alors le paramètre compute_deleted_element_not_in_source sera ignoré.





Choix de l'espace où seront placé les éléments importés

Mettre dans l'espace

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


Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

put_in

put_in
Texte---source_space 

Ce paramètre peut prendre les valeurs suivantes :

  • source_space ( valeur par défaut ) :  

    Les éléments sont sauvegardés dans l'espace de donnée "Sources". Cette espace sera comparée 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".

  • production :  

    Les éléments sont sauvegardés dans les espaces de données "Espace de calcul des Sources", "Staging" et "Production".

  • production_and_reload_arbiter :  

    Les éléments sont sauvegardés dans les espaces de données "Espace de calcul des Sources", "Staging" et "Production".

    L'Arbiter est redémarré afin de soumettre les changements à la supervision.  

    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.

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

Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

put_in_user

put_in_user
Texte---shinken-core 

Les nouveaux éléments et les éléments différents importés par cette source auront la valeur de cette clé comme utilisateur ayant fait la dernière modification.

Clés spécifiques à la source

Ce chapitre liste tous les paramètres qui sont spécifiques au fonctionnement de cette source.

Format des fichiers JSON chargés par le module

Dans cette source, plusieurs fichiers JSON seront à configurer. Ils respectent tous le même format que voici :

  • Le fichier débute par une ligne avec seulement une accolade ouvrante : {
  • Toute ligne commençant par un dièse ( # ) sera considérée comme un commentaire et ne sera pas interprétée par la source
  • Chaque ligne valide ( lue par la source ) est constituée de :
    • le nom du paramètre entre guillemets : "nom_du_paramètre"
    • le symbole deux-points ( : ) séparant le nom du paramètre de sa valeur
    • la valeur du paramètre entre guillemets : "valeur du paramètre"
    • le symbole virgule ( , ) s'il ne s'agit pas de la dernière ligne de définition d'un paramètre.
  • Le fichier se termine par une ligne avec seulement une accolade fermante : }

Accès au serveur et arborescence des données

Implémentation du protocole LDAP

Le module implémentant le protocole LDAP, il peut être nécessaire de lui préciser l'implémentation à utiliser. Le paramètre mode doit donc être configuré sur openldap pour notre source Collecteur Open LDAP. Ce mode gère également d'autres implémentations telles qu’Oracle Directory Server Enterprise Edition.


Pour se connecter à un serveur OpenLDAP, il faut utiliser le collecteur OpenLDAP ( voir page Collecteur de type ( ldap-import ) depuis un serveur OpenLDAP ).

Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

mode

mode
Texte---ad
  • Indique l'implémentation du protocole LDAP. Doit être à la valeur openldap pour ce collecteur  

    Bien préciser le mode openldap car la valeur par défaut est ad.



Définition de l'accès au serveur

L'accès au serveur Open LDAP se configure dans le fichier indiqué par le paramètre connection_configuration_file.


Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

connection_configuration_file

connection_configuration_file
Texte---" "
  • Chemin vers le fichier de configuration de la connexion au serveur Active Directory






Ce fichier est lu à chaque import du collecteur, il est donc inutile de redémarrer le Synchronizer si vous modifier ce fichier


Le fichier indiqué dans ce paramètre ( par défaut /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-connection.json ) doit respecter le format des fichiers Json ( voir page JavaScript Object Notation ). Voici les paramètres obligatoires à renseigner dans le fichier, qui permettent de définir la connexion au serveur Open LDAP :


Nom du paramètreDescription
url

Adresse de votre serveur Open LDAP

Le paramètre "url" doit obligatoirement commencer par "ldap://" ou "ldaps://". Si jamais ça n'est pas le cas, un message d’erreur expliquant le problème apparaitra lors de l'import de la source.

ldap_protocol

Version du protocole LDAP ( par défaut à 3 si pas spécifié )

base

OU ( Organisation Unit ) de base pour la découverte de vos objets. Permet de définir la racine de recherche des éléments à importer.

username

Utilisateur utilisé pour la connexion au serveur Open LDAP. Il peut s'agir d'un compte en lecteur seule.

password

Mot de passe utilisé pour la connexion au serveur Open LDAP.




Tip

Le compte utilisé pour envoyer des requêtes LDAP au serveur n'a besoin que d'un accès en "lecture seule". Vous devriez créer un compte de service Open LDAP dédié à cet accès Shinken.

Il est possible que l'utilisateur LDAP utilisé soit soumis à certaines limites ( nombre d'entrées, délai, taille ... ). Si cette limite est rencontrée, aucun objet ne sera importé.

Arborescence et filtrage des données

Import des hôtes et groupes d'hôtes

Afin d'importer des hôtes et des groupes d'hôtes, il faut spécifier au module ou rechercher ces éléments dans le serveur Open LDAP.

ParamètreValeur par défautDescription
hosts_base
OU ( Organisation Unit ) base pour la découverte de vos hôtes. Si ce paramètre est absent ou vide, aucun hôte ne sera découvert.
hosts_filter(|(objectClass=device)(objectClass=computer))Filtre au format LDAP utilisé pour découvrir uniquement certains hôtes.
hosts_filter_with_group
Filtre au format LDAP permettant de ne filtrer que les hôtes présents dans des groupes définis.
hostgroups_base
OU ( Organisation Unit ) base pour la découverte de vos groupes d'hôtes. Si ce paramètre est absent ou vide, aucun groupe d'hôte ne sera découvert.
hostgroups_filter(|(objectclass=group)Filtre au format LDAP utilisé pour découvrir uniquement certains groupes d'hôtes.

Si vous ne souhaitez pas importer d'objets Open LDAP et donc de ne pas créer d'hôte en "nouveau" dans Shinken, vous pouvez ne pas définir la propriété hosts_base ou bien la laisser vide.

Import des contacts et groupes de contacts
ParamètreValeur par défautDescription
contacts_base
OU ( Organisation Unit ) base pour la découverte de vos contacts. Si ce paramètre est absent ou vide, aucun contact ne sera découvert.
contacts_filter(|(objectClass=InetOrgPerson)(objectClass=user))Filtre au format LDAP utilisé pour découvrir uniquement certains contacts.
contacts_filter_with_group
Filtre au format LDAP permettant de ne filtrer que les contacts présents dans des groupes définis.
contactgroups_base
OU ( Organisation Unit ) base pour la découverte de vos groupes de contacts. Si ce paramètre est absent ou vide, aucun groupe de contacts ne sera découvert.
contactgroups_filter(|(objectclass=group)Filtre au format LDAP utilisé pour découvrir uniquement certains groupes de contacts.

Si vous ne souhaitez pas importer d'objets Open LDAP et donc de ne pas créer d'utilisateur en "nouveau" dans Shinken, vous pouvez ne pas définir la propriété contacts_base ou bien la laisser vide

Exemples

Voici un exemple de ce fichier

/etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-connection.json
{
  # Mandatory
  "url": "ldap://192.168.1.240",
  "ldap_protocol":3,
  "base": "dc=shinkendom,dc=local",
  "username": "cn=administrateur,dc=shinkendom,dc=local",
  "password": "P@ssword1",

  # Optionnal
  "hosts_base": "OU=Serveurs,dc=shinkendom,dc=local",
  "hosts_filter": "(|(objectClass=device)(objectClass=computer))",
  "hosts_filter_with_group":"",
  
  "contacts_base": "OU=Users,dc=shinkendom,dc=local",
  "contacts_filter": "(|(objectClass=InetOrgPerson)(objectClass=user))",
  "contacts_filter_with_group": "",
  
  "hostgroups_base": "OU=Serveurs,dc=shinkendom,dc=local",
  "hostgroups_filter": "(|(objectclass=group)(objectclass=groupofnames)(objectclass=groupofuniquenames))",
  
  "contactgroups_base": "OU=Users,dc=shinkendom,dc=local",
  "contactgroups_filter": "(|(objectClass=groupOfUniqueNames)(objectClass=groupOfNames)(objectClass=posixGroup))"
 }

Le mapping des informations collectées

Le mapping des informations collectées par la source se configure dans le fichier indiqué par le paramètre mapping_configuration_file ( voir la page  Le mapping des informations collectées des champs du serveur Open LDAP vers les propriétés et les données Shinken ).



Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

mapping_configuration_file

mapping_configuration_file
Texte---" "
  • Chemin vers le fichier de correspondance des attributs LDAP vers les propriétés et données Shinken





Les règles d'application des modèles

Les règles d'application des modèles par la source se configurent dans le fichier indiqué par le paramètre rules_configuration_file ( voir la page  Les règles d'application des modèles par rapport aux champs collectés du serveur Open LDAP ).



Nom dans l'interfaceNom dans le fichier configurationTypeUnitéDéfautDescription

rules_configuration_file

rules_configuration_file
Texte---" "
  • Chemin vers le fichier de configuration des règles d'ajout de modèles sur les éléments importés





Précisions techniques

Clés de synchronisation

NomTypeUnitéDéfautDescription
properties_used_as_synckey_for_hosts
Texte--- host_name, address

Défini 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) pour les hôtes.

Ce paramètre est optionnel.

Si ce paramètre n'est pas présent, sa valeur par défaut vaut "host_name, address".

S'il est défini à vide, la propriété "address" ne sera pas utilisée comme synckey.

properties_used_as_synckey_for_hostgroups
Texte--- hostgroup_name

Défini 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) pour les groupes d'hôtes.

Ce paramètre est optionnel.

Si ce paramètre n'est pas présent, ou défini à vide, sa valeur par défaut vaut tout de même "hostgroup_name".

properties_used_as_synckey_for_contactgroups
Texte--- contactgroup_name

Défini 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) pour les groupes de contact.

Ce paramètre est optionnel.

Si ce paramètre n'est pas présent, ou défini à vide, sa valeur par défaut vaut tout de même "contactgroup_name".

properties_used_as_synckey_for_contacts
Texte--- contact_name, email

Défini 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) pour les contacts.

Ce paramètre est optionnel.

Si ce paramètre n'est pas présent, sa valeur vaut "contact_name, email".

S'il est défini à vide, la propriété "email" ne sera pas utilisé comme synckey.

Les clés de synchronisation sont des valeurs ( provenant de propriétés ou de données, définies par la source et spécifiques selon le type de l'élément ) permettant de déterminer quels éléments importés doivent être mélangés avec les éléments importés des autres sources ( voir la page Modules de Sources ( imports ) et de Taggers ( qualification ) ). Concrètement, plusieurs sources peuvent importer différentes informations concernant le même élément, donc si des éléments issus de sources différentes possèdent au moins une clé de synchronisation en commun, ils seront considérés comme étant le même élément et seront fusionnés lors de l’étape de mélange des sources ( voir la page Le mélange des sources & les clés de synchronisation (sync-key) ).

Les paramètres :

  • properties_used_as_synckey_for_hosts
  • properties_used_as_synckey_for_hostgroups
  • properties_used_as_synckey_for_contacts
  • properties_used_as_synckey_for_contactgroup

Permettent d’indiquer quelles propriétés dont les valeurs doivent être utilisées comme clés de synchronisation, c’est‑à‑dire celles dont la valeur servira à décider si deux éléments doivent être fusionnés. ( voir la page Collecteur de type ldap-import ( pour Open LDAP ) ).

N'importe quelle clé de Shinken peut être utilisée, cependant, pour que le mélange des éléments soit cohérent, il faut que les valeurs des clés indiquées permettent d'identifier de manière unique les différents éléments.

Par exemple :

  • La clé "Activé" est une mauvaise clé de synchronisation, car elle ne peut avoir que deux valeurs différentes : "Vrai" ( 1 ) ou "Faux" ( 0 ).
  • La clé "Adresse" est une bonne clé de synchronisation pour un Hôte, car il est cohérent que deux hôtes ayant la même adresse ( IP ou DNS ) soient le même élément.


Propriétés par défaut utilisé pour la construction des clés de synchronisation

Propriété Type d'élémentDescription
Nom de l'élément
Tous les éléments

Cette propriété ne peut pas être retirée des propriétés utilisées pour faire les clés de synchronisation

_SE_UUID
Tous les éléments

Cette propriété ne peut pas être retirée des propriétés utilisées pour faire les clés de synchronisation

address



hôte


email
contact