Rozwiązywanie problemów z OpenLDAP

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W tej sekcji znajdziesz informacje i wskazówki dotyczące rozwiązywania problemów z OpenLDAP.

Usługa SMTP jest wyłączona, a użytkownicy muszą zresetować hasło

Krótki opis problemu

Jeśli SMTP nie jest skonfigurowany w interfejsie Edge, nowi użytkownicy dodani do Edge muszą mieć możliwość ustawienia hasła.

Komunikaty o błędach

Unknown username and password combination.

Możliwe przyczyny

Nowi użytkownicy nie mogą otrzymywać e-maili z linkiem „Nie pamiętasz hasła?”, aby ustawić hasło, ponieważ nie jest skonfigurowana usługa SMTP.

Rozdzielczość

Możesz rozwiązać ten problem na jeden z tych sposobów:

Rozwiązanie 1. Skonfiguruj serwer SMTP

Skonfiguruj serwer SMTP, aby ustawić nowe hasło dla użytkownika, korzystając z instrukcji podanych w dokumentacji.

Rozwiązanie 2. Korzystanie z LDAP

Jeśli nie możesz skonfigurować serwera SMTP, użyj tych poleceń LDAP, aby ustawić nowe hasło dla użytkownika:

  1. Administrator organizacji musi dodać konkretnego użytkownika za pomocą interfejsu Edge, jak pokazano poniżej:

  2. Użyj polecenia ldapsearch, aby znaleźć nazwę wyróżnioną użytkownika (dn) i przekierować dane wyjściowe do pliku:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt

    Oto przykład wpisu dn dla użytkownika wraz z jego atrybutami:

    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. Otwórz plik ldap.txt i znajdź dn nowego użytkownika, który został dodany na podstawie atrybutu e-mail nowego użytkownika.
  4. Wykonaj polecenie ldappassword, aby dodać hasło dla nowego użytkownika, używając jego DN. W tym przykładzie hasło użytkownika to 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"
  5. Zaloguj się w interfejsie Edge jako nowy użytkownik, używając hasła zdefiniowanego w poprzednim kroku. Użytkownik może ustawić nowe hasło po zalogowaniu się w interfejsie.

LDAP nie replikuje

Krótki opis problemu

Wiele instalacji Edge ma wiele centrów danych, na przykład DC-1 i DC-2. Po zalogowaniu się w interfejsie Edge w DC-1 jako administrator organizacji możesz wyświetlić listę użytkowników, ale ta sama lista nie pojawia się w interfejsie Edge w DC-2.

Komunikaty o błędach

Nie pojawiają się żadne błędy, a interfejs Edge nie wyświetla listy użytkowników, która powinna zostać zduplikowana na wszystkich serwerach OpenLDAP.

Możliwe przyczyny

Przyczyną tego problemu jest zwykle nieprawidłowo skonfigurowana konfiguracja replikacji OpenLDAP, a nie sama instalacja. Replikacja może się też nie udać, jeśli sieć między serwerami OpenLDAP nie zezwala na ruch na porcie 10389.

Diagnostyka

Aby zdiagnozować problem, wykonaj te czynności:

  1. Sprawdź, czy polecenie ldapsearch zwraca dane z każdego serwera OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
  2. Sprawdź, czy możesz połączyć się z każdym węzłem OpenLDAP z innych węzłów OpenLDAP przez port 10389. Jeśli program telnet jest zainstalowany, użyj tego polecenia:
    telnet <OpenLDAP_Peer_IP> 10389
  3. Jeśli telnet jest niedostępny, sprawdź połączenie za pomocą netcat w ten sposób:

    nc -vz <OpenLDAP_Peer_IP> 10389
  4. Sprawdź konfigurację replikacji w tym pliku:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

    Plik powinien zawierać taką konfigurację:

    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. W tym samym pliku sprawdź też wartość atrybutu olcMirrorMode. Należy ją ustawić na wartość PRAWDA:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  6. Sprawdź reguły iptables i tcp wrapper. Usuń wszystkie reguły, które uniemożliwiają komunikację między serwerami OpenLDAP. Skontaktuj się z administratorem sieci, aby odpowiednio skonfigurować reguły.
  7. Upewnij się, że hasło systemu OpenLDAP jest takie samo na każdym węźle OpenLDAP.
  8. Sprawdź, czy w plikach konfiguracji ldif, które są używane do konfigurowania replikacji N-Way OpenLDAP, nie ma ukrytych znaków. Aby to zrobić, uruchom polecenie dos2unix w odniesieniu do plików ldif, które zostały utworzone w celu zaktualizowania konfiguracji. Zwykle plik ldif zawierający nieprawidłowe znaki powoduje, że polecenie ldapmodify nie może zostać wykonane, przez co replikacja może nie zostać skonfigurowana. Usuń wszystkie nieprawidłowe znaki i zapisz pliki konfiguracji.

Jeśli problem będzie się nadal pojawiać, skontaktuj się z zespołem pomocy Apigee, aby uzyskać pomoc w konfigurowaniu replikowania N-Way OpenLDAP.

Nie udało się uruchomić OpenLDAP

Krótki opis problemu

OpenLDAP się nie uruchamia.

Komunikaty o błędach

SLAPD Dead But Pid File Exists

Możliwe przyczyny

Ten problem jest zwykle spowodowany przez plik blokady, który pozostał w systemie plików i musi zostać usunięty.

Diagnostyka

Aby zdiagnozować ten problem, wykonaj te czynności:

  1. Sprawdź, czy w tej lokalizacji nie ma pliku blokady procesu slapd lub pliku pid OpenLDAP:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  2. Usuń pliki lock i pid, jeśli je znajdziesz, i spróbuj ponownie uruchomić openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  3. Jeśli rozpocznie się proces OpenLDAP slapd, pomiń te czynności.
  4. Jeśli proces slapd w OpenLDAP nie uruchamia się, uruchom go w trybie debugowania i sprawdź, czy nie występują błędy:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
  5. Błędy mogą wskazywać na problemy z zasobami. Sprawdź wykorzystanie pamięci i procesora w systemie.
  6. Sprawdź wersję OpenLDAP i zaktualizuj ją, jeśli jest stara. Sprawdź obsługiwane wersje OpenLDAP w dokumencie Obsługiwane oprogramowanie.
    slapd -V
  7. Użyj polecenia strace do rozwiązywania problemów z procesem slapd i do przesyłania danych wyjściowych tego polecenia do zespołu pomocy Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>

Uszkodzenie danych OpenLDAP

Krótki opis problemu

Użytkownicy nie mogą już wywoływać wywołań do zarządzania ani logować się w interfejsie Edge. Użycie narzędzia ldapsearch do wysłania zapytania do użytkowników może wskazywać, że użytkownik istnieje w danych katalogu LDAP, lub może zidentyfikować brakujących użytkowników lub role.

Komunikaty o błędach

Unknown username and password combination.

Możliwe przyczyny

Ten problem występuje zwykle z powodu uszkodzenia danych OpenLDAP. Dane OpenLDAP zwykle nie są uszkodzone. W rzadkich przypadkach może to być spowodowane awarią dysku systemowego lub problemami z miejscem na dysku.

Diagnostyka

  1. Sprawdź miejsce na dysku w systemie z zainstalowanym OpenLDAP za pomocą tego polecenia:
    du -m /opt
  2. Jeśli widzisz, że zajęte miejsce na dysku jest bardzo bliskie 100%, oznacza to, że przyczyną problemu jest brak miejsca na dysku.

Rozdzielczość

Jeśli na dysku systemowym kończy się miejsce lub jest bardzo mało wolnego miejsca, dodaj więcej miejsca na dysku, aby zapewnić odpowiednią dostępność.

Gdy masz wystarczająco dużo miejsca na dysku, skorzystaj z jednego z tych rozwiązań, aby rozwiązać problem z uszkodzonymi danymi LDAP:

  1. Przywróć dane OpenLDAP z kopii zapasowej.
  2. Aby wyczyścić bazę danych OpenLDAP:
    1. Wyłącz serwer zarządzania 2 i LDAP2.
    2. Przywróć LDAP1 z kopii zapasowej maszyny wirtualnej (lub kopii zapasowej Apigee).
    3. Sprawdź serwer zarządzający 1 pod kątem uruchamiania i przywracania.
    4. Gdy serwer zarządzający 1 i LDAP1 działają prawidłowo, ponownie zainstaluj LDAP2 od podstaw (utwórz całkowicie pustą tablicę).
    5. Skonfiguruj LDAP2 w trybie tylko do odczytu, aby umożliwić LDAP1 replikowanie się na LDAP2.
    6. Użyj ldapsearch, aby sprawdzić, czy liczba wierszy w LDAP1 i LDAP2 jest taka sama.
    7. Uruchom ponownie Management Server 2 i UI2 i sprawdź, czy zostały uruchomione.

Szczegółowe instrukcje znajdziesz w Narzędziu do śledzenia problemów publicznych.

Rozwiązanie 1. Przywróć dane LDAP z kopii zapasowej

Na działającym węźle OpenLDAP utwórz kopię zapasową. Kopie zapasowe powinny być tworzone regularnie. Aby dowiedzieć się więcej o sprawdzonych metodach tworzenia kopii zapasowych, zapoznaj się z przewodnikiem operacji w usłudze Apigee Private Cloud.

slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif

Aby przywrócić dane OpenLDAP z dobrej kopii zapasowej, wykonaj te czynności.

  1. Zatrzymaj węzeł OpenLDAP, którego dane mają zostać przywrócone:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  2. Zmień katalog na katalog danych OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
  3. Utwórz kopię zapasową dotychczasowych danych OpenLDAP za pomocą polecenia move:
    mv ldap ldap_orig
  4. Przełącz się na użytkownika apigee:
    su apigee
  5. W katalogu /opt/apigee/data/apigee-openldap utwórz nowy katalog danych OpenLDAP o pierwotnej nazwie:
    mkdir ldap
  6. Skopiuj kopię zapasową podkatalogu ldap_orig/DB_CONFIG z kroku 3 i wklej ją do katalogu openldap.
    cp ldap_orig/DB_CONFIG ldap
  7. Aby przywrócić dane z kopii zapasowej utworzonej za pomocą slapcat, użyj slapadd, aby zaimportować plik ldif zawierający prawidłowe dane:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
  8. Rozpocznij proces OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start

Rozwiązanie 2. Wyczyść bazę danych LDAP

Wykonując podane niżej czynności, wykasujesz bazę danych OpenLDAP, aby zacząć od nowa. Można go zastosować, jeśli nie ma kopii zapasowej danych z ostatniego stanu, w którym dane OpenLDAP działały prawidłowo.

  1. Zatrzymaj usługę OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  2. Zmień katalog na katalog danych OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
  3. Utwórz kopię zapasową dotychczasowych danych OpenLDAP za pomocą polecenia move:
    mv ldap ldap_orig
  4. Przełącz się na użytkownika apigee:
    su apigee
  5. Utwórz nowy katalog danych OpenLDAP o pierwotnej nazwie:
    mkdir ldap
  6. Z podkatalogu ldap_orig/DB_CONFIG z kroku 3 skopiuj katalog kopii zapasowej do katalogu openldap:
    cp ldap_orig/DB_CONFIG ldap
  7. Ponownie uruchom proces OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
  8. Aby wymusić odświeżenie połączeń z OpenLDAP, zrestartuj serwer zarządzania:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Rozwiązanie 3. Przywróć OpenLDAP do podstawowej instalacji

Jeśli rozwiązanie 2 nie rozwiąże problemu, możesz zresetować OpenLDAP do podstawowej instalacji, jak opisano w tej sekcji.

Wymagania wstępne

Aby zresetować OpenLDAP, musisz spełnić te wymagania wstępne:

  • Możliwość uruchomienia konfiguracji przy użyciu danych logowania administratora systemu i roota LDAP.
  • Dostęp do narzędzia ldapadd.
  • Zapisane oryginalne pliki konfiguracji w trybie bez interakcji dla węzła zarządzania lub LDAP.

Aby zresetować OpenLDAP, wykonaj te czynności:

  1. Ponownie zainstaluj OpenLDAP i serwer zarządzania.
    1. Zatrzymaj serwer openldap:
      apigee-service apigee-openldap stop
    2. Usuń uszkodzony folder danych openldap:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Odinstaluj komponent openldap:
      apigee-service apigee-openldap uninstall
    4. Ponownie zainstaluj komponent openldap, używając tego samego pliku konfiguracji, który został użyty podczas początkowej instalacji:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      gdzie configfile to nazwa pliku konfiguracji.
    5. Ponownie zainstaluj serwer zarządzania, używając oryginalnego pliku konfiguracji:
      /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: @@@

      gdzie orgname to organizacja, którą próbujesz odtworzyć.

    2. Dodaj brakujące elementy LDAP za pomocą tego polecenia:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Wyżej opisane czynności spowodują utworzenie brakujących wpisów dla istniejącej organizacji oraz uprawnień orgadmin tej organizacji. Powtórz te czynności w przypadku każdej organizacji, którą trzeba odtworzyć. W tym momencie możesz dodać do organizacji użytkowników o roli orgadmin, ale inne domyślne role jeszcze nie istnieją, więc musisz je dodać w następnym kroku.

  3. Dodaj do istniejącej organizacji brakujące domyślne role i uprawnienia.

    Używając tego samego pliku konfiguracji, którego użyto do skonfigurowania istniejącej organizacji, uruchom to polecenie:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Po wykonaniu tej procedury musisz ręcznie:

    • Dodaj role niestandardowe, które istniały przed wystąpieniem błędu, za pomocą interfejsu użytkownika lub interfejsu API do zarządzania.
    • Dodaj dowolnych użytkowników do odpowiednich ról.
  5. (Opcjonalnie) Ponownie skonfiguruj uwierzytelnianie zewnętrzne na serwerze zarządzania.

    Przywróć /opt/apigee/customer/application/management-server.properties, jeśli konfiguracja nie została zmieniona. Interfejs użytkownika nie został ponownie zainstalowany, więc dane logowania /opt/apigee/customer/application/ui.properties powinny pozostać takie same, ponieważ zostały przywrócone w ramach nowej instalacji zarządzania.

  6. (Opcjonalnie) Ponownie zainstaluj Apigee mTLS na węźle zarządzania.

    Jeśli Apigee mTLS było wcześniej zainstalowane, postępuj zgodnie z instrukcjami w przewodniku instalacji Apigee mTLS, aby ponownie je zainstalować na węźle serwera zarządzania.

Jeśli problem będzie się powtarzał, skontaktuj się z zespołem pomocy Apigee, aby uzyskać dalszą pomoc.