記一次LDAP主從同步配置
阿新 • • 發佈:2019-11-26
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)