כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
תיאור הבעיה
בתמונה הבאה אפשר לראות שבקשות API לא מתועדות בממשק המשתמש של Edge כשמתחיל סשן מעקב:
הודעת שגיאה
לא יוצגו הודעות שגיאה בממשק המשתמש של Edge כשהבעיה הזו מתרחשת.
סיבות אפשריות
בטבלה הבאה מפורטות הסיבות האפשריות לכשל בתיעוד בקשות API ב-Edge UI Trace:
הסיבה | תיאור | הוראות לפתרון בעיות הרלוונטיות |
---|---|---|
בקשות שלא עובדו על ידי מעבד ההודעות | כדי לתעד נתוני מעקב, מעבד ההודעות של Edge צריך לעבד בקשות API. אם בקשת API לא מצליחה להגיע ל-Apigee Edge, המערכת נכשלת בנקודת הכניסה ל-Edge (כלומר, נתב) או שהמעקב ייכשל לפני העיבוד שלו על ידי מעבד ההודעות. | משתמשי Edge הציבוריים והפרטיים |
שרת proxy ל-API לא נמצא בעץ הסיווגים | מעבדי הודעות של Apigee משתמשים בהגדרת כלל ניתוב שנקראת 'עץ סיווג' כדי לשלוח בקשות על סמך שם המארח, הנתיב הבסיסי, הגרסה והסביבה של הבקשה הנכנסת. אם שרת ה-proxy הרלוונטי ל-API יוסר מסיבה כלשהי מעץ הסיווגים, יכול להיות שטרנזקציות המעקב לא יאוכלסו. | משתמשי ענן פרטי של Edge |
הסיבה: בקשות שלא מעובדות על ידי מעבד ההודעות
אבחון
כדי לתעד בקשת API בסשן מעקב, מעבד ההודעות של Edge צריך לעבד את בקשת ה-API. יש כמה סיבות לכך שבקשת API לא מתועדת בטרנזקציית מעקב.
לדוגמה, אם בקשת API לא מצליחה להגיע ל-Apigee Edge, נכשלת בנקודת הכניסה ל-Edge (כלומר, נתב) או שהמעקב ייכשל לפני העיבוד של מעבד ההודעות, לכן לא ניתן יהיה לתעד את המעקב. כל אחד מהתרחישים האלה מתואר בפירוט בהמשך.
תרחיש 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_failure
HTTP/1.1 400 Bad Request
ייתכן גם שתופיע שגיאת אישור SSL.
רזולוציה
כדאי לעיין במדריכים הבאים כדי לפתור את הבעיות האלה:
תרחיש 3: מעבד ההודעות לא יכול לעבד בקשות
סיבה
בתרחיש הזה, מעבד ההודעות של Apigee לא מצליח למצוא את שרת ה-API של ה-API למארח הווירטואלי ולנתיב שצוינו. כתוצאה מכך, ייתכן שתופיע אחת מהשגיאות הבאות:
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 לא ניתן לזהות שרת proxy למארח.
הסיבה: שרת 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
ברגע שמעבד ההודעות מוכן, מאמתים את הזמינות של שרת ה-API מסוג שרת proxy באמצעות הפקודה הבאה:
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
אם הבעיה נמשכת, יש לעבור למאמר יש לאסוף פרטי אבחון.
חובה לאסוף פרטי אבחון
אם הבעיה נמשכת אחרי ביצוע ההוראות שלמעלה, יש לאסוף את פרטי האבחון הבאים ולשתף אותם עם התמיכה של Apigee Edge:
סוג המידע האבחון | פקודה |
---|---|
פלט של פקודת session session | 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 |
גרסאות קודמות של רשומות פלט שנפרסו עבור שרת ה-proxy הספציפי של ה-API בכל מעבדי ההודעות | curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions |
פלט של עץ הסיווג בכל מעבדי ההודעות | curl -i http://localhost:8082/v1/classification/tree |