openLDAP bdb_equality_candidates: (memberOf) não indexado

0

Eu instalei um servidor openldap com o memberof function no centos via slapd.conf: parte necessária da configuração?:

index objectClass                       eq,pres
index ou,cn,surname,givenname           eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

nos logs do openldap:

SRCH attr=uid displayName mail member
Jun 21 15:53:52 rhsfugt001 slapd[26924]: <= bdb_equality_candidates: (memberOf) not indexed

Eu não encontrei uma solução para corrigir isso ...

    
por mostworld77 21.06.2018 / 16:00

2 respostas

0

Eu consertei esse aviso reindexando:

systemctl stop slapd
rm /var/lib/ldap/alock
slapindex

chown -R ldap:ldap /var/lib/ldap/
systemctl start slapd
    
por 17.08.2018 / 12:03
0

É apenas um aviso dizendo que alguns atributos usados em um filtro para esse resultado de pesquisa específico não foram indexados.

Se a indexação de um atributo ou não faz sentido, só pode ser determinado observando o filtro que está causando esse aviso.

Você também pode reduzir significativamente o menor desempenho da pesquisa ao adicionar índices para atributos com grandes conjuntos de resultados para um valor distinto.

Exemplo típico para um antipadrão de indexação:

Vamos supor que (uid=foobar) sempre retorne um resultado de pesquisa.

Então, obviamente, você indexa o atributo uid :

index uid eq

Agora é bastante comum ter filtros um pouco mais complexos, por exemplo para pesquisar apenas usuários "ativos":

(&(uid=foobar)(organizationalStatus=active))

Se você tiver muitos usuários correspondentes a (organizationalStatus=active) , o desempenho da pesquisa será significativamente pior se você tiver apenas um índice devido a esse aviso não indexado!

O motivo é que, para cada atributo indexado, um conjunto de candidatos a pesquisa é gerado e, em uma segunda etapa, os conjuntos de candidatos a pesquisa são filtrados com as asserções não indexadas. Portanto, no exemplo acima, index uid eq resultará em uma candidata de pesquisa configurando cardinalidade de um, enquanto index uid,organizationalStatus eq produzirá dois conjuntos de candidatos a pesquisa, uid ainda com cardinalidade um, mas organizationalStatus com cardinalidade todos .

= > Não adicione um índice apenas para se livrar do aviso sem analisar os filtros de pesquisa usados e os possíveis tamanhos dos conjuntos de candidatos à pesquisa!

    
por 21.07.2018 / 00:47

Tags