openLDAP bdb_equality_candidates: (memberOf)가 색인화되지 않았습니다.

openLDAP bdb_equality_candidates: (memberOf)가 색인화되지 않았습니다.

slapd.conf를 통해 centos에 memberof 기능이 포함된 openldap 서버를 설치했습니다. 이 구성 부분이 필요합니까? :

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

openldap 로그에서:

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

아직 이 문제에 대한 해결책을 찾지 못했습니다...

답변1

이는 특정 검색 결과에 대한 필터에 사용된 일부 속성이 색인화되지 않았다는 경고일 뿐입니다.

색인화된 속성이 적합한지 여부는 이 경고를 발생시킨 필터를 확인해야만 확인할 수 있습니다.

당신은 또한 크게 할 수 있습니다줄이다값이 다른 대규모 결과 집합에 대한 속성을 인덱싱할 때의 검색 성능입니다.

인덱싱 방지 패턴의 일반적인 예:

(uid=foobar)항상 하나의 검색 결과가 반환된다고 가정합니다 .

분명히 당신은 속성을 색인화합니다UID:

index uid eq

요즘에는 "활성" 사용자만 검색하는 등 약간 더 복잡한 필터를 사용하는 것이 일반적입니다.

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

일치하는 사용자가 많은 경우 (organizationalStatus=active)색인화되지 않은 경고 때문에 색인만 하면 검색 성능이 크게 저하됩니다!

그 이유는 인덱싱된 각 속성에 대해 검색 후보 집합이 생성되고 두 번째 단계에서는 인덱싱되지 않은 주장을 사용하여 검색 후보 집합을 필터링하기 때문입니다. 따라서 위의 예에서는 index uid eq카디널리티가 1인 검색 후보 세트가 생성되고, index uid,organizationalStatus eq동시에 2개의 검색 후보 세트가 생성됩니다.UID아직은 기본이지만조직상태카디널리티가 있음모두.

=> 사용된 검색 필터와 검색 후보 세트의 가능한 크기를 분석하지 않고 단지 경고를 제거하기 위해 인덱스를 추가하지 마십시오!

답변2

재색인을 수행하여 이 경고를 수정했습니다.

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

chown -R ldap:ldap /var/lib/ldap/
systemctl start slapd

관련 정보