1. 程式人生 > >記一次LDAP主從同步配置

記一次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)