Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. info
Phần này cung cấp thông tin và hướng dẫn về cách khắc phục sự cố OpenLDAP.
SMTP bị tắt và người dùng cần đặt lại mật khẩu
Dấu hiệu
Khi SMTP chưa được thiết lập trên Giao diện người dùng Edge mới, người dùng mới được thêm vào Edge cần có cách đặt mật khẩu.
Thông báo lỗi
Unknown username and password combination.

Nguyên nhân có thể xảy ra
Người dùng mới không nhận được email từ đường liên kết "Quên mật khẩu?" để đặt mật khẩu vì SMTP chưa được thiết lập.
Độ phân giải
Bạn có thể giải quyết vấn đề này theo một trong những cách sau:
Giải pháp 1: Định cấu hình máy chủ SMTP
Định cấu hình máy chủ SMTP để đặt mật khẩu mới cho người dùng. Để biết thông tin chi tiết về cách định cấu hình SMTP, hãy xem bài viết Định cấu hình máy chủ SMTP Edge.
Giải pháp 2: Sử dụng LDAP
Nếu bạn không định cấu hình được máy chủ SMTP, hãy dùng các lệnh LDAP bên dưới để đặt mật khẩu mới cho người dùng:
- Quản trị viên tổ chức hiện có phải thêm người dùng cụ thể vào Giao diện người dùng Edge mới (hoặc trong Giao diện người dùng Edge cổ điển ở các phiên bản trước, như trong hình sau):

- Dùng lệnh ldapsearch để tìm tên phân biệt
(dn) của người dùng và chuyển hướng đầu ra đến một tệp:
ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -x -H ldap://localhost:10389 > ldap.txt
Dưới đây là ví dụ về mục nhập dn cho người dùng, cùng với các thuộc tính của người dùng:
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
- Mở tệp ldap.txt và tìm dn của người dùng mới đã được thêm dựa trên thuộc tính email của người dùng mới.
- Thực thi lệnh ldappassword để thêm mật khẩu cho người dùng mới
bằng dn của người dùng đó. Trong ví dụ này, bạn đang đặt mật khẩu của người dùng thành 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"
- Đăng nhập vào Giao diện người dùng Edge mới với tư cách là người dùng mới bằng mật khẩu được xác định ở bước trước. Người dùng có thể đặt mật khẩu mới sau khi đăng nhập vào giao diện người dùng.
LDAP không sao chép
Dấu hiệu
Nhiều bản cài đặt Edge có nhiều trung tâm dữ liệu, chẳng hạn như DC-1 và DC-2. Khi đăng nhập vào Giao diện người dùng Edge mới trong DC-1 với tư cách là quản trị viên tổ chức, bạn có thể xem danh sách người dùng, nhưng danh sách người dùng tương tự không xuất hiện trong Giao diện người dùng Edge mới trong DC-2.
Thông báo lỗi
Không có lỗi nào xuất hiện; Giao diện người dùng Edge mới không hiển thị danh sách người dùng đáng lẽ phải được sao chép trên tất cả các máy chủ OpenLDAP.
Nguyên nhân có thể xảy ra
Thông thường, nguyên nhân của vấn đề này là do cấu hình sao chép OpenLDAP bị định cấu hình sai, chứ không phải do chính bản cài đặt. Ngoài ra, quá trình sao chép có thể bị gián đoạn nếu mạng giữa các máy chủ OpenLDAP không cho phép lưu lượng truy cập trên cổng 10389.
Chẩn đoán
Hãy làm theo các bước sau để chẩn đoán vấn đề:
- Kiểm tra xem ldapsearch có trả về dữ liệu từ mỗi máy chủ OpenLDAP hay không:
ldapsearch -x -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -H ldap://HOST_IP:10389
- Kiểm tra xem bạn có thể kết nối với từng nút OpenLDAP từ các nút OpenLDAP khác trên cổng 10389 hay không.
Nếu telnet được cài đặt, hãy dùng lệnh sau:
telnet <OpenLDAP_Peer_IP> 10389
-
Nếu telnet không có sẵn, hãy dùng netcat để kiểm tra khả năng kết nối như sau:
nc -vz <OpenLDAP_Peer_IP> 10389
- Kiểm tra cấu hình sao chép thời gian chạy bằng lệnh
ldapsearchldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcSyncrepl=*)" olcSyncrepl
Đầu ra phải chứa cấu hình tương tự như sau:
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
- Kiểm tra cấu hình thời gian chạy cho thuộc tính
olcMultiProvider(trước đây làolcMirrorMode) bằng lệnhldapsearchđể xác minh rằng thuộc tính này được đặt thànhTRUE: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
Đầu ra sẽ có dạng như sau:
dn: olcDatabase={2}mdb,cn=config olcMultiProvider: TRUE - Kiểm tra các quy tắc iptables và trình bao bọc tcp. Vui lòng xoá mọi quy tắc không cho phép các máy chủ OpenLDAP ngang hàng giao tiếp với nhau. Hãy làm việc với quản trị viên mạng để đặt quy tắc một cách thích hợp.
- Đảm bảo mật khẩu hệ thống OpenLDAP giống nhau trên mỗi nút OpenLDAP.
- Kiểm tra các ký tự ẩn trong tệp cấu hình ldif đang được dùng để định cấu hình tính năng sao chép OpenLDAP N chiều bằng cách chạy dos2unix đối với các tệp ldif đã được tạo để cập nhật cấu hình. Thông thường, tệp ldif có các ký tự không hợp lệ sẽ khiến lệnh ldapmodify không chạy được và do đó, quá trình sao chép có thể không được thiết lập. Xoá mọi ký tự không hợp lệ và lưu tệp cấu hình.
Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với Nhóm hỗ trợ Apigee để được trợ giúp về việc thiết lập tính năng sao chép OpenLDAP N chiều.
Không thể khởi động OpenLDAP
Dấu hiệu
OpenLDAP không khởi động.
Thông báo lỗi
SLAPD Dead But Pid File Exists
Nguyên nhân có thể xảy ra
Vấn đề này thường là do tệp khoá còn sót lại trên hệ thống tệp và cần được xoá.
Chẩn đoán
Hãy làm theo các bước sau để chẩn đoán vấn đề này:
- Kiểm tra tệp khoá hoặc tệp pid của quy trình slapd OpenLDAP ở vị trí sau:
/opt/apigee/var/run/apigee-openldap/apigee-openldap.lock /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
- Xoá tệp khoá và tệp pid (nếu tìm thấy) rồi thử khởi động lại openldap.
rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lockrm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid - Nếu quy trình slapd OpenLDAP bắt đầu, hãy bỏ qua các bước bên dưới.
- Nếu quy trình slapd OpenLDAP không bắt đầu, hãy thử chạy slapd ở chế độ gỡ lỗi và tìm
mọi lỗi:
slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
- Lỗi có thể chỉ ra các vấn đề về tài nguyên. Kiểm tra mức sử dụng bộ nhớ và CPU trên hệ thống.
- Kiểm tra phiên bản OpenLDAP và nâng cấp nếu phiên bản đó cũ. Kiểm tra các phiên bản được hỗ trợ của
OpenLDAP trong Phần mềm được hỗ trợ.
slapd -V
- Dùng strace để khắc phục sự cố quy trình slapd và cung cấp đầu ra strace cho Nhóm hỗ trợ Apigee:
strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
Lỗi dữ liệu OpenLDAP
Dấu hiệu
Người dùng không còn chạy được các lệnh gọi quản lý hoặc đăng nhập vào Giao diện người dùng Edge mới. Việc sử dụng tiện ích ldapsearch để truy vấn người dùng có thể cho biết người dùng tồn tại trong kho lưu trữ dữ liệu LDAP hoặc có thể xác định những người dùng hoặc vai trò có thể bị thiếu.
Thông báo lỗi
Unknown username and password combination.
Nguyên nhân có thể xảy ra
Thông thường, vấn đề này có thể xảy ra do lỗi dữ liệu OpenLDAP. Thông thường, dữ liệu OpenLDAP không bị lỗi. Tuy nhiên, trong trường hợp hiếm gặp, lỗi có thể là do lỗi ổ đĩa hệ thống hoặc vấn đề về dung lượng ổ đĩa.
Chẩn đoán
- Kiểm tra dung lượng ổ đĩa trên hệ thống đã cài đặt OpenLDAP bằng lệnh bên dưới:
du -m /opt
- Nếu bạn thấy dung lượng ổ đĩa đã dùng gần bằng 100%, thì điều đó cho thấy nguyên nhân của vấn đề này là do hệ thống của bạn hết dung lượng ổ đĩa.
- Kiểm tra tính nhất quán của dữ liệu trên các nút LDAP:
- Trên mỗi nút LDAP, hãy so sánh số lượng người dùng và vai trò. Chạy các lệnh sau rồi so sánh kết quả.
Sự khác biệt về số lượng giữa các nút cho thấy có thể xảy ra lỗi dữ liệu.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 - Xác minh trạng thái sao chép LDAP. Chạy lệnh sau trên mỗi nút LDAP.
Nếu giá trị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
contextCSNgiống nhau trên tất cả các nút, thì quá trình sao chép LDAP đang hoạt động bình thường.
- Trên mỗi nút LDAP, hãy so sánh số lượng người dùng và vai trò. Chạy các lệnh sau rồi so sánh kết quả.
Độ phân giải
Nếu hệ thống của bạn đã hết dung lượng ổ đĩa hoặc sắp hết dung lượng ổ đĩa, hãy thêm dung lượng ổ đĩa để đảm bảo có đủ dung lượng.
Sau khi có đủ dung lượng ổ đĩa, hãy dùng một trong các giải pháp sau để giải quyết vấn đề về lỗi dữ liệu LDAP:
- Khôi phục dữ liệu OpenLDAP từ bản sao lưu.
-
Dọn dẹp cơ sở dữ liệu OpenLDAP bằng cách làm theo các bước sau:
- Tắt Máy chủ quản lý 2 và LDAP2.
- Khôi phục LDAP1 từ bản sao lưu máy ảo (hoặc bản sao lưu Apigee).
- Kiểm tra Máy chủ quản lý 1 để biết thông tin về quá trình khởi động và khôi phục.
- Sau khi Máy chủ quản lý 1 và LDAP1 hoạt động bình thường, hãy cài đặt lại LDAP2 từ đầu (tạo một trạng thái hoàn toàn trống).
- Thiết lập LDAP2 ở chế độ chỉ có thể đọc, cho phép LDAP1 sao chép sang LDAP2.
- Dùng
ldapsearchđể xác minh rằng số dòng trong LDAP1 và LDAP2 khớp nhau. - Khởi động lại Máy chủ quản lý 2 và Giao diện người dùng Edge mới trên nút 2, đồng thời xác nhận rằng chúng khởi động thành công.
Để biết hướng dẫn chi tiết, hãy xem Trình theo dõi sự cố công khai.
Giải pháp 1: Khôi phục dữ liệu LDAP từ bản sao lưu
Trên một nút OpenLDAP đang hoạt động, hãy tạo bản sao lưu. Bạn nên sao lưu thường xuyên. Hãy xem Hướng dẫn vận hành Apigee Private Cloud để biết các phương pháp hay nhất về bản sao lưu:
slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
Bạn có thể dùng các bước sau để khôi phục dữ liệu OpenLDAP từ bản sao lưu tốt.
- Dừng nút OpenLDAP mà bạn cần khôi phục dữ liệu:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- Thay đổi thư mục thành thư mục dữ liệu OpenLDAP:
cd /opt/apigee/data/apigee-openldap
- Sao lưu dữ liệu OpenLDAP hiện có bằng lệnh di chuyển:
mv ldap ldap_orig
- Chuyển sang người dùng apigee:
su apigee
- Từ thư mục
/opt/apigee/data/apigee-openldap, hãy tạo thư mục dữ liệu OpenLDAP mới có tên ban đầu:mkdir ldap
- Sao lưu thư mục con ldap_orig/DB_CONFIG từ bước 3 rồi sao chép vào thư mục
openldap.
cp ldap_orig/DB_CONFIG ldap
- Để khôi phục dữ liệu từ bản sao lưu được tạo bằng slapcat, hãy dùng slapadd để nhập ldif chứa dữ liệu tốt:
slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
- Bắt đầu quy trình OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
Giải pháp 2: Dọn dẹp cơ sở dữ liệu LDAP
Các bước sau sẽ xoá cơ sở dữ liệu OpenLDAP để bắt đầu lại. Bạn có thể dùng giải pháp này nếu không có bản sao lưu dữ liệu của trạng thái gần đây nhất mà dữ liệu OpenLDAP hoạt động.
- Dừng dịch vụ OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- Thay đổi thư mục thành thư mục dữ liệu OpenLDAP:
cd /opt/apigee/data/apigee-openldap
- Sao lưu dữ liệu OpenLDAP hiện có bằng lệnh di chuyển:
mv ldap ldap_orig
- Chuyển sang người dùng apigee:
su apigee
- Tạo thư mục dữ liệu OpenLDAP mới có tên ban đầu:
mkdir ldap
- Sao lưu thư mục con ldap_orig/DB_CONFIG từ bước 3 rồi sao chép vào thư mục openldap:
cp ldap_orig/DB_CONFIG ldap
- Khởi động lại quy trình OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
- Khởi động lại Máy chủ quản lý để buộc làm mới các kết nối với OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Giải pháp 3: Đặt lại OpenLDAP về bản cài đặt cơ bản
Nếu Giải pháp 2 không giải quyết được vấn đề, bạn có thể đặt lại OpenLDAP về bản cài đặt cơ bản, như mô tả trong phần này.
Điều kiện tiên quyết
Để đặt lại OpenLDAP, bạn cần đáp ứng các điều kiện tiên quyết sau:
- Có thể chạy chương trình thiết lập bằng thông tin đăng nhập LDAP gốc và quản trị viên hệ thống.
- Quyền truy cập vào tiện ích
ldapadd. - Tệp cấu hình im lặng gốc đã lưu cho nút quản lý/LDAP.
Để đặt lại OpenLDAP, hãy làm theo các bước sau:
- Cài đặt lại OpenLDAP và Máy chủ quản lý.
- Dừng máy chủ
openldap:apigee-service apigee-openldap stop
- Xoá thư mục dữ liệu
openldapbị lỗi:rm -rf /opt/apigee/data/apigee-openldap
- Gỡ cài đặt thành phần
openldap:apigee-service apigee-openldap uninstall
- Cài đặt lại thành phần
openldapbằng tệp cấu hình đã dùng cho lần cài đặt ban đầu: trong đó/opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
configfilelà tên của tệp cấu hình. - Cài đặt lại Máy chủ quản lý bằng tệp cấu hình ban đầu:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile
Sau khi thực hiện các bước này, các lệnh gọi API quản lý sẽ hoạt động trở lại chỉ bằng tài khoản
sysadminchỉ. Tuy nhiên, bạn không thể đăng nhập vào Giao diện người dùng Edge mới và các lệnh gọi API quản lý bằng bất kỳ người dùng nào khác sẽ không hoạt động. - Dừng máy chủ
- Thêm các mục nhập
openldapbị thiếu cho các tổ chức tồn tại trước khi xảy ra lỗi.Sau khi hoàn tất bước trên,
openldapsẽ thiếu các mục nhập cho các tổ chức tồn tại khi xảy ra lỗi. Phần lớn dữ liệu tổ chức thực tế, chẳng hạn như gói proxy được lưu trữ trong Cassandra hoặc Zookeeper, sẽ không bị mất. Tuy nhiên, việc chạy tập lệnh thiết lập tổ chức sẽ không tự động thêm dữ liệu openldap cho các tổ chức đã tồn tại trong Cassandra và Zookeeper. Bạn phải thêm dữ liệu này theo cách thủ công cho mọi tổ chức tồn tại trước khi xảy ra lỗi bằng cách làm theo các bước sau:- Tạo tệp ldif có tên
missingLDAP.ldifvới nội dung sau:# 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: @@@
trong đó orgname là tổ chức mà bạn đang cố gắng tạo lại.
- Thêm các thực thể LDAP bị thiếu bằng lệnh sau:
ldapadd -x -w "OPENLDAP_ROOT_PASSWORD" -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif
Các bước trên sẽ tạo các mục nhập bị thiếu cho một tổ chức hiện có và các
orgadminquyền cho tổ chức đó. Lặp lại các bước cho từng tổ chức cần được tạo lại. Tại thời điểm này, bạn có thể thêm người dùngorgadminvào một tổ chức, nhưng các vai trò mặc định khác chưa tồn tại, vì vậy, bạn cần thêm các vai trò đó bằng bước tiếp theo. - Tạo tệp ldif có tên
Thêm các vai trò và quyền mặc định bị thiếu vào một tổ chức hiện có.
Dùng tệp cấu hình ban đầu dùng để thiết lập bất kỳ tổ chức hiện có nào, hãy chạy lệnh sau:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
- Thêm mọi vai trò tuỳ chỉnh tồn tại trước khi xảy ra lỗi bằng Giao diện người dùng Edge mới hoặc API quản lý,
- Thêm mọi người dùng vào các vai trò người dùng có liên quan.
(Không bắt buộc) Thiết lập lại Cấu hình xác thực bên ngoài trên phần Quản lý.
Khôi phục
/opt/apigee/customer/application/management-server.propertiesnếu cấu hình không thay đổi. Vì Giao diện người dùng Edge mới chưa được cài đặt lại,/opt/apigee/customer/application/management-ui.propertiesvẫn giữ nguyên sau khi thông tin đăng nhập cho tài khoảnsysadminđược khôi phục bằng bản cài đặt mới của Máy chủ quản lý.(Không bắt buộc) Cài đặt lại Apigee mTLS trên nút Quản lý.
Nếu bạn đã cài đặt Apigee mTLS trước đó, hãy làm theo Hướng dẫn cài đặt Apigee mTLS để cài đặt lại nó trên nút máy chủ quản lý.
Sau khi làm theo quy trình này, bạn cần thực hiện theo cách thủ công:
Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với Nhóm hỗ trợ Apigee để được trợ giúp thêm.