Автор Тема: Как проверить состояние реплики?  (Прочитано 4762 раз)

vetedie

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Такой вопрос. Сейчас у нас крутится реплика с 3 миллионами пользователей на двух серверах.
Возник вопрос контроля ее состояния с отдачей в заббикс.

Пока что нашли два варианта решения этой задачи:

1. На всех серверах, участвующих в реплике выполнять команду ldapsearch -x -H "ldap://reopenldap-m1" -D "cn=admin,cn=config" -w1wUZVgvCjT0V -b "dc=privatix,dc=net" -s base contextCSN
В выводе мы получаем, в том числе и строку - contextCSN: 20180731090040.366612Z#000000#001#000000
Если эти строки совпадают - то получаем валидность реплики. Если не совпадают - то не валидность.
Единственное, что - в скрипте сравнения нужно учитывать ответ, когда полностью лежит сам сервер ldap.

2. Ну тут ранний вариант. Просто снимать раз в сутки со всех участников реплики slapd-ом бекап и считать количество строк, содержащих dn, сравнивая их на двух серверах
Но, ИМХО, вариант очень плохой - из-за того, что в нем учитывается только количество записей. Да и нагружает сервера слегка.

Поэтому вопрос. Может быть есть еще какие-то методы контроля состояния реплики в openLDAP?

Леонид Юрьев

  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Re: Как проверить состояние реплики?
« Ответ #1 : 02 Август 2018, 19:52:26 »
Приветствую.

Егор Левинца попросил вам ответить.

Во-первых, я категорически НЕ рекомендую использоваться OpenLDAP в конфигурациях с репликацией на больших объемах данных.
К сожалению, там остается несколько ошибок, в частности из-за которых syncrepl может удалить любое кол-во DN-ов попадающих под репликацию.
И чем больше данных, тем больше вероятность такой зачистки.
В МегаФоне эта и другие проблемы несколько раз "стреляли" в 2013-2015 годах. Собственно ради их устранения был создан ReOpenLDAP.

Во-вторых, из-за особенностей RFC4533 совпадение наборов отметок contextCSN не дает гарантии на совпадение содержимого.
Более того, случившееся расхождение может не обнаруживаться самими LDAP-серверами достаточно долго.
В ReOpenLDAP для этого предусмотрены дополнительные механизмы, контролируемыми соответствующими параметрами.
Посмотрите в man-страницах (будут доступны после установки ReOpenLDAP) описание syncprov-showstatus для syncprov, и requirecheckpresent для syncrepl.

По ссылкам есть пояснение всех проблем/ошибок, на которые я ссылался. Даже слайды презентации по этой теме с LDAP-конференции.

P.S. Сегодня вышел "Airborne Positive"

vetedie

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Как проверить состояние реплики?
« Ответ #2 : 07 Август 2018, 15:02:32 »
Здравствуйте Леонид.
Мы, как раз, ваш ReOpenLDAP и используем.
Я тогда вас спрашивал по поводу WiredTiger и реплик.

Цитировать
Посмотрите в man-страницах (будут доступны после установки ReOpenLDAP) описание syncprov-showstatus для syncprov, и requirecheckpresent для syncrepl.
Спасибо - сейчас я туда посмотрю.