Apigee Edge 문서입니다.
Apigee X 문서로 이동 정보
이 섹션에서는 OpenLDAP 문제 해결에 관한 정보와 안내를 제공합니다.
SMTP가 사용 중지되어 사용자가 비밀번호를 재설정해야 함
증상
Edge UI에 SMTP가 설정되어 있지 않으면 Edge에 추가된 새 사용자는 비밀번호를 설정할 방법이 필요합니다.
오류 메시지
Unknown username and password combination.
가능한 원인
SMTP가 설정되지 않아 신규 사용자가 '비밀번호 찾기' 링크에서 비밀번호를 설정할 이메일을 받을 수 없습니다.
해상도
다음 방법 중 하나로 이 문제를 해결할 수 있습니다.
해결 방법 1: SMTP 서버 구성
문서에 제공된 안내에 따라 사용자의 새 비밀번호를 설정하도록 SMTP 서버를 구성합니다.
해결 방법 2: LDAP 사용
SMTP 서버를 구성할 수 없는 경우 아래 LDAP 명령어를 사용하여 사용자의 새 비밀번호를 설정하세요.
- 기존 조직 관리자는 아래와 같이 Edge UI를 통해 특정 사용자를 추가해야 합니다.
- 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와 같은 여러 데이터 센터가 있습니다. DC-1의 Edge UI에 조직 관리자로 로그인하면 사용자 목록을 볼 수 있지만 DC-2의 Edge UI에는 동일한 사용자 목록이 표시되지 않습니다.
오류 메시지
오류가 표시되지 않고 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
- 포트 10389의 다른 OpenLDAP 노드에서 각 OpenLDAP 노드에 연결할 수 있는지 확인합니다.
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 래퍼 규칙을 확인합니다. 피어 OpenLDAP 서버가 서로 통신할 수 없는 규칙은 모두 삭제하세요. 네트워크 관리자와 협력하여 규칙을 적절하게 설정합니다.
- 각 OpenLDAP 노드에서 OpenLDAP 시스템 비밀번호가 동일한지 확인합니다.
- 구성을 업데이트하기 위해 생성된 ldif 파일에 대해 dos2unix를 실행하여 N-Way OpenLDAP 복제를 구성하는 데 사용되는 ldif 구성 파일에서 숨겨진 문자를 확인합니다. 일반적으로 잘못된 문자가 포함된 ldif 파일은 ldapmodify 명령어 실행에 실패하여 복제가 설정되지 않을 수 있습니다. 잘못된 문자를 삭제하고 구성 파일을 저장합니다.
문제가 계속되면 Apigee 지원팀에 문의하여 N-Way 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
- 오류는 리소스 문제를 나타낼 수 있습니다. 시스템의 메모리 및 CPU 사용률을 확인합니다.
- OpenLDAP 버전을 확인하고 오래된 경우 업그레이드합니다. 지원되는 소프트웨어 문서에서 지원되는 OpenLDAP 버전을 확인합니다.
slapd -V
- strace를 사용하여 slapd 프로세스를 문제 해결하고
Apigee 지원팀에 strace 출력을 제공합니다.
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 데이터 손상 문제를 해결합니다.
- 백업에서 OpenLDAP 데이터를 복원합니다.
-
다음 단계에 따라 OpenLDAP 데이터베이스를 정리합니다.
- 관리 서버 2 및 LDAP2를 중지합니다.
- VM 백업 (또는 Apigee 백업)에서 LDAP1을 복원합니다.
- 시작 및 복구를 위해 관리 서버 1을 확인합니다.
- 관리 서버 1 및 LDAP1이 제대로 작동하면 LDAP2를 처음부터 다시 설치합니다 (완전히 빈 슬레이트 만들기).
- LDAP1이 LDAP2에 복제되도록 LDAP2를 읽기 전용 모드로 설정합니다.
ldapsearch
를 사용하여 LDAP1과 LDAP2의 줄 수가 일치하는지 확인합니다.- 관리 서버 2 및 UI2를 다시 시작하고 성공적으로 시작되는지 확인합니다.
자세한 내용은 공개 Issue Tracker를 참고하세요.
해결 방법 1: 백업에서 LDAP 데이터 복원
작동하는 OpenLDAP 노드에서 백업을 만듭니다. 백업은 정기적으로 실행해야 합니다. 백업 권장사항은 Apigee Private Cloud 운영 가이드를 참고하세요.
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
- move 명령어를 사용하여 기존 OpenLDAP 데이터를 백업합니다.
mv ldap ldap_orig
- apigee 사용자로 전환합니다.
su apigee
/opt/apigee/data/apigee-openldap
디렉터리에서 원래 이름으로 새 OpenLDAP 데이터 디렉터리를 만듭니다.mkdir ldap
- 3단계에서 ldap_orig/DB_CONFIG 하위 디렉터리의 백업을 수행하고 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
- move 명령어를 사용하여 기존 OpenLDAP 데이터를 백업합니다.
mv ldap ldap_orig
- apigee 사용자로 전환합니다.
su apigee
- 원래 이름으로 새 OpenLDAP 데이터 디렉터리를 만듭니다.
mkdir ldap
- 3단계의 백업 ldap_orig/DB_CONFIG 하위 디렉터리를 가져와 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를 재설정하려면 다음 기본 요건이 충족되어야 합니다.
- 시스템 관리자 및 루트 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
는 구성 파일의 이름입니다. - 원래 구성 파일을 사용하여 관리 서버를 다시 설치합니다.
/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
- UI 또는 관리 API를 사용하여 손상되기 전에 존재했던 맞춤 역할을 추가합니다.
- 관련 사용자 역할에 사용자를 추가합니다.
(선택사항) 관리에서 외부화된 인증 구성을 다시 설정합니다.
구성이 변경되지 않은 경우
/opt/apigee/customer/application/management-server.properties
를 복원합니다. UI가 재설치되지 않았으므로 새 관리 설치로 시스템 관리자의 사용자 인증 정보가 복원되었으므로/opt/apigee/customer/application/ui.properties
는 동일하게 유지되어야 합니다.(선택사항) 관리 노드에서 Apigee mTLS를 다시 설치합니다.
이전에 Apigee mTLS가 설치된 경우 Apigee mTLS 설치 가이드에 따라 관리 서버 노드에 다시 설치합니다.
이 절차를 완료한 후에는 다음을 수동으로 실행해야 합니다.
문제가 계속되면 Apigee 지원팀에 문의하여 추가 지원을 받으세요.