Ldap-tips » Historique » Version 1
Pierre-Arnaud Poudret, 05/06/2013 15:49
1 | 1 | Pierre-Arnaud Poudret | h1. Conseils pour le debuggage et l'administration d'openldap |
---|---|---|---|
2 | |||
3 | h1. Loglevel |
||
4 | |||
5 | slapd écrit par défaut dans syslog. |
||
6 | |||
7 | Le niveau de log est défini par l'attribut olcLogLevel de cn=config. Par défaut, olcLogLevel=none. |
||
8 | |||
9 | Pour obtenir davantage de traces, modifier la valeur de olcLogLevel avec la somme d'un ou plusieurs des niveaux décrits ci-dessous: |
||
10 | <pre> |
||
11 | Level Keyword Description |
||
12 | -1 any enable all debugging |
||
13 | 0 no debugging |
||
14 | 1 (0x1 trace) trace function callss |
||
15 | 2 (0x2 packets) debug packet handling |
||
16 | 4 (0x4 args) heavy trace debugging |
||
17 | 8 (0x8 conns) connection management |
||
18 | 16 (0x10 BER) print out packets sent and received |
||
19 | 32 (0x20 filter) search filter processing |
||
20 | 64 (0x40 config) configuration processing |
||
21 | 128 (0x80 ACL) access control list processing |
||
22 | 256 (0x100 stats) stats log connections/operations/results |
||
23 | 512 (0x200 stats2) stats log entries sent |
||
24 | 1024 (0x400 shell) print communication with shell backends |
||
25 | 2048 (0x800 parse) print entry parsing debugging |
||
26 | 16384 (0x4000 sync) syncrepl consumer processing |
||
27 | 32768 (0x8000 none) only messages that get logged whatever log level is set |
||
28 | </pre> |
||
29 | |||
30 | Valeurs couramment utilisées: |
||
31 | * _olcLogLevel=256_: affiche les requêtes traitées par le LDAP (permet de voir exactement ce que fait un service qui interroge le LDAP) |
||
32 | * _olcLogLevel=256+16384_: affiche les requêtes et les traces spécifiques à la réplication |
||
33 | |||
34 | Les logs peuvent vite être assez volumineux. |
||
35 | => bien penser à repasser olcLogLevel à none une fois le débuggage terminé |
||
36 | => monitorer l'espace libre dans /var/log |
||
37 | |||
38 | h1. Slapd as root |
||
39 | |||
40 | Lorsque slapd ne démarre pas, on le lance parfois à la main en mode debug pour voir les messages. Attention: ne pas lancer slapd manuellement en tant que root avec /var/lib/ldap vide. Cela créerait la base HDB avec owner=root, et slapd ne démarrerait plus avec _/etc/init.d/slapd start_. |
||
41 | |||
42 | Si cela arrive néanmoins, _chown openldap:openldap /var/lib/ldap/*_. |
||
43 | |||
44 | h1. Réinitialiser un consumer |
||
45 | |||
46 | Pour réinitialiser les données d'une réplique du ldap en syncronisation avec un provider: |
||
47 | |||
48 | <pre> |
||
49 | /etc/init.d/slapd stop |
||
50 | rm /var/lib/ldap/* |
||
51 | /etc/init.d/slapd start |
||
52 | </pre> |
||
53 | |||
54 | Openldap va alors créer une nouvelle base HDB vierge, et la réplication va reconstituer tout l'annuaire à partir du provider. |
||
55 | |||
56 | h1. Défaillance d'un serveur LDAP |
||
57 | |||
58 | Mesures à prendre en cas de défaillance (prolongée) d'un des serveurs LDAP. |
||
59 | |||
60 | h2. Défaillance d'un LDAP esclave |
||
61 | |||
62 | Retirer l'enregistrement A correspondant au serveur défaillant, pour le nom DNS ldap.illyse.org. |
||
63 | Le serveur en rade ne sera alors plus exploité par les services s'appuyant sur ldap.illyse.org. |
||
64 | |||
65 | +Note+: les services essaieront peut-être encore de contacter le serveur défaillant s'ils ont mis en cache DNS le nom ldap.illyse.org. Tout devrait alors rentrer dans l'ordre à l'expiration du TTL de l'enregistrement. Si cela ne suffit pas, purger les caches DNS locaux / redémarrer les services. |
||
66 | |||
67 | h2. Défaillance du LDAP maître |
||
68 | |||
69 | Retirer l'enregistrement A correspondant au serveur défaillant, pour le nom DNS ldap.illyse.org. |
||
70 | |||
71 | Problème: le LDAP maître est le seul qui permet d'opérer des modification sur l'annuaire. |
||
72 | |||
73 | S'il est vital de faire des modifications sur l'annuaire avant que le LDAP maître n'ait été remis en état, modifier la configuration d'une des répliques pour en faire un nouveau LDAP maître: |
||
74 | * faire une sauvegarde de la conf actuelle (dossier /etc/ldap/slapd.d) |
||
75 | * retirer la directive olcSyncrepl de olcDatabase={1}hdb,cn=config |
||
76 | * configurer le serveur esclave choisi en provider (cf [[ldap-replica]]) |
||
77 | * faire pointer le nom DNS ldap0.illyse.org vers le nouveau master |
||
78 | * déposer le certificat et la clé privée de ldap0.illyse.org dans /etc/ldap |
||
79 | * faire pointer les attributs olcTLS* de cn=config vers le certificat et la clé de ldap0.illyse.org |
||
80 | |||
81 | Dès lors, les autres serveurs esclaves doivent utiliser le nouveau serveur maître pour la réplication. |
||
82 | |||
83 | Attention: dans ce cas, au rétablissement du LDAP maître, ses données ne seront plus à jour.La procédure sera alors la suivante: |
||
84 | * laisser le ldap maître _temporaire_ configuré en tant que provider |
||
85 | * relancer le "véritable" ldap maître |
||
86 | * transférer les données (modifiées) du maître temporaire vers le "véritable" serveur maître (copier/coller dans ADS, ou export/import ldif) |
||
87 | * rétablir la configuration DNS d'origine |
||
88 | * reconfigurer le maître temporaire en consumer, rétablir ses certificats |
||
89 | |||
90 | +Note+: il est également possible de configurer openldap en mode "multi-master", avec plusieurs LDAP maîtres en réplication. Cette gymnastique ne serait alors plus nécessaire, mais d'après la doc, ce mode de fonctionnement garantit moins bien l'intégrité des données que le modèle provider/consumers. |