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)常に1つの検索結果が返されるとします。

明らかにあなたは属性を索引付けしますUID:

index uid eq

最近では、「アクティブ」ユーザーのみを検索するなど、やや複雑なフィルタを使用するのが一般的です。

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

一致するユーザーが多い場合は、(organizationalStatus=active)インデックス化されていない警告があるため、インデックスだけで検索パフォーマンスが大幅に低下します。

その理由は、索引付けされた属性ごとに検索候補セットが作成され、2番目のステップでは、索引付けされていない主張を使用して検索候補セットをフィルター処理するためです。したがって、上記の例では、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

関連情報