Rozwiązywanie problemów z OpenLDAP

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Ta sekcja zawiera informacje i wskazówki dotyczące rozwiązywania problemów z OpenLDAP.

SMTP jest wyłączony, a użytkownicy muszą zresetować dane hasło

Krótki opis problemu

Jeśli protokół 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 powiadomienia „Nie pamiętasz hasła?”, link do ustawienia hasło, ponieważ protokół SMTP nie został skonfigurowany.

Rozdzielczość

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

Rozwiązanie 1: Skonfiguruj serwer SMTP

Skonfiguruj serwer SMTP tak, aby ustawić nowe hasło dla użytkownika zgodnie z podanymi instrukcjami. znajdziesz w dokumentacji.

Rozwiązanie nr 2: użycie LDAP

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

  1. Obecny administrator organizacji musi dodać określonego użytkownika za pomocą interfejsu Edge w następujący sposób:

  2. Użyj polecenia ldapsearch, aby znaleźć wyróżniającą nazwę użytkownika. (dn) i przekieruj 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ź identyfikator dn nowego użytkownika, który został dodany. na podstawie atrybutu adresu e-mail nowego użytkownika.
  4. Wykonaj polecenie ldappassword, aby dodać hasło do nowego użytkownika. przy użyciu jego nazwy domeny. W tym przykładzie ustawiasz hasło użytkownika Apigee 123:
    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 z hasłem określonym w poprzednim kroku. użytkownik może ustawić nowe hasło po zalogowaniu się do interfejsu użytkownika.

LDAP nie replikuje

Krótki opis problemu

Wiele instalacji Edge ma wiele centrów danych, na przykład DC-1 i DC-2. Podczas logowania w interfejsie Edge w DC-1 jako administrator organizacji możesz wyświetlać listę użytkowników, ale tę samą nie jest widoczny w interfejsie Edge w DC-2.

Komunikaty o błędach

Nie pojawią się żadne błędy. W interfejsie Edge nie będzie po prostu listy użytkowników, którzy powinni zostać zreplikowana na wszystkich serwerach OpenLDAP.

Możliwe przyczyny

Zwykle przyczyną tego problemu jest błędna konfiguracja replikacji OpenLDAP, a nie samej instalacji. Replikacja może również ulec awarii, jeśli sieć między serwerami OpenLDAP nie zezwala na ruch przez port 10389.

Diagnostyka

Aby zdiagnozować problem, wykonaj te czynności:

  1. Sprawdź, czy 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 na porcie 10389. Jeśli usługa telnet jest zainstalowana, użyj następującego polecenia:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Jeśli usługa Telnet jest niedostępna, użyj narzędzia netcat, aby sprawdzić łączność w następujący 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ć konfigurację podobną do tej:

    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. Powinna być ustaw wartość TRUE (PRAWDA):
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Sprawdź, czy istnieją reguły IPtable i kodu tcp. Usuń wszystkie reguły, które nie zezwalają równorzędnych serwerów OpenLDAP do komunikowania się ze sobą. Współpraca z administratorem sieci aby odpowiednio ustawić reguły.
  7. Upewnij się, że hasło systemu OpenLDAP jest takie samo w każdym węźle OpenLDAP.
  8. Poszukaj ukrytych znaków w plikach konfiguracji ldif, które są używane do skonfigurować N-Way replikację OpenLDAP, uruchamiając dos2unix względem plików ldif, które zostały utworzony w celu zaktualizowania konfiguracji. Zazwyczaj przyczyną nie można uruchomić polecenia ldapmodify i replikacja może nie zostać skonfigurowana. Usuń wszystkie nieprawidłowe i zapisz pliki konfiguracji.

Jeśli problem będzie się powtarzał, skontaktuj się z: pomocy Apigee, aby uzyskać pomoc przy konfigurowaniu replikacji 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

Przyczyną tego problemu jest zwykle plik blokady, który pozostaje w systemie plików i wymaga zostaną usunięte.

Diagnostyka

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

  1. Wyszukaj plik pid z blokadą procesu OpenLDAP lub plik pid w tej lokalizacji:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. Usuń znalezione pliki blokady i pid, a następnie 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 nakładania elementów w OpenLDAP, pomiń poniższe kroki.
  4. Jeśli proces nakładania elementów w OpenLDAP się nie uruchomi, uruchom to polecenie w trybie debugowania i znajdź jakieś 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 uaktualnij ją, jeśli jest stara. Sprawdź obsługiwane wersje OpenLDAP w dokumencie Obsługiwane oprogramowanie.
    slapd -V
    
  7. Użyj strace, aby rozwiązać problemy z procesem nakładania i zapewnić dane wyjściowe strace dla Zespół 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 będą już mogli uruchamiać wywołań zarządzania ani logować się w interfejsie Edge. Używanie narzędzia ldapsearch narzędzie do wysyłania zapytań dotyczących użytkowników może wskazać, że dany użytkownik istnieje w magazynie danych LDAP lub zidentyfikować potencjalnych brakujących użytkowników lub ról.

Komunikaty o błędach

Unknown username and password combination.

Możliwe przyczyny

Zwykle ten problem może występować z powodu uszkodzenia danych OpenLDAP. Zwykle OpenLDAP że dane nie zostaną uszkodzone. W rzadkich przypadkach korupcja mogła się jednak zdarzyć awarii dysku systemowego lub miejsca na dysku.

Diagnostyka

  1. Sprawdź ilość miejsca na dysku w systemie z zainstalowanym OpenLDAP, używając tego polecenia:
    du -m /opt
    
  2. Jeśli zauważysz, że wykorzystanie miejsca na dysku jest bardzo blisko 100%, oznacza to przyczynę problemu. w przypadku tego problemu oznacza brak miejsca na dysku w systemie.

Rozdzielczość

Jeśli w systemie zabrakło miejsca na dysku lub bardzo się wyczerpie, dodaj aby zapewnić wystarczającą ilość miejsca na dysku.

Gdy masz już wystarczającą ilość miejsca na dysku, użyj jednego z poniższych rozwiązań, aby adresować dane LDAP problem korupcyjny:

  1. Przywróć dane OpenLDAP z kopii zapasowej.
  2. Wyczyść bazę danych OpenLDAP.

Rozwiązanie nr 1 Przywróć plik Dane LDAP z kopii zapasowej

Utwórz kopię zapasową w działającym węźle OpenLDAP. Kopię zapasową należy wykonywać regularnie. Zobacz Przewodnik Apigee dla Private Cloud Operations , aby poznać sprawdzone metody tworzenia kopii zapasowych:

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

Opisane poniżej czynności umożliwiają przywrócenie danych OpenLDAP z dobrej kopii zapasowej.

  1. Zatrzymaj węzeł OpenLDAP, którego dane chcesz przywrócić:
    /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ą istniejących danych OpenLDAP za pomocą polecenia przenoszenia:
    mv ldap ldap_orig
    
  4. Przełącz się na użytkownika Apigee:
    su apigee
    
  5. W katalogu /opt/apigee/data/apigee-openldap utwórz nowe dane OpenLDAP katalogu o pierwotnej nazwie:
    mkdir ldap
    
  6. Utwórz kopię zapasową podkatalogu ldap_orig/DB_CONFIG z kroku 3 i skopiuj ją do katalogu openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Aby przywrócić dane z kopii zapasowej utworzonej za pomocą narzędzia Slapcat, użyj polecenia slapadd, aby zaimportować identyfikator ldif, który zawiera dobre 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ścić katalog LDAP baza danych

Wykonując poniższe kroki, możesz wyczyścić bazę danych OpenLDAP, aby umożliwić uruchomienie od nowa. To rozwiązanie może jest używana, jeśli nie ma kopii zapasowej danych w ostatnim stanie, w którym działały dane OpenLDAP.

  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ą istniejących danych OpenLDAP za pomocą polecenia przenoszenia:
    mv ldap ldap_orig
    
  4. Przełącz się na użytkownika Apigee:
    su apigee
    
  5. Utwórz nowy katalog danych OpenLDAP o oryginalnej nazwie:
    mkdir ldap
    
  6. Skopiuj podkatalog kopii zapasowej ldap_orig/DB_CONFIG z kroku 3 i skopiuj go do pliku openldap. katalogu:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Ponownie uruchom proces OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Ponownie uruchom serwer zarządzania, aby wymusić odświeżenie połączeń z OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Rozwiązanie 3. Zresetuj OpenLDAP do instalacji podstawowej

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

Wymagania wstępne

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

  • Możliwość uruchamiania konfiguracji przy użyciu danych logowania administratora systemu i głównych danych logowania LDAP.
  • Dostęp do narzędzia ldapadd.
  • Zapisano oryginalny plik konfiguracji cichej dla węzła zarządzania/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 przy użyciu wcześniej użytego pliku konfiguracji podczas pierwszej instalacji:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      gdzie configfile to nazwa pliku konfiguracji.
    5. Ponownie zainstaluj serwer zarządzania przy użyciu 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 encje LDAP przy użyciu tego polecenia:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Po wykonaniu powyższych kroków zostaną utworzone brakujące wpisy dla istniejącej organizacji, a orgadmin dla tej organizacji. Powtórz te czynności w przypadku każdej organizacji, którą chcesz odtworzyć. W tym momencie możesz dodać do organizacji orgadmin użytkowników, ale drugi użytkownik role domyślne jeszcze nie istnieją, więc musisz je dodać w następnym kroku.

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

    Przy użyciu pliku konfiguracji, który został początkowo użyty do skonfigurowania dowolnej z istniejących organizacji, uruchom następujące polecenie:

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

    • Za pomocą interfejsu użytkownika lub interfejsu Management API dodaj wszystkie role niestandardowe, które istniały przed uszkodzeniem.
    • Dodaj wszystkich użytkowników do odpowiednich ról użytkownika.
  5. (Opcjonalnie) Ponownie skonfiguruj uwierzytelnianie zewnętrzne w zarządzaniu.

    Przywróć /opt/apigee/customer/application/management-server.properties, jeśli konfiguracja nie została zmieniona. Ponieważ interfejs nie został ponownie zainstalowany, Pole /opt/apigee/customer/application/ui.properties powinno pozostać takie samo, ponieważ dane logowania dla administratora zostały przywrócone przy użyciu nowej instalacji oprogramowania zarządzania.

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

    Jeśli Apigee mTLS została wcześniej zainstalowana, postępuj zgodnie z przewodnikiem instalacji Apigee mTLS, aby ją zainstalować go w węźle serwera zarządzania.

Jeśli problem będzie nadal występował, skontaktuj się z Apigee pomocy, aby uzyskać dalszą pomoc.