Como agregar nuevos indices de atributos en OpenLDAP

Cuando usa OpenLDAP con backends basados en BerkeleyDB por ejemplo el backend tipo hdb debe de tener indexados los atributos más utilizados en las consultas LDAP y así incrementar el rendimiento en las consultas desde las aplicaciones y clientes LDAP, un ejemplo de un atributo no indexado lo podemos ver en los logs de OpenLDAP:

slapd[4164]: <= bdb_equality_candidates: (uniqueMember) not indexed

El mensaje anterior nos muestra que se estan haciendo consultas para el atributo uniqueMember y no esta indexado lo cual se puede reflejar en bajo rendimiento del servicio LDAP.

Para agregar uno o más atributos a la lista de indices para una base de datos en OpenLDAP debe de seguir el siguiente procedimiento:

– Agregar definición de indice para los atributos deseados al archivo de configuración del servicio OpenLDAP:

# vim /etc/ldap/slapd.conf

NOTA: Estas tareas se realizan sobre distribuciones basadas en Debian como Unbuntu.

Bajo la definición de la base de datos en cuestion agregue los indices:

index memberUid,uniqueMember eq

En este caso agregamos los atributos memberUid y uniqueMember de tipo Equality.

Si solo reinicia el servicio slapd solo se indexarán los atributos para las nuevas
entradas, para que los atributos existentes también sean indexados debe detener el
servicio slapd y ejecutar el programa slapindex, por ejemplo:

Detener servicio slapd:

# invoke-rc.d slapd stop

Indexar los atributos memberUid y uniqueMember:

# slapindex -v memberUid uniqueMember

Re establecer permisos para archivos de bases de datos de slapd:

# chown -R openldap:openldap /var/lib/ldap

Ahora ya puede iniciar el servicio slapd con todos los atributos indexados.

# invoke-rc.d slapd stop

Referencias:

FAQ de OpenLDAP sobre Performance Tunning

Leave a comment

Your email address will not be published. Required fields are marked *