عیب یابی مشکلات OpenLDAP

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

این بخش اطلاعات و راهنمایی هایی در مورد عیب یابی مشکلات OpenLDAP ارائه می دهد.

SMTP غیرفعال است و کاربران باید رمز عبور را بازنشانی کنند

علامت

وقتی SMTP روی رابط کاربری Edge راه‌اندازی نشده است، کاربران جدیدی که به Edge اضافه می‌شوند به راهی برای تنظیم رمز عبور نیاز دارند.

پیام های خطا

Unknown username and password combination.

علل احتمالی

کاربران جدید نمی توانند ایمیلی از «رمز عبور خود را فراموش کرده اید؟» دریافت کنند. پیوند برای تنظیم رمز عبور زیرا SMTP تنظیم نشده است.

قطعنامه

شما می توانید این مشکل را به یکی از راه های زیر حل کنید:

راه حل شماره 1: سرور SMTP را پیکربندی کنید

سرور SMTP را پیکربندی کنید تا با استفاده از دستورالعمل های ارائه شده در اسناد ، رمز عبور جدیدی برای کاربر تنظیم کند.

راه حل شماره 2: استفاده از LDAP

اگر نمی توانید سرور SMTP را پیکربندی کنید، از دستورات LDAP زیر برای تنظیم رمز عبور جدید برای یک کاربر استفاده کنید:

  1. یک مدیر سازمان موجود باید کاربر خاص را از طریق رابط کاربری Edge همانطور که در زیر نشان داده شده است اضافه کند:

  2. از دستور ldapsearch برای یافتن نام متمایز کاربر (dn) استفاده کنید و خروجی را به یک فایل هدایت کنید:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 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
  3. فایل ldap.txt را باز کنید و dn کاربر جدیدی که بر اساس ویژگی ایمیل کاربر جدید اضافه شده است را پیدا کنید.
  4. دستور ldappassword را برای افزودن رمز عبور برای کاربر جدید با استفاده از dn آن اجرا کنید. در این مثال، رمز عبور کاربر را روی 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. با رمزی که در مرحله قبل تعریف شده است، به عنوان کاربر جدید وارد رابط کاربری Edge شوید. کاربر پس از وارد شدن به UI می تواند رمز عبور جدیدی تنظیم کند.

LDAP در حال تکرار نیست

علامت

بسیاری از تاسیسات Edge دارای چندین مرکز داده هستند، به عنوان مثال DC-1 و DC-2. هنگام ورود به رابط کاربری Edge در DC-1 به عنوان مدیر سازمان، می توانید لیست کاربران را مشاهده کنید، اما همان لیست کاربر در رابط کاربری Edge در DC-2 ظاهر نمی شود.

پیام های خطا

هیچ خطایی ظاهر نمی شود، رابط کاربری Edge به سادگی لیست کاربرانی را که باید در همه سرورهای OpenLDAP تکرار می شد، نشان نمی دهد.

علل احتمالی

به طور معمول علت این مشکل پیکربندی اشتباه OpenLDAP تکرار است، نه خود نصب. همچنین، اگر شبکه بین سرورهای OpenLDAP اجازه ترافیک در پورت 10389 را ندهد، تکرار ممکن است شکسته شود.

تشخیص

برای تشخیص مشکل از مراحل زیر استفاده کنید:

  1. بررسی کنید آیا ldapsearch داده‌ها را از هر سرور OpenLDAP برمی‌گرداند یا خیر:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
  2. بررسی کنید که آیا می توانید به هر گره OpenLDAP از سایر گره های OpenLDAP در پورت 10389 متصل شوید یا خیر. اگر telnet نصب شده است، از دستور زیر استفاده کنید:
    telnet <OpenLDAP_Peer_IP> 10389
  3. اگر telnet در دسترس نیست، از netcat برای بررسی اتصال به صورت زیر استفاده کنید:

    nc -vz <OpenLDAP_Peer_IP> 10389
  4. تنظیمات Replication را در فایل زیر بررسی کنید:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

    فایل باید دارای تنظیماتی مانند این باشد:

    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. همچنین همان فایل را برای مقدار مشخصه olcMirrorMode بررسی کنید. باید روی مقدار TRUE تنظیم شود:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  6. قوانین iptables و tcp wrapper را بررسی کنید. لطفاً قوانینی را که به سرورهای OpenLDAP همتا اجازه برقراری ارتباط با یکدیگر را نمی دهد، حذف کنید. با مدیر شبکه خود کار کنید تا قوانین را به درستی تنظیم کنید.
  7. مطمئن شوید که رمز عبور سیستم OpenLDAP در هر گره OpenLDAP یکسان است.
  8. با اجرای dos2unix در برابر فایل‌های ldif که برای به‌روزرسانی پیکربندی ایجاد شده‌اند، کاراکترهای پنهان را در فایل‌های پیکربندی ldif که برای پیکربندی تکرار N-Way OpenLDAP استفاده می‌شوند، بررسی کنید. معمولاً یک فایل ldif که دارای کاراکترهای بد است باعث می شود دستور ldapmodify اجرا نشود و بنابراین Replication ممکن است تنظیم نشود. هر کاراکتر بد را حذف کنید و فایل های پیکربندی را ذخیره کنید.

اگر مشکل همچنان ادامه داشت، با پشتیبانی Apigee تماس بگیرید تا در راه اندازی N-Way OpenLDAP Replication کمک بگیرید.

نمی توان OpenLDAP را راه اندازی کرد

علامت

OpenLDAP شروع نمی شود.

پیام های خطا

SLAPD Dead But Pid File Exists

علل احتمالی

این مشکل معمولاً ناشی از یک فایل قفل است که در سیستم فایل باقی مانده است و باید حذف شود.

تشخیص

برای تشخیص این مشکل از مراحل زیر استفاده کنید:

  1. یک OpenLDAP slapd process lock یا فایل pid را در مکان زیر بررسی کنید:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  2. در صورت یافتن فایل lock و pid را حذف کنید و سعی کنید openldap را مجددا راه اندازی کنید.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  3. اگر فرآیند OpenLDAP slapd شروع شد، مراحل زیر را رد کنید.
  4. اگر فرآیند OpenLDAP slapd شروع نشد، slapd را در حالت اشکال زدایی اجرا کنید و هر گونه خطا را جستجو کنید:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
  5. خطاها ممکن است به مشکلات منابع اشاره کنند. میزان استفاده از حافظه و CPU در سیستم را بررسی کنید.
  6. نسخه OpenLDAP را بررسی کنید و در صورت قدیمی بودن آن را ارتقا دهید. نسخه های پشتیبانی شده OpenLDAP را در سند نرم افزار پشتیبانی شده ما بررسی کنید.
    slapd -V
  7. از 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 نیستند. استفاده از ابزار ldapsearch برای پرس و جو از کاربران ممکن است نشان دهد کاربر در ذخیره‌گاه داده LDAP وجود دارد یا ممکن است کاربران یا نقش‌های گمشده احتمالی را شناسایی کند.

پیام های خطا

Unknown username and password combination.

علل احتمالی

به طور معمول، این مشکل ممکن است به دلیل خرابی داده های OpenLDAP مشاهده شود. معمولاً داده های OpenLDAP خراب نمی شوند. اما در موارد نادری که چنین می‌کند، خرابی می‌تواند به دلیل خرابی دیسک سیستم یا مشکلات فضای دیسک باشد.

تشخیص

  1. با استفاده از دستور زیر فضای دیسک روی سیستمی که OpenLDAP نصب شده است بررسی کنید:
    du -m /opt
  2. اگر می بینید که فضای دیسک استفاده شده بسیار نزدیک به 100٪ است، این نشان می دهد که دلیل این مشکل خالی شدن فضای دیسک سیستم شما است.

قطعنامه

اگر فضای دیسک سیستم شما تمام شده است یا فضای دیسک بسیار نزدیک به اتمام است، فضای دیسک بیشتری اضافه کنید تا مطمئن شوید که فضای دیسک کافی دارید.

هنگامی که فضای دیسک کافی دارید از یکی از راه حل های زیر برای رفع مشکل خرابی داده LDAP استفاده کنید:

  1. داده های OpenLDAP را از پشتیبان بازیابی کنید.
  2. پایگاه داده OpenLDAP را پاک کنید.

راه حل شماره 1 داده های LDAP را از نسخه پشتیبان بازیابی کنید

در یک گره OpenLDAP کار یک نسخه پشتیبان تهیه کنید. پشتیبان گیری باید به طور منظم انجام شود. راهنمای عملیات ابر خصوصی Apigee را برای بهترین روش‌ها در زمینه پشتیبان‌گیری ببینید:

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

مراحل زیر را می توان برای بازیابی اطلاعات OpenLDAP از یک نسخه پشتیبان خوب استفاده کرد.

  1. گره OpenLDAP را که داده ها باید برای آن بازیابی شوند متوقف کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  2. دایرکتوری را به دایرکتوری داده OpenLDAP تغییر دهید:
    cd /opt/apigee/data/apigee-openldap
  3. با استفاده از دستور move از داده های OpenLDAP موجود نسخه پشتیبان تهیه کنید:
    mv ldap ldap_orig
  4. به کاربر apigee بروید:
    su apigee
  5. از پوشه /opt/apigee/data/apigee-openldap ، یک پوشه داده OpenLDAP جدید با نام اصلی ایجاد کنید:
    mkdir ldap
  6. بک آپ زیر شاخه ldap_orig/DB_CONFIG را از مرحله 3 بگیرید و آن را در پوشه openldap کپی کنید.
    cp ldap_orig/DB_CONFIG ldap
  7. برای بازیابی اطلاعات از نسخه پشتیبان گرفته شده با slapcat، از slapadd برای وارد کردن ldif که حاوی داده های خوب است استفاده کنید:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
  8. فرآیند OpenLDAP را شروع کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start

راه حل شماره 2 پایگاه داده LDAP را پاک کنید

مراحل زیر پایگاه داده OpenLDAP را پاک می کند تا یک شروع جدید ارائه دهد. این راه حل را می توان در صورتی استفاده کرد که هیچ نسخه پشتیبان از آخرین وضعیتی که داده OpenLDAP در آن کار می کرد وجود نداشته باشد.

  1. سرویس OpenLDAP را متوقف کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  2. دایرکتوری را به دایرکتوری داده OpenLDAP تغییر دهید:
    cd /opt/apigee/data/apigee-openldap
  3. با استفاده از دستور move از داده های OpenLDAP موجود نسخه پشتیبان تهیه کنید:
    mv ldap ldap_orig
  4. به کاربر apigee بروید:
    su apigee
  5. یک پوشه داده OpenLDAP جدید با نام اصلی ایجاد کنید:
    mkdir ldap
  6. زیرشاخه پشتیبان ldap_orig/DB_CONFIG را از مرحله 3 بردارید و آن را در پوشه openldap کپی کنید:
    cp ldap_orig/DB_CONFIG ldap
  7. فرآیند OpenLDAP را مجدداً راه اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
  8. سرور مدیریت را مجددا راه اندازی کنید تا اتصالات به OpenLDAP به روزرسانی شود:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

راه حل شماره 3 OpenLDAP را به یک نصب اولیه بازنشانی کنید

اگر راه حل شماره 2 مشکل را حل نکرد، می توانید OpenLDAP را به یک نصب اولیه بازنشانی کنید، همانطور که در این بخش توضیح داده شده است.

پیش نیازها

برای بازنشانی OpenLDAP، به پیش نیازهای زیر نیاز دارید:

  • امکان اجرای تنظیمات با ادمین سیستم و اعتبار LDAP روت.
  • دسترسی به ابزار ldapadd .
  • فایل پیکربندی خاموش اصلی ذخیره شده برای گره مدیریت/LDAP.

برای بازنشانی OpenLDAP، مراحل زیر را انجام دهید:

  1. OpenLDAP و مدیریت سرور را دوباره نصب کنید.
    1. سرور openldap متوقف کنید:
      apigee-service apigee-openldap stop
    2. پوشه اطلاعات openldap خراب را حذف کنید:
      rm -rf /opt/apigee/data/apigee-openldap
    3. کامپوننت openldap را حذف کنید:
      apigee-service apigee-openldap uninstall
    4. کامپوننت openldap را با استفاده از همان فایل پیکربندی که برای نصب اولیه استفاده شده بود، دوباره نصب کنید:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      که در آن configfile نام فایل پیکربندی است.
    5. با استفاده از فایل پیکربندی اصلی، سرور مدیریت را دوباره نصب کنید:
      /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: @@@

      که در آن orgname سازمانی است که می‌خواهید دوباره ایجاد کنید.

    2. با استفاده از دستور زیر، موجودیت های LDAP گم شده را اضافه کنید:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    مراحل بالا ورودی های گم شده را برای یک سازمان موجود و مجوزهای orgadmin برای آن سازمان ایجاد می کند. مراحل را برای هر سازمانی که باید دوباره ایجاد شود، تکرار کنید. در این مرحله، می‌توانید کاربران orgadmin را به یک سازمان اضافه کنید، اما نقش‌های پیش‌فرض دیگر هنوز وجود ندارند، بنابراین باید آنها را با استفاده از مرحله بعدی اضافه کنید.

  3. نقش‌ها و مجوزهای پیش‌فرض از دست رفته را به یک سازمان موجود اضافه کنید.

    با استفاده از همان فایل پیکربندی که در ابتدا برای راه اندازی هر یک از ارگ های موجود استفاده شد، دستور زیر را اجرا کنید:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. پس از انجام این روش، باید به صورت دستی:

    • با استفاده از UI یا مدیریت API، هر نقش سفارشی را که قبل از خرابی وجود داشت، اضافه کنید.
    • هر کاربر را به نقش های کاربری مربوطه اضافه کنید.
  5. (اختیاری) پیکربندی احراز هویت خارجی را در مدیریت دوباره برقرار کنید.

    اگر پیکربندی تغییر نکرده باشد، /opt/apigee/customer/application/management-server.properties را بازیابی کنید. از آنجایی که رابط کاربری مجدداً نصب نشده است، با توجه به اینکه اعتبار سیستم sysadmin با نصب مدیریت جدید بازیابی شده است، /opt/apigee/customer/application/ui.properties باید ثابت بماند.

  6. (اختیاری) Apigee mTLS را دوباره روی گره مدیریت نصب کنید.

    اگر Apigee mTLS قبلاً نصب شده بود، راهنمای نصب Apigee mTLS را دنبال کنید تا آن را دوباره در گره سرور مدیریت نصب کنید.

اگر مشکل ادامه داشت، برای راهنمایی بیشتر با پشتیبانی Apigee تماس بگیرید.