אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
תיאור הבעיה
בתמונה הבאה אפשר לראות שבקשות API לא נרשמות בממשק המשתמש של Edge כשמתחילים סשן מעקב:

הודעת השגיאה
כשבעיה כזו מתרחשת, לא מוצגות הודעות שגיאה בממשק המשתמש של Edge.
סיבות אפשריות
בטבלה הבאה מפורטות סיבות אפשריות לכך שבקשות API לא נרשמות בכלי Trace בממשק המשתמש של Edge:
| הסיבה | תיאור | הוראות לפתרון בעיות שרלוונטיות ל |
|---|---|---|
| בקשות שלא עוברות עיבוד על ידי מעבד ההודעות | כדי לתעד את יומן המעקב, רכיב מעבד בקשות של Edge צריך לעבד את בקשות ה-API. אם בקשת API לא מגיעה ל-Apigee Edge, או נכשלת בנקודת הכניסה ל-Edge (כלומר, נתב) או נכשלת לפני שהיא מעובדת על ידי מעבד בקשות, אי אפשר לתעד את יומן המעקב. | משתמשים ב-Edge Public Cloud וב-Edge Private Cloud |
| לא נמצא proxy ל-API בעץ הסיווג | מעבדי הודעות של Apigee משתמשים בהגדרת כלל ניתוב שנקראת עץ סיווג כדי לשלוח בקשות על סמך שם המארח, נתיב הבסיס, הגרסה והסביבה של הבקשה הנכנסת. אם שרת ה-API הרלוונטי הוסר מסיבה כלשהי מעץ הסיווג, יכול להיות שהעסקאות ב-Trace לא יאוכלסו. | משתמשים ב-Edge Private Cloud |
הסיבה: הבקשות לא עובדו על ידי מעבד ההודעות
אבחון
כדי לתעד בקשה ל-API בסשן Trace, הבקשה ל-API צריכה לעבור עיבוד על ידי הרכיב Message Processor של Edge. יכולות להיות כמה סיבות לכך שבקשת API לא תתועד בעסקה של Trace.
לדוגמה, אם בקשת API לא מגיעה ל-Apigee Edge, או נכשלת בנקודת הכניסה ל-Edge (כלומר, Router) או נכשלת לפני שהיא מעובדת על ידי מעבד בקשות, אי אפשר לתעד את העקבות. בהמשך מפורט כל אחד מהתרחישים האלה.
תרחיש 1: הבקשות לא מגיעות אל Apigee Edge
סיבה
בתרחיש הזה, יכול להיות שהשגיאה נגרמת בגלל בעיה בפענוח DNS או בקישוריות לרשת. אם כן, יכול להיות שתופיע השגיאה הבאה כשמריצים את הפקודה הזו:
curl https://hostName:port/apiProxyBasePath/requestPath
curl: (6) Could not resolve host: hostName
רזולוציה
אפשר לאמת את הגדרת ה-DNS באמצעות הפקודה הבאה:
dig hostName
כדי לאמת את החיבור לרשת, מריצים את הפקודה הבאה:
telnet hostName port
תרחיש 2: הבקשות נכשלות בנתב Apigee Edge
סיבה
במקרה כזה, יכול להיות שהשגיאה נגרמת בגלל כשל בלחיצת היד של TLS/SSL. אם כן, יכול להיות שתופיע אחת מהשגיאות הבאות:
Received fatal alert: handshake_failureHTTP/1.1 400 Bad Requestיכול להיות שתוצג גם שגיאה באישור SSL.
רזולוציה
כדי לפתור את הבעיות האלה, אפשר לעיין במדריכים הבאים:
תרחיש 3: אי אפשר לעבד בקשות באמצעות מעבד ההודעות
סיבה
בתרחיש הזה, מעבד ההודעות של Apigee לא יכול למצוא את ה-API Proxy עבור המארח הווירטואלי והנתיב שצוינו. כתוצאה מכך, יכול להיות שתופיע אחת מהשגיאות הבאות:
HTTP/1.1 404 Not Found{ "fault":{ "faultstring":"Unable to identify proxy for host: default and url: \/apiProxyBasePath/requestPath", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }רזולוציה
כדי לפתור את הבעיה, אפשר להיעזר במדריך הזה: 404 Unable to identify proxy for host.
הסיבה: לא נמצא proxy ל-API בעץ הסיווג
אבחון
אם מעבד בקשות לא מוצא proxy ל-API בעץ הסיווג שלו, בקשות API ל-proxy הספציפי הזה לא יוצגו בסשנים של יומן מעקב בממשק המשתמש של Edge.
כדי לבדוק אם זה המצב, פועלים לפי השלבים הבאים:
מתחברים לכל אחד ממעבדי ההודעות ובודקים אם הגרסה הספציפית של ה-API המבוקש נפרסה בסביבה הרלוונטית של מעבד ההודעות באמצעות הפקודה הבאה:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
פלט לדוגמה:
הפקודה שלמעלה תפיק רשימה של עדכונים שבוצעו. לדוגמה, אם הפריסה היא של גרסה 12, הפלט שיוצג יהיה:
[ "12" ]אלא אם אתם נתקלים בשגיאות HTTP 404 לסירוגין, סביר להניח שתראו שהגרסה הספציפית נפרסה.
קוראים את עץ הסיווג ובודקים אם שם שרת ה-Proxy של ה-API קיים באמצעות הפקודה הבאה:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
חוזרים על שלבים 1 ו-2 לכל מעבד הודעות. אם השם של proxy ל-API שצוין חסר בעץ הסיווג של אחד ממעבדי הבקשות, צריך לפעול לפי הפתרון שמופיע בהמשך.
רזולוציה
כדי לפתור את הבעיה, צריך לפעול לפי השלבים הבאים. חשוב לנקוט את כל אמצעי הזהירות הנדרשים כדי למנוע הפסקות זמניות בייצור שעלולות להתרחש בעקבות הפעלה מחדש של מעבדי הודעות בזמן עומסי בקשות גבוהים.
מתחברים לכל אחד ממארחי מעבד בקשות שחסר בהם proxy ל-API הספציפי בעץ הסיווג, ומשתמשים בפקודה שלמטה כדי להפעיל מחדש את מעבד בקשות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
אחרי ההפעלה מחדש, משתמשים בפקודה הבאה כדי לחכות עד שהיא תהפוך לפעילה:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
אחרי שה-Message Processor מוכן, בודקים את הזמינות של proxy ל-API באמצעות הפקודה הבאה:
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
פלט לדוגמה:
הפקודה שלמעלה תפיק רשימה של עדכונים שבוצעו. לדוגמה, אם הפריסה היא של גרסה 12, הפלט שיוצג יהיה:
[ "12" ]אלא אם אתם נתקלים בשגיאות HTTP 404 לסירוגין, סביר להניח שתראו שהגרסה הספציפית נפרסה.
קוראים את עץ הסיווג ומוודאים ששם ה-API Proxy קיים באמצעות הפקודה הבאה:
curl -i http://localhost:8082/v1/classification/tree | grep apiName
אם הבעיה נמשכת, עוברים אל איסוף מידע לצורך אבחון.
איסוף נתוני אבחון
אם הבעיה נמשכת אחרי שמבצעים את ההוראות שלמעלה, צריך לאסוף את פרטי האבחון הבאים ולשתף אותם עם התמיכה של Apigee Edge:
| סוג המידע על האבחון | Command |
|---|---|
| פלט של פקודת סשן מעקב | curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user |
| יומן שרת הניהול | /opt/apigee/var/log/edge-management-server/logs/system.log |
| יומנים של מעבד ההודעות | /opt/apigee/var/log/edge-message-processor/logs/system.log |
פלט של פקודות telnet/netcat משרת הניהול למעבד ההודעות |
telnet MessageProcessor_IP 8082 nc -vz MessageProcessor_IP 8082 |
| פלט של פקודת netstat במעבד ההודעות | netstat -an > netstat.txt |
| גרסאות של רשימת הפלט שנפרסו עבור ה-API Proxy הספציפי בכל מעבדי ההודעות | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
| פלט של עץ סיווג בכל מעבדי ההודעות | curl -i http://localhost:8082/v1/classification/tree |