Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. LDAP
  3. Dépannage
Extrait - LDAP Planification et mise en oeuvre d'un annuaire OpenLDAP
Extraits du livre
LDAP Planification et mise en oeuvre d'un annuaire OpenLDAP Revenir à la page d'achat du livre

Dépannage

Liste de contrôle (checklist)

La liste de contrôle suivante peut aider à identifier un problème ou au moins obtenir une piste d’investigation.

1.

Utiliser l’outil slaptest pour vérifier les configurations avant de démarrer le service "slapd".


[root@ldap01 cn=config]# slaptest -f slapd.1.conf  
 config file testing succeeded
 

Exemple d’un problème de configuration :


[root@ldap01 cn=config]# slaptest -f slapd.tmp 
59d777ce slapd.tmp: line 28: unknown directive <xxxxx> inside 
backend database definition. 
slaptest: bad configuration file! 
[root@ldap01 cn=config]#
 

Exemple en mode "debug" :


[root@ldap01 cn=config]# slaptest -f slapd.1.conf -d 256 
bdb_back_initialize: Sleepycat Software: Berkeley DB 4.2.52:  
(December  3, 2003) 
hdb_back_initialize: Sleepycat Software: Berkeley DB 4.2.52:  
(December  3, 2003) 
bdb_db_init: Initializing BDB database 
bdb_db_open: db_open(./db.1.a/id2entry.bdb) failed: No such file 
or directory (2) 
backend_startup: bi_db_open failed! (2) 
slap_startup failed (test would succeed using the -u switch)
 

2.

Si impossibilité de démarrer le service, alors utiliser directement le binaire de l’application en mode "debug".


/usr/sbin/slapd -d1
 

Voici un exemple du résultat de cette commande :


# Output 
ldap_url_parse_ext(ldap://localhost/) 
ldap_init: trying...

Activer le mode "debug"

Ce mode sera utilisé le plus souvent lorsqu’il est impossible de démarrer le service "slapd".

Il y aura donc deux manières de faire :

1.

En lançant directement le binaire.


/usr/sbin/slapd -d 1 >/tmp/slapd.debug 2>&1 
 
# Ou en spécifiant le répertoire de configuration 
 
/usr/sbin/slapd slapd -F /etc/openldap/slapd.d -d 255
 

2.

En modifiant le fichier /etc/sysconfig/ldap.


# Options of slapd (see man slapd) 
SLAPD_OPTIONS=-d1
 

3.

Puis redémarrer le service "slapd".

Activer et modifier la verbosité des logs

En cas de problème et donc lors de recherche de pannes, il peut s’avérer utile d’activer la journalisation des événements (on parle plus généralement de niveau de verbosité des logs) du processus "slapd" et de lui spécifier des évènements spécifiques à rechercher.

Ceci peut être réalisé dynamiquement grâce au mécanisme de configuration dynamique (OLC), en accédant à la branche dn : cn=config du DIT de configuration de l’annuaire OpenLDAP.


dn: cn=config 
objectClass: olcGlobal 
cn: config 
olcAllows: bind_v2 
olcArgsFile: /var/run/openldap/slapd.args 
olcAttributeOptions: lang- 
olcAuthzPolicy: none 
olcConcurrency: 0 
olcLocalSSF: 71 
olcLogLevel: 0 
... 
... 
olcToolThreads: 1 
olcWriteTimeout: 0
 

Ensuite, il faudra utiliser l’attribut olcLogLevel afin d’activer le mode "debug" et de lui spécifier les événements prédéterminés à journaliser (ou logguer) ainsi référencés dans le tableau ci-dessous :

Niveau

Mots-clés

Description

-1

any

enable all debugging

0

no debugging

1

(0x1 trace)

trace function calls

2

(0x2 packets)

debug packet handling

4

(0x4 args)

heavy trace debugging

8

(0x8 conns)

connection management

16

(0x10 BER)

print out packets sent and received

32

(0x20 filter)

search filter processing

64

(0x40 config)

configuration processing

128

(0x80 ACL)

access control list processing

256

(0x100 stats)

stats log connections/operations/results

512

(0x200 stats2)

stats log entries sent

1024

(0x400 shell)

print communication with shell backends

2048

(0x800 parse)

print entry parsing debugging

16384

(0x4000 sync)

syncrepl consumer processing

32768

(0x8000 none)

only messages that get logged whatever log level is set

On peut donc configurer l’attribut...