zoukankan      html  css  js  c++  java
  • 记一次LDAP主从同步配置

    LDAP主从同步

    • OpenLDAP在2.3版本之前的同步复制带有一系列缺点如只支持一主多从模式等,在此缺点就不多说,下文着重介绍一下OpenLDAP V2.4以后的同步负复制功能

    同步功能

    2.4版最大的功能就是实现了双向复制,即双主、多主模式,无论哪一台master宕机,都不会影响使用。

    • 这里采用Syncrepl模式进行同步: 该方式是从LDAP以拉的方式同步主LDAP的数据,该模式配置简洁方便

    安装LDAP

    • 主从LDAP服务器都严格遵循安装说明安装ldap,保证主从LDAP的根节点一致
    • 安装完毕后应当可以正常使用,建议使用管理工具测试一下
    • 保证主从LDAP服务器之间网络互通

    配置ldap日志

    • 在slapd.conf文件中最下方加入loglevel 256
    • 执行vi /etc/rsyslog.conf
    • 最后一行添加 local4.* /var/log/ldap.log
    • 执行 touch /var/log/ldap.log 创建日志文件
    • service rsyslog restart 重启服务

    Syncrepl

    由于Syncrepl为拉取模式,修改从LDAP的配置文件slapd.conf重新启动从LDAP即可。当要复制一个大规模的数据条录时,建议从主LDAP备份数据,复制到从LDAP上。当从备份数据初始化的时候,不必担心数据老,因为syncrepl会自动进行校验,然后进行相应的修改、同步

    • /var/log/ldap.log 为ldap的日志文件
    • 配置主LDAP
      • 打开slapd.conf,将以下取消注释
        • moduleload back_ldap.la
        • 加入moduleload syncprov.la

    • 在slapd.conf最下方加入:

      index   objectClass     eq
      index entryCSN,entryUUID eq,pres
      loglevel  4095
      overlay syncprov
      #contextCSN 当修改20条时 或者10分钟
      syncprov-checkpoint 20 10
      #session log 会话日志条目的最大数量
      syncprov-sessionlog 1000
      
    • 配置从LDAP

      • 首先停止openLdap服务,执行命令 killall slapd
      • 修改配置文件slapd.conf 这个文.在slapd.conf最下方加入:
         syncrepl rid=012
             # 以下所有的配置前面都是空格,最好不用tab
             #主ldap地址
             provider=ldap://ip:port
             # 同步模式为拉 拒绝修改
             type=refreshOnly
             # 设置更新时间,60秒1次,最后一个单位是秒,倒数第二个是分钟 以此类推
             interval=00:00:00:60
             #根节点
             searchbase="c=xxxxx"
             ## 设置所有条目匹配
             scope=sub  
             ##过滤条件,可根据需要修改
             filter="*,+"
             # 复制全部属性
             attrs="*,+"
             # 设置同步更新时间检测
             schemachecking=off
             # simple代表使用密码认证
             bindmethod=simple
             # 同步更新重试次数和时间刚开始的60秒重试10次,以后每300秒重试一次
             retry="60 10 300 +"
             #登录DN
             binddn="cn=Manager,c=xxxx"
             # 登录密码
             credentials=password
        
    • 注意从LDAP是使用读写权限到master中进行同步的!

    • Ldap 配置文件运行在linux服务器上应该UNIX格式,建议在windows上修改后进行格式确认再拷贝到服务器上。修改配置时注意在配置文件不要存在中文注释,在 syncrepl rid=xxx 以下的所有同步配置参数应当都用table键缩进,表示该内容都属于同步配置。

    • 主LDAP 的 slapd服务不需要重启。contextCSN会根据需要自动生成。它可能最初包含在LDIF文件中,在变成的情况下产生,或者在从LDAP第一次连接主LDAP进行同步的时候产生。如果LDIF文件在被加载时不包含contextCSN时,-w 应与slapadd一起使用,以使它产生。这样会使从LDAP第一次进行同步的反应更快。

    • 启动LDAP服务,执行netstat -nlt查看ldap端口是否开启

    常见错误

    • 开启LDAP后389端口未开启
      • slapd.conf下配置是否正确,如若确认正确,执行 vi /etc/profile 查看是否有重复的ldap配置,如若有删除重复配置
      • 以上方案都不行,卸载LDAP重新安装
    • 配置完同步配置后LDAP无法启动
      • 检查LDAP配置文件(slapd.conf)里的配置内容,这种情况一般都是配置内容未填写正确
    • 配置完同步配置后LDAP启动成功数据无法同步
      • 检查配置中的过滤条件是否填写正确,有可能存在过滤条件中中文字符在同步过程中出现乱码的情况。所以需要保证编码无误(为unix)
  • 相关阅读:
    activemq 异步和同步接收
    简单的activemq的封装和使用
    activemq 一个不错的ppt
    activemq 的小实验
    activemq api的封装
    观察者设计模式例子
    【转载】自定义类加载器例子
    京东拍拍网 笔试 搞java的去考C++ 苦逼
    java中用equals比较两个内容相同的字符数组
    云端飘 String s=new String("abc")创建了几个对象?
  • 原文地址:https://www.cnblogs.com/NathanYang/p/11933828.html
Copyright © 2011-2022 走看看