Cuando es necesario depurar errores en una instalación de LDAP existen varias alternativas de nivel de log de acuerdo a las necesidades o a qué parte del protocolo se requiera verificar. Este artículo explica cómo modificar el nivel de log de slapd utilizando la configuración dinámica (OLC) sin necesidad de reiniciar el servicio.
Para saber cuál es el nivel de log actual, buscar el atributo olcLogLevel
en la configuración:
root@ldap:/usr/local/etc/openldap# ldapsearch -x -H ldaps://localhost:636 -W -b 'cn=config' -D 'cn=admin,cn=config' -s base -LLL -W olcLoglevel Enter LDAP Password: dn: cn=config olcLogLevel: 0
Inicialmente el nivel de log está en 0. Para cambiar el nivel de log, simplemente modificar dicho atributo con una consulta de tipo "modify". Para ello crear un archivo LDIF:
root@ldap:/usr/local/etc/openldap# nano ldif/loglevel.ldif
Por ejemplo, para cambiar el nivel de log a 256, utilizar el siguiente contenido:
dn:cn=config changetype: modify replace: olcLoglevel olcLoglevel: 256
Cargar la nueva configuración de olcLogLevel con ldapmodify
:
root@ldap:/usr/local/etc/openldap# ldapmodify -f ldif/loglevel.ldif -x -D "cn=admin,cn=config" -W Enter LDAP Password: modifying entry "cn=config"
Por último verificar:
root@ldap:/usr/local/etc/openldap# ldapsearch -x -H ldaps://localhost:636 -W -b 'cn=config' -D 'cn=admin,cn=config' -s base -LLL -W olcLoglevel Enter LDAP Password: dn: cn=config olcLogLevel: 9
Al aplicar esta configuración utilizando OLC no es necesario reiniciar el servicio. Cabe recordar que por defecto slapd loguea en el syslog del sistema. Basta con acceder al syslog con less
o tail
:
root@ldap:~# tail -f /var/log/syslog Jul 15 19:26:07 ldap slapd[13028]: conn=1132 fd=10 ACCEPT from IP=192.168.48.135:59458 (IP=0.0.0.0:389) Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=0 EXT oid=1.3.6.1.4.1.1466.20037 Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=0 STARTTLS Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=0 RESULT oid= err=0 text= Jul 15 19:26:07 ldap slapd[13028]: conn=1132 fd=10 TLS established tls_ssf=256 ssf=256 Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=1 BIND dn="cn=root,dc=linuxito,dc=com" method=128 Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=1 BIND dn="cn=root,dc=linuxito,dc=com" mech=SIMPLE ssf=0 Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=1 RESULT tag=97 err=0 text= Jul 15 19:26:07 ldap slapd[13028]: conn=1132 op=2 UNBIND Jul 15 19:26:07 ldap slapd[13028]: conn=1132 fd=10 closed
Los diferentes niveles de log que presenta OpenLDAP están documentados en la tabla 5.1 de la guía de administración de OpenLDAP:
Level | Keyword | 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 |
Se observa que slapd es muy versátil a la hora de depurar todo tipo de errores con un nivel de granularidad muy bueno. Algunos ejemplos: nivel 8 para loguear conexiones; 256 para loguear operaciones y resultados (útil para debuggear aplicaciones que hacen cambios en el servidor LDAP); 32 para loguear el procesamiento del filtro de búsqueda; 16384 para loguear replicación; etc.
Cabe destacar que la entrada olcLogLevel
admite el uso de las palabras clave asociadas a cada nivel en vez de el valor numérico, por ejemplo "stats" para el nivel 256.
Referencias
- Chapter 6.1.1: OpenLDAP using OLC (cn=config)
- OpenLDAP Software 2.4 Administrator's Guide - 5. Configuring slapd