אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
בקטע הזה מפורטים מידע והנחיות לפתרון בעיות ב-OpenLDAP.
פרוטוקול SMTP מושבת והמשתמשים צריכים לאפס את הסיסמה
תיאור הבעיה
אם SMTP לא מוגדר בממשק המשתמש של Edge, משתמשים חדשים שנוספים ל-Edge צריכים דרך להגדיר סיסמה.
הודעות שגיאה
Unknown username and password combination.

סיבות אפשריות
משתמשים חדשים לא יכולים לקבל אימייל מהקישור 'שכחת את הסיסמה?' כדי להגדיר סיסמה כי לא הוגדר SMTP.
רזולוציה
כדי לפתור את הבעיה, אפשר לבצע אחת מהפעולות הבאות:
פתרון מספר 1: הגדרת שרת SMTP
מגדירים את שרת ה-SMTP כדי להגדיר סיסמה חדשה למשתמש באמצעות ההוראות שמפורטות במסמכי העזרה.
פתרון 2: שימוש ב-LDAP
אם אתם לא מצליחים להגדיר את שרת ה-SMTP, אתם יכולים להשתמש בפקודות ה-LDAP שבהמשך כדי להגדיר את הסיסמה החדשה של משתמש:
- מנהל חשבון ארגוני קיים צריך להוסיף את המשתמש הספציפי דרך ממשק המשתמש של Edge, כמו שמוצג בהמשך:

- משתמשים בפקודה 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
- פותחים את הקובץ ldap.txt ומחפשים את ה-dn של המשתמש החדש שנוסף על סמך מאפיין האימייל של המשתמש החדש.
- מריצים את הפקודה 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"
- מתחברים לממשק המשתמש של Edge כמשתמש החדש עם הסיסמה שהוגדרה בשלב הקודם. המשתמש יכול להגדיר סיסמה חדשה אחרי שהוא מתחבר לממשק המשתמש.
ה-LDAP לא משוכפל
תיאור הבעיה
בהרבה התקנות של Edge יש כמה מרכזי נתונים, למשל DC-1 ו-DC-2. כשמתחברים לממשק המשתמש של Edge ב-DC-1 כמנהל חשבון ארגוני, אפשר לראות את רשימת המשתמשים, אבל אותה רשימת משתמשים לא מופיעה בממשק המשתמש של Edge ב-DC-2.
הודעות שגיאה
לא מופיעות שגיאות, פשוט לא מוצגת בממשק המשתמש של Edge רשימת המשתמשים שהייתה אמורה להיות משוכפלת בכל שרתי OpenLDAP.
סיבות אפשריות
בדרך כלל, הסיבה לבעיה הזו היא הגדרה שגויה של שכפול OpenLDAP, ולא ההתקנה עצמה. בנוסף, השכפול עלול להיפסק אם הרשת בין שרתי OpenLDAP לא מאפשרת תעבורה ביציאה 10389.
אבחון
כדי לאבחן את הבעיה:
- בודקים אם הפקודה ldapsearch מחזירה נתונים מכל שרת OpenLDAP:
ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
- בודקים אם אפשר להתחבר לכל צומת OpenLDAP מצמתי OpenLDAP אחרים ביציאה 10389.
אם telnet מותקן, משתמשים בפקודה הבאה:
telnet <OpenLDAP_Peer_IP> 10389
-
אם telnet לא זמין, משתמשים ב-netcat כדי לבדוק את הקישוריות באופן הבא:
nc -vz <OpenLDAP_Peer_IP> 10389
- בודקים את הגדרות השכפול בקובץ הבא:
/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
- כדאי גם לבדוק את הערך של מאפיין olcMirrorMode באותו קובץ. צריך להגדיר אותו לערך TRUE:
grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif - בודקים אם יש כללי iptables ו-tcp wrapper. צריך להסיר את כל הכללים שלא מאפשרים לשרתי OpenLDAP של הרשת השכנה לתקשר זה עם זה. כדאי לעבוד עם מנהל הרשת כדי להגדיר את הכללים בצורה מתאימה.
- מוודאים שהסיסמה של מערכת OpenLDAP זהה בכל צומת OpenLDAP.
- בודקים אם יש תווים מוסתרים בקובצי התצורה של ldif שמשמשים להגדרת שכפול OpenLDAP N-Way. כדי לעשות זאת, מריצים את הפקודה dos2unix על קובצי ה-ldif שנוצרו כדי לעדכן את התצורה. בדרך כלל, קובץ ldif עם תווים לא תקינים יגרום לפקודה ldapmodify להיכשל, ולכן יכול להיות שהשכפול לא יוגדר. מסירים את התווים הבעייתיים ושומרים את קובצי ההגדרות.
אם הבעיה נמשכת, אפשר לפנות לתמיכה של Apigee כדי לקבל עזרה בהגדרת שכפול N-Way OpenLDAP.
אי אפשר להפעיל את OpenLDAP
תיאור הבעיה
OpenLDAP לא מופעל.
הודעות שגיאה
SLAPD Dead But Pid File Exists
סיבות אפשריות
הבעיה הזו נגרמת בדרך כלל בגלל קובץ נעילה שנשאר במערכת הקבצים וצריך להסיר אותו.
אבחון
כדי לאבחן את הבעיה:
- בודקים אם יש נעילה של תהליך OpenLDAP slapd או קובץ pid במיקום הבא:
/opt/apigee/var/run/apigee-openldap/apigee-openldap.lock /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
- אם נמצא קובץ נעילה וקובץ pid, מוחקים אותם ומנסים להפעיל מחדש את openldap.
rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lockrm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid - אם תהליך OpenLDAP slapd מתחיל, אפשר לדלג על השלבים הבאים.
- אם תהליך OpenLDAP slapd לא מתחיל, מנסים להריץ את slapd במצב ניפוי באגים ומחפשים שגיאות:
slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
- שגיאות עשויות להצביע על בעיות במשאבים. בודקים את השימוש בזיכרון ובמעבד (CPU) במערכת.
- בודקים את הגרסה של OpenLDAP ומשדרגים אותה אם היא ישנה. אפשר לבדוק את הגרסאות הנתמכות של OpenLDAP במסמך תוכנות נתמכות.
slapd -V
- משתמשים ב-strace כדי לפתור בעיות בתהליך slapd, וכדי לספק פלט של strace ל
Apigee Support:
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 לא ניזוקים. אבל במקרים נדירים שבהם זה קורה, יכול להיות שהשחיתות נובעת מכשל בדיסק המערכת או מבעיות במקום בדיסק.
אבחון
- כדי לבדוק את נפח הדיסק במערכת שבה מותקן OpenLDAP, משתמשים בפקודה הבאה:
du -m /opt
- אם שטח הדיסק שנעשה בו שימוש קרוב מאוד ל-100%, זה מצביע על כך שהגורם לבעיה הוא שנגמר שטח הדיסק במערכת.
- בודקים את עקביות הנתונים בצמתי LDAP:
- בכל צומת LDAP, משווים את מספר המשתמשים ומספר התפקידים. מריצים את הפקודות הבאות ומשווים את התוצאות.
פער בספירה בין הצמתים מצביע על פגם אפשרי בנתונים.ldapsearch -o ldif-wrap=no -b "ou=users,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -lldapsearch -o ldif-wrap=no -b "ou=resources,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l - בודקים את סטטוס הרפליקציה של LDAP. מריצים את הפקודה הבאה בכל צומת LDAP.
אם הערךldapsearch -x -LLL -H ldap://ldap_ip:10389 -s base -b 'dc=apigee,dc=com' contextCSN dn: dc=apigee,dc=com -D "cn=manager,dc=apigee,dc=com" -w PASSWORD dn: dc=apigee,dc=com
contextCSNזהה בכל הצמתים, השכפול של LDAP פועל בצורה תקינה.
- בכל צומת LDAP, משווים את מספר המשתמשים ומספר התפקידים. מריצים את הפקודות הבאות ומשווים את התוצאות.
רזולוציה
אם לא נשאר מקום בכונן במערכת או שנשאר מעט מאוד מקום, צריך להוסיף עוד מקום בכונן כדי לוודא שיש מספיק מקום פנוי.
אחרי שיהיה לכם מספיק מקום בדיסק, תוכלו להשתמש באחד מהפתרונות הבאים כדי לטפל בבעיה של נתוני LDAP פגומים:
- משחזרים את נתוני OpenLDAP מהגיבוי.
-
כדי לנקות את מסד הנתונים של OpenLDAP:
- משביתים את Management Server 2 ואת LDAP2.
- שחזור LDAP1 מגיבוי של מכונה וירטואלית (או מגיבוי של Apigee).
- בודקים את Management Server 1 כדי לראות אם הוא מופעל ומשוחזר.
- אחרי שמוודאים שManagement Server 1 ו-LDAP1 פועלים בצורה תקינה, מתקינים מחדש את LDAP2 מאפס (כך שנוצרת התחלה חדשה לגמרי).
- מגדירים את LDAP2 במצב קריאה בלבד, ומאפשרים ל-LDAP1 לשכפל ל-LDAP2.
- משתמשים בפקודה
ldapsearchכדי לוודא שמספר השורות בקובץ LDAP1 זהה למספר השורות בקובץ LDAP2. - מפעילים מחדש את Management Server 2 ואת UI2, ומוודאים שהם מופעלים בהצלחה.
הוראות מפורטות זמינות במאמר בנושא Issue Tracker שגלוי לכולם.
פתרון מספר 1: שחזור נתוני ה-LDAP מהגיבוי
יוצרים גיבוי בצומת OpenLDAP פעיל. מומלץ לבצע גיבוי באופן קבוע. שיטות מומלצות לגיבוי מפורטות במדריך התפעול של Apigee Private Cloud.
slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
כדי לשחזר את נתוני OpenLDAP מגיבוי תקין, פועלים לפי השלבים הבאים.
- מפסיקים את צומת OpenLDAP שצריך לשחזר את הנתונים שלו:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- משנים את הספרייה לספריית הנתונים של OpenLDAP:
cd /opt/apigee/data/apigee-openldap
- מגבים את נתוני OpenLDAP הקיימים באמצעות הפקודה move:
mv ldap ldap_orig
- עוברים למשתמש apigee:
su apigee
- בספרייה
/opt/apigee/data/apigee-openldap, יוצרים ספריית נתונים חדשה של OpenLDAP עם השם המקורי:mkdir ldap
- מגבים את ספריית המשנה ldap_orig/DB_CONFIG משלב 3 ומעתיקים אותה לספרייה openldap.
cp ldap_orig/DB_CONFIG ldap
- כדי לשחזר נתונים מגיבוי שנוצר באמצעות slapcat, משתמשים ב-slapadd כדי לייבא את קובץ ה-ldif שמכיל את הנתונים התקינים:
slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
- מתחילים את התהליך של OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
פתרון מס' 2: ניקוי מסד הנתונים של LDAP
השלבים הבאים מוחקים את מסד הנתונים של OpenLDAP כדי לאפשר התחלה חדשה. אפשר להשתמש בפתרון הזה אם אין גיבוי נתונים של המצב האחרון שבו נתוני OpenLDAP פעלו.
- מפסיקים את שירות OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- משנים את הספרייה לספריית הנתונים של OpenLDAP:
cd /opt/apigee/data/apigee-openldap
- מגבים את נתוני OpenLDAP הקיימים באמצעות הפקודה move:
mv ldap ldap_orig
- עוברים למשתמש apigee:
su apigee
- יוצרים ספריית נתונים חדשה של OpenLDAP עם השם המקורי:
mkdir ldap
- מעתיקים את ספריית המשנה ldap_orig/DB_CONFIG לגיבוי משלב 3 אל הספרייה openldap:
cp ldap_orig/DB_CONFIG ldap
- מפעילים מחדש את תהליך OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
- מפעילים מחדש את שרת הניהול כדי לאלץ רענון של החיבורים ל-OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
פתרון מספר 3: איפוס OpenLDAP להתקנה בסיסית
אם פתרון מס' 2 לא פותר את הבעיה, אפשר לאפס את OpenLDAP להתקנה בסיסית, כפי שמתואר בקטע הזה.
דרישות מוקדמות
כדי לאפס את OpenLDAP, אתם צריכים:
- היכולת להריץ את ההגדרה באמצעות פרטי כניסה של אדמין מערכת ו-LDAP עם הרשאות root.
- גישה לכלי
ldapadd. - קובץ ההגדרות המקורי השקט שנשמר עבור צומת הניהול או ה-LDAP.
כדי לאפס את OpenLDAP, מבצעים את השלבים הבאים:
- מתקינים מחדש את OpenLDAP ואת שרת הניהול.
- מפסיקים את השרת
openldap:apigee-service apigee-openldap stop
- מוחקים את תיקיית הנתונים הפגומה
openldap:rm -rf /opt/apigee/data/apigee-openldap
- מסירים את הרכיב
openldap:apigee-service apigee-openldap uninstall
- מתקינים מחדש את הרכיב
openldapבאמצעות אותו קובץ תצורה ששימש להתקנה הראשונית: כאשר/opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
configfileהוא שם קובץ ההגדרות. - מתקינים מחדש את שרת הניהול באמצעות קובץ התצורה המקורי:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile
After doing these steps, Management API calls should work again using the
sysadminaccount only. However, it will not be possible to log into the Edge UI, and Management API calls with any other users will not work. - מפסיקים את השרת
- Add missing
openldapentries for orgs that existed prior to the corruption.After the above step is completed,
openldapwill 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:- Create an ldif file called
missingLDAP.ldifwith 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 הוא הארגון שאתם מנסים ליצור מחדש.
- מוסיפים את ישויות ה-LDAP החסרות באמצעות הפקודה הבאה:
ldapadd -x -w
-D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif
הפעולות שלמעלה ייצרו את הרשומות החסרות לארגון קיים, ואת ההרשאות
orgadminלארגון הזה. חוזרים על השלבים לכל ארגון שצריך ליצור מחדש. בשלב הזה, אפשר להוסיף משתמשים ל-orgadminבארגון, אבל תפקידי ברירת המחדל האחרים עדיין לא קיימים, ולכן צריך להוסיף אותם באמצעות השלב הבא. - Create an ldif file called
הוספת תפקידים והרשאות שמוגדרים כברירת מחדל לארגון קיים.
משתמשים באותו קובץ תצורה ששימש להגדרה של אחד מהארגונים הקיימים, ומריצים את הפקודה הבאה:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
- מוסיפים תפקידים בהתאמה אישית שהיו קיימים לפני שהנתונים נפגמו באמצעות ממשק המשתמש או ממשק ה-API לניהול,
- מוסיפים משתמשים לתפקידי המשתמש הרלוונטיים.
(אופציונלי) הגדרה מחדש של אימות חיצוני בניהול.
משחזרים את
/opt/apigee/customer/application/management-server.propertiesאם ההגדרה לא השתנתה. מכיוון שממשק המשתמש לא הותקן מחדש, הערך של/opt/apigee/customer/application/ui.propertiesאמור להישאר זהה, בהנחה שהפרטים של האדמין הראשי שוחזרו עם ההתקנה החדשה של הניהול.(אופציונלי) מתקינים מחדש את Apigee mTLS בצומת הניהול.
אם התקנתם בעבר את Apigee mTLS, צריך לפעול לפי מדריך ההתקנה של Apigee mTLS כדי להתקין אותו מחדש בצומת של שרת הניהול.
אחרי שמבצעים את התהליך הזה, צריך לבצע באופן ידני את הפעולות הבאות:
אם הבעיה נמשכת, אפשר לפנות לתמיכה של Apigee לקבלת עזרה נוספת.