Le module de source ldap-import permet d’interroger un serveur Active Directory ou OpenLDAP afin de récupérer toutes les informations disponibles des hôtes, groupes d'hôtes, utilisateurs et groupes d'utilisateurs présents.
Il est possible d'importer uniquement des hôtes ou des contacts, depuis certains endroits seulement.
Vous pouvez essayer ce type de source soit en activant le collecteur openldap-example présent par défaut ou en activant vos propres collecteurs de type ldap-import.
Par défaut, l’installation ou la mise à jour de Shinken Entreprise va mettre à disposition une définition de collecteur Open LDAP appelé "openldap-exemple".
Exemple :
define synchronizer {
[...]
sources Source 1, Source 2, Source 3, openldap-example
[...]
} |
Redémarrez le Synchronizer pour qu'il puisse prendre en compte cette nouvelle source
service shinken-synchronizer restart |
Vous pouvez avoir plusieurs sources du type ldap-import, pour par exemple se connecter à plusieurs serveurs Open LDAP.
Choisissez un nom pour ce nouveau collecteur.
Pour ajouter une autre source, vous devez :
Créer un répertoire pour contenir les fichiers de configuration de la source :
mkdir -p /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration |
Copier les fichiers d'exemple dans le répertoire de configuration de la source :
cp /etc/shinken-user-example/sources/openldap/openldap-* /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration |
Copier le fichier de définition de la source d'exemple : /etc/shinken/sources/openldap.cfg dans le répertoire de définition des sources /etc/shinken/sources/ et modifier son nom pour qu'il soit différent de l'autre source de type ldap-import.
( Exemple : /etc/shinken/sources/collector__ldap-import__Mon-Collecteur-Open-LADP.cfg )
cp /etc/shinken/sources/openldap.cfg /etc/shinken/sources/collector__ldap-import__Mon-Collecteur-Open-LADP.cfg |
Dans ce nouveau fichier, changer le nom de la source et faire correspondre les chemins vers les fichiers de configurations précédemment copiés :
...
#======== source identity =========
# Source name. Must be unique
source_name Mon-Collecteur-Open-LDAP
...
# Configuration file for your openldap connection (server, user, password, ...)a
connection_configuration_file /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration/openldap-connection.json
# Configuration file for your import rules (like OU=>template rules)
rules_configuration_file /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration/openldap-rules.json
# Configuration file for your ldap fields mapping (like for openldap users)
mapping_configuration_file /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration/openldap-mapping.json
...
|
Une fois que le fichier a été édité, vérifiez que le fichier possède comme droits utilisateurs shinken. Si ce n'est pas le cas, effectuez la commande suivante :
chown -R shinken:shinken /etc/shinken/sources/collector__ldap-import__Mon-Collecteur-Open-LADP.cfg |
Faire pareil avec les fichiers de configurations de la source et leur ajouter les droits d'écriture :
chown -R shinken:shinken /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration chmod -R 755 /etc/shinken-user/source-data/source-data__Mon-Collecteur-Open-LDAP/_configuration/ |
Ajouter le nom de la nouvelle source au Synchronizer en modifiant le paramètre sources du fichier /etc/shinken/synchronizers/synchronizer-master.cfg.
define synchronizer {
[...]
sources Source 1, Source 2, Source 3, Mon-Collecteur-Open-LDAP
[...]
} |
Redémarrez le Synchronizer pour qu'il puisse prendre en compte cette nouvelle source
service shinken-synchronizer restart |
Voici le détail de fichier de configuration de la source se trouve
Vous trouverez un exemple dans /etc/shinken-user-example/configuration/daemons/synchronizers/sources/active-dir-hosts/active-dir-hosts-example.cfg
#===============================================================================
# - openldap-example
#===============================================================================
# Daemons that can load this source:
# - synchronizer
# This source imports hosts and contacts from an OpenLDAP server
#===============================================================================
define source {
#======== source identity =========
# Source name. Must be unique
source_name openldap-example
# Module type (to load module code). Do not edit.
module_type ldap-import
# order: source order for a source imply if a source is before an another source when
# merging data
order 4
# import_interval: in minutes, what is the schedule import interval for this source.
# note: 0 = don't schedule this source, will run only if an administrator launch it from the
# interface
import_interval 5
# enabled: is this source enabled or not
enabled 0
# description: display a description on the interface for this source
description This source is about loading hosts from an open ldap server
# Connection mode:
# - ad: active directory
# - openldap: openldap.
mode openldap
#======== Open ldap access and data mapping =========
# In order to configure this source, you must copy and edit the sample openldap source-data available in the directory
# /etc/shinken-user-example/sources/openldap/ from theses files and update the paths below to refer to the copy :
# * _configuration/openldap-connection.json ==> how to connect to your OpenLDAP server
# * _configuration/openldap-rules.json ==> what are the import rule to setup (like OU=>template rules)
# * _configuration/openldap-mapping.json ==> if you have custom Ldap fields, you can defined them in this file (ex: for openldap users)
#
# Note: If a file is commented, the configuration will be loaded from the default directory /etc/shinken/_default/sources/openldap-source
# Configuration file for your OpenLDAP connection (server, user, password, ...)
connection_configuration_file /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-connection.json
# Configuration file for your import rules (like OU=>template rules)
rules_configuration_file /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-rules.json
# Configuration file for your ldap fields mapping (like for openldap users)
mapping_configuration_file /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-mapping.json
} |
Il est possible de définir plusieurs instances de module de type ldap-import dans votre architecture Shinken.
| Nom | Type | Unités | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | --- | openldap-example | Nous vous conseillons de choisir un nom en fonction de l'utilisation du module pour que votre configuration soit simple à maintenir. Chaîne de caractères composée de lettres, de chiffres et des caractères _ et - .
| |
| Texte | --- | ldap-import | Ne peut être modifié |
define source {
...
order 3
import_interval 5
enabled 0
description This source is about loading hosts from active directories
...
} |
| Nom | Type | Unités | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Entier | --- | 4 | L'ordre de la source dans l'interface de configuration ( A un impact dans la fusion des données lors des imports de sources ).
Remarque : Si vous changez l'ordre depuis l'interface ( page d’accueil ), le fichier .cfg sera mis à jour. | |
| Entier | minutes | 5 | Délai écoulé entre les imports automatiques de la source.
| |
| Booléen | --- | 0 | Permets d'activer ou désactiver la source ( 1 pour activer, 0 pour désactiver ). | |
| Texte | --- | Description du module qui apparaît dans l'interface du Synchronizer. |
define source {
...
mode ad
connection_configuration_file /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-connection.json
rules_configuration_file /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-rules.json
mapping_configuration_file /etc/shinken-user/source-data/source-data-openldap-sample/_configuration/openldap-mapping.json
...
} |
| Nom | Type | Unités | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | --- | openldap | Deux modes possibles :
| |
| Path | --- | Fichier de configuration de connexion:
| ||
| Path | --- | Fichier de configuration des règles d'import:
| ||
| Path | --- | Fichier de configuration du mapping des champs personnalisés:
|
Défini la liste des propriétés qui seront utilisées pour générer les clés de synchronisation pour chaque type d'éléments importés.
À noter : On ne peut pas supprimer le nom et le SE_UUID, mais on peut les compléter. |
Ces paramètres sont utilisables dans ce type de source, mais absent des fichiers d'exemples. |
| Nom | Type | Unité | Défaut | Commentaire | |
|---|---|---|---|---|---|
| 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. | |
| 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". | |
| 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". | |
| 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. |
Il est possible de définir des propriétés que la source ne devra pas récupérer.
| Nom | Type | Unité | Défaut | Commentaire | |
|---|---|---|---|---|---|
| Texte | --- | --- | Empêche la récupération de certaines propriétés des éléments récoltés. |