您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本節提供 OpenLDAP 問題的疑難排解資訊和指南。
SMTP 已停用,使用者必須重設密碼
問題
如果未在新版 Edge UI 上設定 SMTP,則新增至 Edge 的新使用者需要設定密碼。
錯誤訊息
Unknown username and password combination.

可能的原因
新使用者無法透過「忘記密碼?」連結收到電子郵件來設定密碼,因為 SMTP 尚未設定。
解析度
您可以透過下列任一方式解決這個問題:
解決方案 #1:設定 SMTP 伺服器
設定 SMTP 伺服器,為使用者設定新密碼。如要進一步瞭解如何設定 SMTP,請參閱「設定 Edge SMTP 伺服器」。
解決方案 2:使用 LDAP
如果無法設定 SMTP 伺服器,請使用下列 LDAP 指令為使用者設定新密碼:
- 現有的機構組織管理員必須在新版 Edge UI (或舊版 Edge UI,如下圖所示) 中新增特定使用者:

- 使用 ldapsearch 指令找出使用者的識別名稱 (dn),並將輸出內容重新導向至檔案:
ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -x -H ldap://localhost: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 -x -H ldap://localhost: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 -x -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -H ldap://HOST_IP:10389
- 確認您是否可以從其他 OpenLDAP 節點,透過通訊埠 10389 連線至各個 OpenLDAP 節點。
如果已安裝 Telnet,請使用下列指令:
telnet <OpenLDAP_Peer_IP> 10389
-
如果無法使用 telnet,請使用 netcat 檢查連線能力,方法如下:
nc -vz <OpenLDAP_Peer_IP> 10389
- 使用
ldapsearch指令檢查執行階段複製設定:ldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcSyncrepl=*)" olcSyncrepl
輸出內容應包含與以下類似的設定:
dn: olcDatabase={2}mdb,cn=config olcSyncrepl: {0}rid=001 provider=ldap://OTHER_LDAP_SERVER:10389/ 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
- 使用
ldapsearch指令檢查執行階段設定的olcMultiProvider(舊稱olcMirrorMode) 屬性,確認其設為TRUE:ldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcMultiProvider=*)" olcMultiProvider olcMirrorMode
輸出內容應如下所示:
dn: olcDatabase={2}mdb,cn=config olcMultiProvider: TRUE - 檢查 iptables 和 tcp wrapper 規則。請移除任何不允許對等 OpenLDAP 伺服器彼此通訊的規則。請與網路管理員合作,妥善設定規則。
- 確認每個 OpenLDAP 節點的 OpenLDAP 系統密碼都相同。
- 針對已建立用來更新設定的 ldif 檔案執行 dos2unix,檢查用於設定 N-Way OpenLDAP 複製作業的 ldif 設定檔中是否有隱藏字元。通常含有錯誤字元的 ldif 檔案會導致 ldapmodify 指令無法執行,因此可能無法設定複寫。移除所有錯誤字元,然後儲存設定檔。
如果問題仍未解決,請與 Apigee 支援團隊聯絡,尋求設定 N 向 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.lockrm /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 程序問題,並將 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 -lldapsearch -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」。
- 從 VM 備份 (或 Apigee 備份) 還原 LDAP1。
- 檢查「管理伺服器 1」的啟動和復原情形。
- 管理伺服器 1 和 LDAP1 正常運作後,請從頭重新安裝 LDAP2 (建立完全空白的狀態)。
- 以唯讀模式設定 LDAP2,允許 LDAP1 複製到 LDAP2。
- 使用
ldapsearch確認 LDAP1 和 LDAP2 中的行數是否相符。 - 在節點 2 上重新啟動 Management Server 2 和新版 Edge UI,並確認兩者都順利啟動。
如需詳細操作說明,請參閱公開 Issue Tracker。
解決方案 #1:從備份還原 LDAP 資料
在運作中的 OpenLDAP 節點上建立備份。請定期執行備份。如需備份的最佳做法,請參閱「Apigee 私有雲作業指南」:
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是設定檔的名稱。 - 使用原始設定檔重新安裝 Management Server:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile
完成這些步驟後,Management API 呼叫應可再次使用
sysadmin帳戶。不過,您無法登入新版 Edge UI,也無法使用任何其他使用者發出 Management API 呼叫。 - 停止
- 為損毀前就存在的機構新增缺少的
openldap項目。完成上述步驟後,
openldap將缺少損毀發生時存在的組織項目。大部分的實際組織資料 (例如 Proxy 繫結) 儲存在 Cassandra 或 Zookeeper 中,不會遺失。不過,執行 setup-org 指令碼不會自動為 Cassandra 和 Zookeeper 中現有的組織新增 openldap 資料。您必須按照下列步驟,為損毀前就存在的每個機構手動新增這項資料:- 建立名為
missingLDAP.ldif的 ldif 檔案,並加入以下內容:# 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 "OPENLDAP_ROOT_PASSWORD" -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif
上述步驟會為現有機構建立缺少的項目,以及該機構的
orgadmin權限。針對每個需要重新建立的機構,重複執行上述步驟。 此時,您可以將orgadmin使用者新增至機構,但其他預設角色尚未存在,因此您需要使用下一個步驟新增這些角色。 - 建立名為
將缺少的預設角色和權限新增至現有組織。
使用最初用來設定任何現有機構的設定檔,執行下列指令:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
- 使用新版 Edge UI 或 Management API,新增損毀前存在的任何自訂角色。
- 將使用者新增至相關使用者角色。
(選用) 在管理頁面重新建立外部驗證設定。
如果設定未變更,請還原
/opt/apigee/customer/application/management-server.properties。由於新版 Edge 使用者介面尚未重新安裝,因此在透過新安裝的管理伺服器還原sysadmin帳戶的憑證後,/opt/apigee/customer/application/management-ui.properties仍維持不變。(選用) 在管理節點上重新安裝 Apigee mTLS。
如果先前已安裝 Apigee mTLS,請按照 Apigee mTLS 安裝指南,在管理伺服器節點上重新安裝。
完成這項程序後,您必須手動執行下列操作:
如果問題仍未解決,請與 Apigee 支援團隊聯絡,尋求進一步協助。