استكشاف مشاكل OpenLDAP وإصلاحها

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

يوفّر هذا القسم معلومات وإرشادات حول تحديد مشاكل OpenLDAP وحلّها.

SMTP غير مفعَّل ويجب على المستخدمين إعادة ضبط كلمة المرور

المشكلة

في حال عدم إعداد بروتوكول SMTP في واجهة مستخدم Edge، يحتاج المستخدمون الجدد الذين تمت إضافتهم إلى Edge إلى طريقة لضبط كلمة مرور.

رسائل الخطأ

Unknown username and password combination.

الأسباب المحتمَلة

لا يمكن للمستخدمين الجدد تلقّي رسالة إلكترونية من الرابط "هل نسيت كلمة المرور؟" لضبط كلمة مرور بسبب عدم إعداد بروتوكول SMTP.

الدقة

يمكنك حلّ هذه المشكلة بإحدى الطريقتَين التاليتَين:

الحلّ الأول: ضبط خادم SMTP

اضبط خادم SMTP لضبط كلمة مرور جديدة للمستخدم باستخدام التعليمات المقدَّمة في الوثائق.

الحلّ الثاني: استخدام بروتوكول 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 كمستخدم جديد باستخدام كلمة المرور المحدّدة في الخطوة السابقة. يمكن للمستخدم ضبط كلمة مرور جديدة بعد تسجيل الدخول إلى واجهة المستخدم.

لا تتمّ إعادة نسخ LDAP

المشكلة

تحتوي العديد من عمليات تثبيت Edge على مراكز بيانات متعدّدة، مثل DC-1 وDC-2. عند تسجيل الدخول إلى واجهة مستخدم Edge في "وحدة التحكّم في السحابة" 1 بصفتك مشرفًا على المؤسسة، يمكنك الاطّلاع على قائمة المستخدمين، ولكن لا تظهر قائمة المستخدمين نفسها في واجهة مستخدم Edge في "وحدة التحكّم في السحابة" 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. تحقَّق من إعدادات النسخ في الملف التالي:
    /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. تحقّق من وجود أحرف مخفية في ملفات إعدادات ldif التي يتم استخدامها لضبط تكرار OpenLDAP باتجاهات متعدّدة من خلال تشغيل dos2unix على ملفات ldif التي تم إنشاؤها لتعديل الإعدادات. عادةً ما يؤدي ملف ldif الذي يحتوي على أحرف غير صالحة إلى عدم تنفيذ الأمر ldapmodify، وبالتالي قد لا يتم إعداد النسخ المتعدّد. أزِل أي أحرف خاطئة واحفظ ملفات الإعداد.

إذا استمرت المشكلة، يُرجى التواصل مع فريق دعم Apigee للحصول على المساعدة في إعداد ميزة "النسخ المتعدّد في OpenLDAP".

تعذّر بدء OpenLDAP

المشكلة

لا يبدأ OpenLDAP.

رسائل الخطأ

SLAPD Dead But Pid File Exists

الأسباب المحتمَلة

تحدث هذه المشكلة عادةً بسبب ملف قفل تم تركه في نظام الملفات ويجب إزالته.

التشخيص

اتّبِع الخطوات التالية لتشخيص هذه المشكلة:

  1. ابحث عن ملف pid أو قفل عملية slapd في OpenLDAP في الموقع التالي:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  2. يُرجى حذف ملفَي القفل و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. إذا لم تبدأ عملية slapd في OpenLDAP، حاوِل تشغيل 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. أوقِف خادم الإدارة 2 وLDAP2.
    2. استعادة LDAP1 من نسخة احتياطية من جهاز افتراضي (أو نسخة احتياطية من Apigee)
    3. تحقَّق من الخادم الإداري 1 لبدء التشغيل والاسترداد.
    4. بعد أن يعمل الخادم الإداري 1 وLDAP1 بشكل صحيح، أعِد تثبيت LDAP2 من البداية (إنشاء لوحة فارغة تمامًا).
    5. إعداد LDAP2 في وضع القراءة فقط، والسماح LDAP1 بالتكرار في LDAP2
    6. استخدِم ldapsearch للتحقّق من تطابق عدد الأسطر في LDAP1 وLDAP2.
    7. أعِد تشغيل Management Server 2 وUI2، وتأكَّد من بدء تشغيلهما بنجاح.

للحصول على تعليمات مفصّلة، يُرجى الاطّلاع على نظام تتبُّع المشاكل العلني.

الحلّ الأول: استعادة data LDAP من النسخة الاحتياطية

أنشئ نسخة احتياطية في عقدة OpenLDAP صالحة. يجب إجراء عملية الاحتفاظ بنسخة احتياطية بانتظام. اطّلِع على دليل عمليات Apigee Private Cloud للحصول على أفضل الممارسات المتعلّقة بعمليات الاحتفاظ بنسخة احتياطية:

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. احتفظ بنسخة احتياطية من بيانات OpenLDAP الحالية باستخدام الأمر move:
    mv ldap ldap_orig
  4. بدِّل إلى مستخدم apigee:
    su apigee
  5. من دليل /opt/apigee/data/apigee-openldap، أنشئ دليل بيانات جديدًا في OpenLDAP بالاسم الأصلي:
    mkdir ldap
  6. أنشئ نسخة احتياطية من الدليل الفرعي ldap_orig/DB_CONFIG من الخطوة 3، وانسخها إلى directory 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. احتفظ بنسخة احتياطية من بيانات OpenLDAP الحالية باستخدام الأمر move:
    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

الحلّ الثالث: إعادة ضبط 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. أعِد تثبيت Management Server باستخدام ملف الإعداد الأصلي:
      /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. بعد اتّباع هذه الإجراءات، عليك إجراء ما يلي يدويًا:

    • أضِف أي أدوار مخصّصة كانت موجودة قبل حدوث التلف باستخدام واجهة المستخدم أو واجهة برمجة التطبيقات لإدارة الخدمات.
    • أضِف أي مستخدمين إلى أدوار المستخدمين ذات الصلة.
  5. (اختياري) أعِد ضبط إعدادات المصادقة الخارجية في صفحة "الإدارة".

    استعدّ /opt/apigee/customer/application/management-server.properties إذا لم تتغيّر الإعدادات. بما أنّه لم تتم إعادة تثبيت واجهة المستخدم، يجب أن يظلّ /opt/apigee/customer/application/ui.properties كما هو نظرًا لأنّه تمت استعادة بيانات اعتماد مشرف النظام من خلال عملية التثبيت الجديدة لإدارة الخدمات.

  6. (اختياري) أعِد تثبيت بروتوكول mTLS في Apigee على عقدة الإدارة.

    إذا سبق تثبيت بروتوكول mTLS في Apigee، اتّبِع "دليل تثبيت بروتوكول mTLS في Apigee" لإعادة تثبيته على عقدة خادم الإدارة.

إذا استمرت المشكلة، يُرجى التواصل مع فريق دعم Apigee للحصول على مزيد من المساعدة.