Вы просматриваете документацию Apigee Edge .
Перейти к документации Apigee X. info
В этом разделе содержится информация и рекомендации по устранению неполадок OpenLDAP.
SMTP отключен, и пользователям необходимо сбросить пароль
Симптом
Если в пользовательском интерфейсе Edge не настроен SMTP, новым пользователям, добавляемым в Edge, потребуется способ установки пароля.
Сообщения об ошибках
Unknown username and password combination.
Возможные причины
Новые пользователи не могут получить электронное письмо по ссылке «Забыли пароль?» для установки пароля, поскольку SMTP не настроен.
Разрешение
Эту проблему можно решить одним из следующих способов:
Решение №1: Настройте SMTP-сервер
Настройте SMTP-сервер, чтобы установить новый пароль для пользователя, следуя инструкциям, приведенным в документации .
Решение №2: использование LDAP
Если вы не можете настроить SMTP-сервер, используйте следующие команды LDAP, чтобы установить новый пароль для пользователя:
- Существующему администратору организации необходимо добавить определенного пользователя через пользовательский интерфейс Edge, как показано ниже:
- Используйте команду ldapsearch , чтобы найти отличительное имя пользователя (dn) и перенаправить вывод в файл:
ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
Вот пример записи dn для пользователя, а также атрибуты пользователя:
dn:uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com mail: apigee_validator@apigee.com userPassword:: e1NTSEF9b0FrMFFXVmFjbWRxM1BVaFZzMnllWGZMdkNvNjMwNTJlUDZYN3c9PQ= = uid: f7a4a4a5-7c43-4168-a47e-6e9a1417cc29 objectClass: inetOrgPerson sn: Validator cn: apigee
- Откройте файл ldap.txt и найдите DN нового пользователя, который был добавлен на основе атрибута электронной почты нового пользователя.
- Выполните команду ldappassword , чтобы добавить пароль для нового пользователя, используя его dn. В этом примере вы устанавливаете пароль пользователя Apigee123:
ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s Apigee123 "uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com"
- Войдите в Edge UI как новый пользователь с паролем, определенным на предыдущем шаге. Пользователь может установить новый пароль после входа в UI.
LDAP не реплицируется
Симптом
Многие установки Edge имеют несколько центров обработки данных, например DC-1 и DC-2. При входе в Edge UI в DC-1 в качестве администратора организации вы можете просмотреть список пользователей, но тот же список пользователей не отображается в Edge UI в DC-2.
Сообщения об ошибках
Никаких ошибок не возникает, Edge UI просто не отображает список пользователей, которые должны были быть реплицированы на все серверы OpenLDAP.
Возможные причины
Обычно причиной этой проблемы является неправильно настроенная конфигурация репликации OpenLDAP, а не сама установка. Кроме того, репликация может прерваться, если сеть между серверами OpenLDAP не разрешает трафик на порту 10389.
Диагноз
Для диагностики проблемы выполните следующие действия:
- Проверьте, возвращает ли ldapsearch данные с каждого сервера OpenLDAP:
ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
- Проверьте, можете ли вы подключиться к каждому узлу OpenLDAP с других узлов OpenLDAP через порт 10389. Если установлен telnet, используйте следующую команду:
telnet <OpenLDAP_Peer_IP> 10389
- Если telnet недоступен, используйте netcat для проверки подключения следующим образом:
nc -vz <OpenLDAP_Peer_IP> 10389
- Проверьте конфигурацию репликации в следующем файле:
/opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
Файл должен содержать следующую конфигурацию:
olcSyncRepl: rid=001 provider=ldap://__OTHER_LDAP_SERVER__/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials=__LDAP_PASSWORD__ searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
- Также проверьте в этом же файле значение атрибута olcMirrorMode. Оно должно быть установлено в значение TRUE:
grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
- Проверьте правила iptables и tcp wrapper. Удалите все правила, которые не позволяют одноранговым серверам OpenLDAP взаимодействовать друг с другом. Обратитесь к администратору сети, чтобы правильно установить правила.
- Убедитесь, что системный пароль OpenLDAP одинаков на каждом узле OpenLDAP.
- Проверьте наличие скрытых символов в файлах конфигурации ldif, которые используются для настройки репликации N-Way OpenLDAP, запустив dos2unix для файлов ldif, созданных для обновления конфигурации. Обычно файл ldif с недопустимыми символами приводит к сбою выполнения команды ldapmodify, и репликация может не быть настроена. Удалите все недопустимые символы и сохраните файлы конфигурации.
Если проблема не устранена, обратитесь в службу поддержки Apigee за помощью в настройке разнонаправленной репликации OpenLDAP.
Невозможно запустить OpenLDAP
Симптом
OpenLDAP не запускается.
Сообщения об ошибках
SLAPD Dead But Pid File Exists
Возможные причины
Эта проблема обычно вызвана файлом блокировки, который остался в файловой системе и который необходимо удалить.
Диагноз
Для диагностики этой проблемы выполните следующие действия:
- Проверьте наличие блокировки процесса OpenLDAP slapd или pid-файла в следующем месте:
/opt/apigee/var/run/apigee-openldap/apigee-openldap.lock /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
- Удалите файл блокировки и pid, если они найдены, и попробуйте перезапустить openldap.
rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
- Если запустится процесс OpenLDAP slapd, пропустите следующие шаги.
- Если процесс OpenLDAP slapd не запускается, попробуйте запустить slapd в режиме отладки и проверьте наличие ошибок:
slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
- Ошибки могут указывать на проблемы с ресурсами. Проверьте использование памяти и ЦП в системе.
- Проверьте версию OpenLDAP и обновите ее, если она старая. Проверьте поддерживаемые версии OpenLDAP в нашем документе Поддерживаемое программное обеспечение .
slapd -V
- Используйте strace для устранения неполадок процесса slapd и предоставления вывода strace в службу поддержки Apigee :
strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
Повреждение данных OpenLDAP
Симптом
Пользователи больше не могут запускать вызовы управления или входить в Edge UI. Использование утилиты ldapsearch для запроса пользователей может указать, что пользователь существует в хранилище данных LDAP, или может определить возможных отсутствующих пользователей или роли.
Сообщения об ошибках
Unknown username and password combination.
Возможные причины
Обычно эта проблема может наблюдаться из-за повреждения данных OpenLDAP. Обычно данные OpenLDAP не повреждаются. Но в редких случаях, когда это происходит, повреждение может быть вызвано сбоем системного диска или проблемами с дисковым пространством.
Диагноз
- Проверьте дисковое пространство в системе с установленным OpenLDAP, используя следующую команду:
du -m /opt
- Если вы видите, что занятое дисковое пространство очень близко к 100%, то это может указывать на то, что причиной этой проблемы является нехватка места на диске в вашей системе.
- Проверьте согласованность данных на узлах LDAP:
- На каждом узле LDAP сравните количество пользователей и ролей. Выполните следующие команды и сравните результаты.
Расхождение в количестве узлов указывает на возможное повреждение данных.ldapsearch -o ldif-wrap=no -b "ou=users,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l
ldapsearch -o ldif-wrap=no -b "ou=resources,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l
- Проверьте статус репликации LDAP. Выполните следующую команду на каждом узле LDAP.
Если значениеldapsearch -x -LLL -H ldap://ldap_ip:10389 -s base -b 'dc=apigee,dc=com' contextCSN dn: dc=apigee,dc=com -D "cn=manager,dc=apigee,dc=com" -w PASSWORD dn: dc=apigee,dc=com
contextCSN
одинаково на всех узлах, репликация LDAP работает правильно.
- На каждом узле LDAP сравните количество пользователей и ролей. Выполните следующие команды и сравните результаты.
Разрешение
Если в вашей системе закончилось или почти закончилось место на диске, добавьте больше места на диске, чтобы обеспечить достаточную доступность.
Когда у вас будет достаточно места на диске, воспользуйтесь одним из следующих решений для устранения проблемы повреждения данных LDAP:
- Восстановите данные OpenLDAP из резервной копии.
- Очистите базу данных OpenLDAP, выполнив следующие действия:
- Отключите сервер управления 2 и LDAP2 .
- Восстановите LDAP1 из резервной копии виртуальной машины (или резервной копии Apigee).
- Проверьте запуск и восстановление сервера управления 1 .
- После того, как сервер управления 1 и LDAP1 будут работать правильно, переустановите LDAP2 с нуля (создав полностью чистый лист).
- Настройте LDAP2 в режиме только для чтения, разрешив LDAP1 реплицировать данные в LDAP2 .
- Используйте
ldapsearch
, чтобы проверить, совпадает ли количество строк в LDAP1 и LDAP2 . - Перезапустите Management Server 2 и UI2 и убедитесь, что они успешно запустились.
Подробные инструкции см. в публичном трекере проблем .
Решение №1 Восстановите данные LDAP из резервной копии
На работающем узле OpenLDAP сделайте резервную копию. Резервное копирование должно выполняться регулярно. См. Apigee Private Cloud Operations Guide для получения рекомендаций по резервному копированию:
slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
Для восстановления данных OpenLDAP из хорошей резервной копии можно использовать следующие шаги.
- Остановите узел OpenLDAP, для которого необходимо восстановить данные:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- Измените каталог на каталог данных OpenLDAP:
cd /opt/apigee/data/apigee-openldap
- Создайте резервную копию существующих данных OpenLDAP с помощью команды move:
mv ldap ldap_orig
- Переключитесь на пользователя apigee:
su apigee
- В каталоге
/opt/apigee/data/apigee-openldap
создайте новый каталог данных OpenLDAP с исходным именем:mkdir ldap
- Возьмите резервную копию подкаталога ldap_orig/DB_CONFIG из шага 3 и скопируйте ее в каталог openldap.
cp ldap_orig/DB_CONFIG ldap
- Чтобы восстановить данные из резервной копии, созданной с помощью slapcat, используйте slapadd для импорта ldif, содержащего правильные данные:
slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
- Запустите процесс OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
Решение №2: Очистите базу данных LDAP
Следующие шаги стирают базу данных OpenLDAP, чтобы обеспечить новый старт. Это решение можно использовать, если нет резервной копии данных последнего состояния, в котором работали данные OpenLDAP.
- Остановите службу OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- Измените каталог на каталог данных OpenLDAP:
cd /opt/apigee/data/apigee-openldap
- Создайте резервную копию существующих данных OpenLDAP с помощью команды move:
mv ldap ldap_orig
- Переключитесь на пользователя apigee:
su apigee
- Создайте новый каталог данных OpenLDAP с исходным именем:
mkdir ldap
- Возьмите резервную копию подкаталога ldap_orig/DB_CONFIG из шага 3 и скопируйте ее в каталог openldap:
cp ldap_orig/DB_CONFIG ldap
- Перезапустите процесс OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
- Перезапустите сервер управления, чтобы принудительно обновить подключения к OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Решение №3 Сбросьте OpenLDAP до базовой установки
Если решение №2 не устраняет проблему, вы можете сбросить OpenLDAP до базовой установки, как описано в этом разделе.
Предпосылки
Для сброса OpenLDAP вам потребуются следующие предварительные условия:
- Возможность запуска настройки с учетными данными системного администратора и root LDAP.
- Доступ к утилите
ldapadd
. - Сохраненный исходный файл конфигурации молчания для узла управления/LDAP.
Чтобы сбросить настройки OpenLDAP, выполните следующие действия:
- Переустановите OpenLDAP и сервер управления.
- Остановите сервер
openldap
:apigee-service apigee-openldap stop
- Удалите поврежденную папку данных
openldap
:rm -rf /opt/apigee/data/apigee-openldap
- Удалите компонент
openldap
:apigee-service apigee-openldap uninstall
- Переустановите компонент
openldap
, используя тот же файл конфигурации, который использовался для первоначальной установки: где/opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
configfile
— имя файла конфигурации. - Переустановите Management Server, используя исходный файл конфигурации:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile
After doing these steps, Management API calls should work again using the
sysadmin
account only. However, it will not be possible to log into the Edge UI, and Management API calls with any other users will not work. - Остановите сервер
- Add missing
openldap
entries for orgs that existed prior to the corruption.After the above step is completed,
openldap
will be missing entries for orgs that existed when the corruption occurred. The majority of the actual org data such as proxy bundles is stored in Cassandra or Zookeeper is not lost. However, running the setup-org script will not automatically add the openldap data for the orgs that already exist in Cassandra, and Zookeeper. This data has to be added manually for every org that existed prior to the corruption using the following steps:- Create an ldif file called
missingLDAP.ldif
with the following content:# orgname, organizations, apigee.com dn: o=orgname,ou=organizations,dc=apigee,dc=com objectClass: organization O: orgname # userroles, orgname, organizations, apigee.com dn: ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com ou: userroles objectClass: organizationalUnit # orgadmin, userroles, orgname, organizations, apigee.com dn: cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com objectClass: organizationalRole cn: orgadmin roleOccupant: uid=admin,ou=users,ou=global,dc=apigee,dc=com # resources, orgadmin, userroles, orgname, organizations, apigee.com dn: ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com ou: resources objectClass: organizationalUnit # @@@, resources, orgadmin, userroles, orgname, organizations, apigee.com dn: cn=@@@,ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com roleOccupant: ou=delete,ou=permissions,dc=apigee,dc=com roleOccupant: ou=get,ou=permissions,dc=apigee,dc=com roleOccupant: ou=put,ou=permissions,dc=apigee,dc=com labeledURI: / objectClass: organizationalRole objectClass: labeledURIObject cn: @@@
где orgname — организация, которую вы пытаетесь воссоздать.
- Добавьте отсутствующие сущности LDAP с помощью следующей команды:
ldapadd -x -w
-D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif
Вышеуказанные шаги создадут отсутствующие записи для существующей организации и разрешения
orgadmin
для этой организации. Повторите шаги для каждой организации, которую необходимо создать заново. На этом этапе вы можете добавить пользователейorgadmin
в организацию, но другие роли по умолчанию еще не существуют, поэтому вам нужно добавить их с помощью следующего шага. - Create an ldif file called
Добавьте отсутствующие роли и разрешения по умолчанию в существующую организацию.
Используя тот же файл конфигурации, который изначально использовался для настройки любой из существующих организаций, выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
- Добавьте любые пользовательские роли, которые существовали до повреждения, используя пользовательский интерфейс или API управления,
- Добавьте всех пользователей в соответствующие роли пользователей.
(Необязательно) Восстановите конфигурацию внешней аутентификации на сервере управления.
Восстановите
/opt/apigee/customer/application/management-server.properties
, если конфигурация не изменилась. Поскольку пользовательский интерфейс не был переустановлен,/opt/apigee/customer/application/ui.properties
должен остаться прежним, учитывая, что учетные данные для системного администратора были восстановлены с новой установкой управления.(Необязательно) Переустановите Apigee mTLS на узле управления.
Если Apigee mTLS был ранее установлен, следуйте руководству по установке Apigee mTLS, чтобы переустановить его на узле сервера управления.
После выполнения этой процедуры вам необходимо вручную:
Если проблема не устранена, обратитесь в службу поддержки Apigee для получения дополнительной помощи.