OpenLDAP配置监控模块遇问题:无法找到cn=module,cn=config条目
解决OpenLDAP OLC监控模块设置的条目问题
作为OpenLDAP新手,你遇到的这两个错误其实都是模块条目的DN格式和属性配置问题导致的,我来一步步帮你理清:
1. 第一个ldapmodify命令报错的原因
你执行的ldapmodify是要修改cn=module{0},cn=config条目,但这个条目在你的LDAP服务器上不存在——这就是No such object (32)错误的根源。默认情况下,大多数OpenLDAP安装会自动生成一个初始模块条目(通常是cn=module{0},cn=config),但如果是最小化安装或手动编译的版本,可能不会自动创建,这时候就需要手动生成。
2. 手动创建模块条目时的语法错误解决
你之前写的创建LDIF有两个关键问题:
- DN格式不正确:OpenLDAP的OLC模块条目需要带索引标记(比如
{0}),正确的DN应该是cn=module{0},cn=config,而非cn=module,cn=config - 属性配置兼容性不足:建议添加
top基础对象类,避免语法校验失败
正确的创建模块条目的LDIF如下:
dn: cn=module{0},cn=config objectClass: top objectClass: olcModuleList cn: module{0} olcModulePath: /etc/openldap/libexec/openldap
执行这个LDIF的命令:
ldapadd -x -H ldap:/// -D "cn=config" -W -f create-module.ldif
注意:先确认
/etc/openldap/libexec/openldap路径存在,且里面有back_monitor.so监控模块库文件,若路径不符,替换为你服务器上实际的OpenLDAP模块路径。
3. 正确添加监控模块
创建好模块条目后,用修正后的modify LDIF添加back_monitor模块:
dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: back_monitor
执行命令:
ldapmodify -x -H ldap:/// -D "cn=config" -W -f add-monitor.ldif
这里不需要给olcModuleLoad加{1},OpenLDAP会自动处理多值属性的索引,手动指定反而可能引发问题。
4. 验证模块加载状态
执行以下命令检查监控模块是否成功加载:
ldapsearch -x -H ldap:/// -D "cn=config" -W -b cn=config "(olcModuleLoad=back_monitor)"
如果返回对应的条目,就说明模块已经成功加载了。
内容的提问来源于stack exchange,提问作者samir
相关产品推荐
相关产品推荐

