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,將以下取消注釋
-
在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)