Назад | Перейти на главную страницу

Репликация OPENLDAP Master / Slave остановлена

Я настроил свою систему таким образом: главный OpenLDAP 10.100.1.6 и подчиненный OpenLDAP 10.100.1.7

Я использовал это руководство: https://www.itzgeek.com/how-tos/linux/configure-openldap-master-slave-replication.html и настроил их так:

    vim rpuser.ldif (Master and Slave)
    dn: uid=rpuser,dc=mydomain,dc=com
    objectClass: simpleSecurityObject
    objectclass: account
    uid: rpuser
    description: Replication Admin User
    userPassword: secret

ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f rpuser.ldif

Enable logging (Slave)
echo "local4.* /var/log/ldap.log" >> /etc/rsyslog.conf 
systemctl restart rsyslog



vim /etc/default/slapd (Master)
    SLAPD_SERVICES="ldapi:// ldap://LDAP01.mydomain.com"

vim /etc/default/slapd (Slave)
    SLAPD_SERVICES="ldapi:// ldap://LDAP02.mydomain.com"

vim syncprov_mod.ldif  (Master and Slave)
    dn: cn=module,cn=config
    objectClass: olcModuleList
    cn: module
    olcModulePath: /usr/lib64/openldap
    olcModuleLoad: syncprov.la

ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov_mod.ldif

vim syncprov.ldif  (Master and Slave)
    dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
    olcSpSessionLog: 100

ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

vim olcserverid.ldif (Master)
    dn: cn=config
    changetype: modify
    add: olcServerID
    olcServerID: 101

ldapmodify -Y EXTERNAL -H ldapi:/// -f olcserverid.ldif

vim olcserverid.ldif (Slave)
    dn: cn=config
    changetype: modify
    add: olcServerID
    olcServerID: 102

ldapmodify -Y EXTERNAL -H ldapi:/// -f olcserverid.ldif


vim rp.ldif  (Slave)
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcSyncRepl
    olcSyncRepl: rid=101
    provider=ldap://ldap01.mydomain.com:389/
    bindmethod=simple
    binddn="uid=rpuser,dc=mydomain,dc=com"
    credentials=secret
    searchbase="dc=mydomain,dc=com"
    scope=sub
    schemachecking=on
    type=refreshAndPersist
    retry="30 5 300 3"
    interval=00:00:05:00

ldapmodify -Y EXTERNAL  -H ldapi:/// -f rp.ldif

Система проработала несколько дней, но теперь больше не синхронизируется.

Это ldap.log

20 сентября, 12:47:06 BCA-PRD-LDAP02 slapd [5348]: <= bdb_equality_candidates: (entryUUID) не проиндексировано 20 сентября 12:47:06 BCA-PRD-LDAP02 slapd [5348]: do_syncrep2: rid = 101 LDAP_RES_SEARCH_RESULT 4) Превышен предел размера 20 сентября, 12:47:06 BCA-PRD-LDAP02 slapd [5348]: do_syncrep2: rid = 101 (4) Превышен предел размера 20 сентября 12:47:06 BCA-PRD-LDAP02 slapd [5348]: do_syncrepl: rid = 101 rc -2 повторных попыток (осталось 1 повторение) 20 сентября 12:52:06 BCA-PRD-LDAP02 slapd [5348]: <= bdb_equality_candidates: (entryUUID) не проиндексировано

Вместо того, чтобы изменять весь сервер, я предпочитаю использовать olcLimits.

Обычно я использую группу в качестве селектора, но dn.exact, похоже, именно то, что вам нужно, по крайней мере, на данный момент.

dn.exact пример:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcLimits: {0}dn.exact=uid=rpuser,dc=example,dc=com size=unlimited time=unlimited

group пример:

$ldapsearch -b cn=config olcLimits=* olcLimits 

dn: olcDatabase={0}config,cn=config
olcLimits: {0}group=cn=ldap-admins,ou=groups,dc=example,dc=com size=unlimited
olcLimits: {1}group=cn=ldap-servers,ou=groups,dc=example,dc=com size=unlimited time=unlimited

dn: olcDatabase={2}mdb,cn=config
olcLimits: {0}group=cn=ldap-admins,ou=groups,dc=example,dc=com size=unlimited
olcLimits: {1}group=cn=ldap-servers,ou=groups,dc=example,dc=com size=unlimited time=unlimited

Я нашел решение:

vim dbsyzelimit.ldif (Мастер)

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: 50000

ldapmodify -Y ВНЕШНИЙ -H ldapi: /// -f dbsyzelimit.ldif