Quando modifico o índice em slapd.conf, a mesma consulta LDAP não retorna os dados

1

Estou usando o openLDAP em um servidor CENTOS.

Para testar, eu uso o JMETER com a consulta LDAP e meu software usando essa entrada.

Desejo otimizar uma solicitação específica, pesquiso bastante um atributo OU: description. A pesquisa usa o atributo l para encontrá-lo: search filter l=username . Se meu índice (em slapd.conf) for:

index ou,description,l           eq,pres,sub

O Jmeter não retorna o campo de descrição e meu software não me permite mais logar.

Se eu remover essa linha do slapd.conf ou se eu usar: 'index ou, description eq, pres, subi tem o mesmo tempo de resposta médio.

Como posso otimizar meus perfs?
Por que indexar l remover o atributo desejado da resposta e tornar meu software incapaz de usar mais meu diretório?

    
por Sylario 05.10.2010 / 17:48

3 respostas

1

A cada vez que você adicionar ou remover um índice, execute slapindex e lembre-se de manter as permissões corretas para os arquivos do banco de dados. Por exemplo, no debian com o OpenLDAP você precisa:

/etc/init.d/slapd stop
slapindex
chown openldap:openldap /var/lib/ldap/*
/etc/init.d/slapd start
    
por 05.10.2010 / 17:56
0

Eu acabei fazendo isso

sudo /etc/init.d/slapd stop

sudo -u insert-your-openldap-server-user-here -c slapindex -v

sudo /etc/init.d/slapd start

Então, na minha caixa debian, o usuário é openldap , o que faz o comando parecer

sudo -u openldap slapindex -v -d 1

    
por 08.12.2010 / 02:26
0

Embora a resposta do pôster original esteja resolvida, aqui está uma solução para os usuários do OpenLDAP 2.4. O OpenLDAP 2.4 não usa mais arquivos de configuração simples, mas tudo tem que ser modificado usando ldapmodify .

Primeiro, você precisa identificar seu banco de dados em questão.

[root@ldap-server ~]# cd /etc/openldap/slapd.d/cn=config
[root@ldap-server cn=config]# ls
cn=schema       olcDatabase={0}config.ldif     olcDatabase={1}monitor.ldif
cn=schema.ldif  olcDatabase={-1}frontend.ldif  olcDatabase={2}hdb.ldif

O banco de dados aqui é olcDatabase={2}hdb.ldif e a verificação de índices com rendimento do grep:

[root@ldap-server cn=config]# grep olcDbIndex olcDatabase\=\{2\}hdb.ldif
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub

Se eu precisar adicionar, por exemplo, o índice do cartaz l , prepararei o seguinte arquivo ldif:

[root@ldap-server ~]# cat ldap-hdb-tuning.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: ou,description,l eq,pres,sub

O passo final seria executar o arquivo com ldapmodify .

[root@ldap-server ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -D cn=config -f ldap-hdb-tuning.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"

Se você olhar em /var/lib/ldap , verá um novo index.file chamado l.bdb , que deve estar crescendo se você adicionar novos registros. Note que eu não descobri ainda se a criação do índice está sendo feita rapidamente para registros existentes (atualmente estou fazendo isso agora), mas adaptarei essa resposta quando souber mais.

    
por 07.04.2016 / 16:29

Tags