Khắc phục sự cố OpenLDAP

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Phần này cung cấp thông tin và hướng dẫn về cách khắc phục sự cố Open LDAP.

SMTP đã bị vô hiệu hoá và người dùng cần đặt lại mật khẩu

Triệu chứng

Khi SMTP không được thiết lập trên giao diện người dùng Edge, những người dùng mới được thêm vào Edge sẽ cần đặ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 thể nhận email từ đường liên kết "Bạn 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 các cách sau:

Giải pháp số 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 bằng cách sử dụng hướng dẫn được nêu trong tài liệu.

Giải pháp 2: Sử dụng LDAP

Nếu bạn không thể định cấu hình máy chủ SMTP, hãy sử dụng các lệnh LDAP dưới đây để đặt mật khẩu mới cho người dùng:

  1. Quản trị viên hiện tại của tổ chức cần thêm người dùng cụ thể thông qua giao diện người dùng Edge như sau:

  2. Dùng lệnh ldapsearch để tìm tên phân biệt của người dùng (dn) 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 -h localhost -p 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 cho 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
    
  3. Mở tệp ldap.txt rồi tìm 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.
  4. Thực thi lệnh ldappassword để thêm mật khẩu cho người dùng mới bằng dn. Trong ví dụ này, bạn đang đặt mật khẩu của người dùng là Apigee:
    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"
    
  5. Đăng nhập vào giao diện người dùng Edge 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.

Giao thức truy cập thư mục hạng nhẹ (LDAP) không sao chép

Triệu chứng

Nhiều ứng dụng cài đặt Edge có nhiều trung tâm dữ liệu, ví dụ như DC-1 và DC-2. Khi đăng nhập vào giao diện người dùng Edge 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 đó không xuất hiện trong giao diện người dùng Edge 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 chỉ không hiển thị danh sách người dùng cần được sao chép trên tất cả các máy chủ Open LDAP.

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 quá trình cài đặt. Ngoài ra, quá trình sao chép có thể bị hỏng nếu mạng giữa các máy chủ Open LDAP 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 đề:

  1. Kiểm tra xem ldapsearch có trả về dữ liệu từ mỗi máy chủ Open LDAP hay không:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. 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 đã cài đặt telnet, hãy dùng lệnh sau:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Nếu không có telnet, hãy dùng netcat để kiểm tra kết nối như sau:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Kiểm tra cấu hình sao chép trong tệp sau:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    Tệp phải chứa cấu hình như sau:

    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
    
  5. Ngoài ra, hãy kiểm tra cùng tệp đó để tìm giá trị của thuộc tính olcMirrorMode. Thuộc tính này phải được đặt thành giá trị TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Kiểm tra các quy tắc về trình bao bọc iptables và 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 của bạn để đặt các quy tắc phù hợp.
  7. Đảm bảo mật khẩu hệ thống OpenLDAP trên mỗi nút OpenLDAP đều giống nhau.
  8. 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 sao chép N-Way OpenLDAP bằng cách chạy dos2unix dựa trên các tệp ldif đã được tạo để cập nhật cấu hình. Thông thường, một 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 đó có thể không thiết lập được tính năng nhân bản. Hãy xoá mọi ký tự không hợp lệ và lưu các 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 hỗ trợ thiết lập bản sao chép Open LDAP.

Không thể khởi động OpenLDAP

Triệu chứng

Open LDAP 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 do một tệp khoá bị lưu lại trong 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:

  1. Kiểm tra xem có khoá quá trình slaPD Open LDAP hoặc tệp pid ở vị trí sau không:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. 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.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. Nếu quá trình khởi động slaPD Open LDAP, hãy bỏ qua các bước bên dưới.
  4. Nếu quá trình xử lý slagg Open LDAP không khởi động, 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
    
  5. Lỗi có thể là do vấn đề về tài nguyên. Kiểm tra mức sử dụng bộ nhớ và CPU trên hệ thống.
  6. Kiểm tra phiên bản OpenLDAP và nâng cấp nếu phiên bản này đã cũ. Kiểm tra các phiên bản được hỗ trợ của OpenLDAP trong tài liệu Phần mềm được hỗ trợ.
    slapd -V
    
  7. Sử dụng strace để khắc phục sự cố liên quan đến quy trình kém hiệu quả và cung cấp kết quả 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>
    

Gián đoạn dữ liệu Open LDAP

Triệu chứng

Người dùng không thể chạy các lệnh gọi quản lý hoặc đăng nhập vào giao diện người dùng Edge nữa. 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 dữ liệu LDAP hoặc có thể xác định người dùng hoặc vai trò bị thiếu có thể xảy ra.

Thông báo lỗi

Unknown username and password combination.

Nguyên nhân có thể xảy ra

Thông thường, bạn có thể thấy vấn đề này do dữ liệu Open LDAP bị hỏng. Thông thường, dữ liệu Open LDAP không bị hỏng. Tuy nhiên, trong một số ít trường hợp, sự cố hỏng có thể là do lỗi ổ đĩa hệ thống hoặc vấn đề về dung lượng ổ đĩa.

Chẩn đoán

  1. Kiểm tra dung lượng ổ đĩa trên hệ thống có cài đặt Open LDAP bằng lệnh bên dưới:
    du -m /opt
    
  2. Nếu bạn thấy dung lượng ổ đĩa đã sử dụng sắp đạt đến 100%, thì 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.

Độ 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 tăng thêm dung lượng ổ đĩa để đảm bảo bạn có đủ dung lượng ổ đĩa.

Khi bạn có đủ dung lượng ổ đĩa, hãy sử dụng một trong các giải pháp dưới đây để giải quyết vấn đề hỏng dữ liệu LDAP:

  1. Khôi phục dữ liệu Open LDAP từ bản sao lưu.
  2. Dọn dẹp cơ sở dữ liệu OpenLDAP.

Giải pháp 1 Khôi phục dữ liệu LDAP từ bản sao lưu

Trên nút OpenLDAP đang hoạt động, hãy tạo bản sao lưu. Bạn nên thường xuyên sao lưu. Xem Hướng dẫn cách hoạt động của API riêng tư trên đám mây để 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ể sử dụng các bước sau để khôi phục dữ liệu Open LDAP từ một bản sao lưu hợp lệ.

  1. Dừng nút Open LDAP mà dữ liệu cần được khôi phục:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Thay đổi thư mục thành thư mục dữ liệu OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sao lưu dữ liệu OpenLDAP hiện có bằng lệnh di chuyển:
    mv ldap ldap_orig
    
  4. Chuyển sang người dùng API:
    su apigee
    
  5. Trong thư mục /opt/apigee/data/apigee-openldap, hãy tạo một thư mục dữ liệu OpenLDAP mới có tên gốc:
    mkdir ldap
    
  6. Sao lưu thư mục con ldap_orig/DB_CONFIG từ bước 3 rồi sao chép thư mục đó vào thư mục openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Để khôi phục dữ liệu từ quá trình sao lưu được thực hiện bằng slapcat, hãy sử dụng slapadd để nhập ldif (chứa dữ liệu hợp lệ):
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Bắt đầu quá trình Open LDAP:
    /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 đây sẽ xoá sạch cơ sở dữ liệu OpenLDAP để bắt đầu lại. Bạn có thể sử dụng giải pháp này nếu không có bản sao lưu dữ liệu trạng thái cuối cùng mà dữ liệu OpenLDAP đang hoạt động.

  1. Dừng dịch vụ Open LDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Thay đổi thư mục thành thư mục dữ liệu OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sao lưu dữ liệu OpenLDAP hiện có bằng lệnh di chuyển:
    mv ldap ldap_orig
    
  4. Chuyển sang người dùng API:
    su apigee
    
  5. Tạo thư mục dữ liệu Open LDAP mới có tên gốc:
    mkdir ldap
    
  6. Lấy thư mục con ldap_orig/DB_CONFIG sao lưu ở bước 3 rồi sao chép thư mục đó vào thư mục openldap:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Khởi động lại quá trình Open LDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Khởi động lại Máy chủ quản lý để buộc làm mới các kết nối tới OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Giải pháp số 3 Đặt lại OpenLDAP về 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 Open LDAP về chế độ 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 điều kiện tiên quyết sau:

  • Khả năng chạy thiết lập bằng thông tin xác thực 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:

  1. Cài đặt lại OpenLDAP và Máy chủ quản lý.
    1. Dừng máy chủ openldap:
      apigee-service apigee-openldap stop
    2. Xoá thư mục dữ liệu openldap bị hỏng:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Gỡ cài đặt thành phần openldap:
      apigee-service apigee-openldap uninstall
    4. Cài đặt lại thành phần openldap bằng chính tệp cấu hình đã dùng cho lần cài đặt ban đầu:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      , trong đó configfile là tên của tệp cấu hình.
    5. Cài đặt lại Máy chủ quản lý bằng cách sử dụng tệp cấu hình ban đầu:
      /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.

  2. 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:

    1. 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: @@@

      trong đó orgname là tổ chức bạn đang cố tạo lại.

    2. Thêm các thực thể LDAP bị thiếu bằng lệnh sau:
      ldapadd -x -w  -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 tổ chức hiện tại, cũng như các quyền orgadmin 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 orgadmin người dùng vào 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 họ bằng bước tiếp theo.

  3. Thêm các vai trò và quyền mặc định còn thiếu vào một tổ chức hiện có.

    Sử dụng chính tệp cấu hình dùng ban đầu để 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
  4. Sau khi làm theo quy trình này, bạn cần phải:

    • Thêm mọi vai trò tuỳ chỉnh từng tồn tại trước khi xảy ra lỗi bằng cách sử dụng giao diện người dùng hoặc API quản lý,
    • Thêm bất kỳ người dùng nào vào vai trò người dùng có liên quan.
  5. (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.properties nếu cấu hình chưa thay đổi. Vì giao diện người dùng chưa được cài đặt lại, nên /opt/apigee/customer/application/ui.properties sẽ không thay đổi, vì thông tin đăng nhập cho quản trị viên hệ thống đã được khôi phục bằng bản cài đặt mới của phần quản lý.

  6. (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 ứng dụng này trên nút máy chủ quản lý.

Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với Nhóm hỗ trợ API để được hỗ trợ thêm.