בעיות בזמן ריצה

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

כל השגיאות, בעיות ההשהיה או התוצאות הלא צפויות שנצפו במהלך הביצוע של בקשות ה-API נקראות runtimeבעיות.

שגיאות 4XX/5XX

Playbook

בקטע הזה מפורטות כמה פעולות ספציפיות שאפשר לבצע כדי לפתור שגיאות בזמן ריצה 4XX ו5XX.

תשובה או הודעת שגיאה קוד שגיאה Playbook
HTTP/1.1 500 Internal Server Error משתנה בהתאם לשגיאה בפועל 500 Internal Server Error

וגם

‫500 Internal Server Error - Streaming Enabled

HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.ServiceUnavailable 503 Service Unavailable
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets ‫503 השירות לא זמין – NoActiveTargets
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets

(הסיבה היא כשלים בבדיקת התקינות)

‫503 השירות לא זמין – בדיקת תקינות של NoActiveTargets נכשלה
HTTP/1.1 503 Service Unavailable

(משרת בק-אנד)

messaging.adaptors.http.flow.ErrorResponseCode ‫503 השירות לא זמין – שרת עורפי
HTTP/1.1 504 Gateway Timeout messaging.adaptors.http.flow.GatewayTimeout 504 הזמן שהוקצב לשער תם
HTTP/1.1 504 Gateway Timeout

(משרת בק-אנד)

messaging.adaptors.http.flow.ErrorResponseCode 504 זמן קצוב לתפוגה של שער – שרת עורפי

פרטי האבחון

אם אתם צריכים עזרה מהתמיכה של Apigee Edge בנוגע לשגיאות בזמן ריצה 4XX (כמו 400,‏ 401,‏ 404 ו-499) או שגיאות 5XX (כמו 500,‏ 503 ו-504), עליכם לאסוף ולשתף את יומני האבחון והמידע הבאים בבקשת התמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אוספים את המידע הזה?
פלט של כלי המעקב שכולל בקשות API שנכשלו ממשק משתמש של Edge איך משתמשים בכלי למעקב
יומני רוטר נתב
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*

יומנים של מעבד הודעות מעבד בקשות
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

דחיסת כל נתוני האבחון
>tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*

שגיאה 400 בקשה שגויה – שגיאה באישור SSL

Playbook

בקטע הזה אנחנו מספקים מידע והנחיות לגבי כמה הליכים ספציפיים שאפשר לבצע כדי לפתור בעיות שקשורות ל-400 Bad Request - SSL Certificate Error.

הודעת שגיאה Playbook
<html>
  <head>
    <title>400 The SSL certificate error</title>
  </head>
  <body bgcolor="white">
    <center> <h1>400 Bad Request</h1>
    </center>
    <center>The SSL certificate error</center>
    <hr>
    <center>nginx</center>
  </body>
</html>

שגיאה ‎400 Bad Request – שגיאת אישור SSL

פרטי האבחון

אם אתם צריכים עזרה מהתמיכה של Apigee Edge בנושא 400 Bad Request - SSL Certificate Error, כדאי לאסוף את נתוני האבחון הבאים ולשתף אותם בבקשת התמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אוספים את המידע הזה?
יומני רוטר נתב
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*
Tcpdumps נתב

מריצים את הפקודה tcpdump במכונת הנתב כדי ללכוד חבילות נתונים ברשת:

sudo tcpdump -s 0 -i any host CLIENT_HOST_IP_ADDRESS -w /tmp/router_tcpdump_$(hostname).pcap

דחיסת tcpdump:

tar cvzf /tmp/router_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/router_tcpdump_$(hostname).pcap
Tcpdumps מחשב לקוח

מריצים את הפקודה tcpdump במכונת הלקוח כדי ללכוד חבילות רשת:

sudo tcpdump -s 0 -i any host VIRTUAL_HOST_ALIAS -w /tmp/client_tcpdump_$(hostname).pcap

דחיסת tcpdump:

tar cvzf /tmp/client_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/router_tcpdump_$(hostname).pcap
דחיסת כל נתוני האבחון נתב
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router*

שגיאה 404: לא ניתן לזהות את ה-proxy של המארח

Playbook

בקטע הזה מפורטים מידע והנחיות לגבי כמה הליכים ספציפיים שאפשר לבצע כדי לפתור את השגיאה 404 Unable to identify proxy for host.

הודעת השגיאה או התיאור שלה קוד שגיאה Playbook
HTTP/1.1 404 Not Found

{
   "fault":{
      "faultstring":"Unable to identify proxy for host: VIRTUAL_HOST_NAME and url: PATH",
      "detail":{
         "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"
      }
   }
}

messaging.adaptors.http.flow.ApplicationNotFound 404 Unable to identify proxy for host

פרטי האבחון

אם אתם צריכים עזרה מהתמיכה של Apigee Edge בנוגע לשגיאה 404 Unable to identify proxy for host, עליכם לאסוף את פרטי האבחון הבאים ולשתף אותם בבקשת התמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אוספים את המידע הזה?
פלט של Deployments API שרת ניהול
curl -s http://MANAGEMENT_SERVER_HOST:8080/v1/organizations/ORGNAME/environments/ENVNAME/apis/APINAME/deployments > /tmp/deployments_output_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).json
פלט של API ועץ סיווג מעבד בקשות

כדי לטעון את הסביבות של ארגון ספציפי:

curl -s 0:8082/v1/runtime/organizations/ORGNAME/environments > /tmp/rmp_environments_list_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).txt

כדי לקבל את הגרסאות שנפרסו של proxy ספציפי ל-API:

curl -s 0:8082/v1/runtime/organizations/ORGNAME/environments/ENVNAME/apis/APINAME/revisions > /tmp/rmp_api_APINAME_revisions_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).txt

מקבלים את עץ הסיווג:

curl -s 0:8082/v1/classification/tree > /tmp/rmp_classification_tree_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).json
יומנים של מעבד הודעות מעבד בקשות
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*
tar cvzf /tmp/rmp_transactionlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/transactions*
tar cvzf /tmp/rmp_configurationlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/configurations*
tar cvzf /tmp/rmp_system_monitor_config_mp_logs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/edge-message-processor* /opt/apigee/var/log/edge-message-processor/config* /opt/apigee/var/log/edge-message-processor/system-monitor*
תמונות מצב של הזיכרון במעבדי בקשות מעבד בקשות

קבלת תמונת מצב של הזיכרון בזמן אמת:

sudo -u apigee jmap -dump:live,format=b,file=/opt/apigee/var/snapshot_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).hprof $(cat /opt/apigee/var/run/edge-message-processor/edge-message-processor.pid)

דחיסת תמונת מצב של הזיכרון:

tar cvzf /tmp/rmp_heapdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/snapshot_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).hprof
דחיסת כל נתוני האבחון מעבד בקשות
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/rmp_* 

‫502 שער שגוי – אין שרתים פעילים במעלה הזרם בזמן החיבור לשרת במעלה הזרם

Playbook

בקטע הזה אנחנו מספקים מידע והנחיות לגבי כמה הליכים ספציפיים שאפשר לבצע כדי לפתור בעיות שקשורות ל-502 Bad Gateway - no live upstreams while connecting to upstream.

בעיה הודעת שגיאה ביומנים Playbook
HTTP/1.1 502 Bad Gateway

<html>
<head>
<title>Error</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>An error occurred.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
</body>
</html>

השגיאה הבאה תופיע ביומני השגיאות של NGINX:

(/opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME._error_log)

[error] 4796#4796: *56357443 no live upstreams while connecting to upstream, client: ROUTER_IP_ADDRESS, server: HOST_ALIAS, request: "PUT BASE_PATH HTTP/1.1", upstream: "http://LISTOFMP_IP_R_MP_PORT/BASE_PATH", host: "HOST_ALIAS"
502 Bad Gateway

פרטי האבחון

אם אתם צריכים עזרה מהתמיכה של Apigee Edge בנושא 502 Bad Gateway - no live streams while connecting to upstream, כדאי לאסוף את נתוני האבחון הבאים ולשתף אותם בבקשת התמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אוספים את המידע הזה?
יומני רוטר נתב
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*
יומנים של מעבד הודעות מעבד בקשות
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

פלט מוביל, dump של heap ו-thread dumps מעבד בקשות

מקבלים את פלט הפקודה העליונה:

top -H -bn5 > /tmp/rmp_top_output_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).txt

מורידים את תמונת מצב של הזיכרון:

sudo -u apigee jcmd $(cat /opt/apigee/var/run/edge-message-processor/edge-message-processor.pid) GC.heap_dump /opt/apigee/var/rmp_heapdump_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).hprof

איך מקבלים את ה-thread dump:

sudo -u apigee jcmd $(cat /opt/apigee/var/run/edge-message-processor/edge-message-processor.pid) Thread.print > /tmp/rmp_thread_print_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).tdump
דחיסת כל נתוני האבחון
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_* /opt/apigee/var/rmp_heapdump_*

‫‎502 Bad Gateway - Unexpected EOF At Target

Playbook

בקטע הזה אנחנו מספקים מידע והנחיות לגבי כמה הליכים ספציפיים שאפשר לבצע כדי לפתור בעיות שקשורות ל502 Bad Gateway - Unexpected EOF At Target:

תשובה או הודעת שגיאה קוד שגיאה Playbook
HTTP/1.1 502 Bad Gateway

{
   "fault": {
      "faultstring": "Unexpected EOF at target",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.UnexpectedEOFAtTarget"
       }
    }
}

messaging.adaptors.http.flow.UnexpectedEOFAtTarget 502 Bad Gateway Unexpected EOF

פרטי האבחון

אם אתם צריכים עזרה מהתמיכה של Apigee Edge בנושא 502 Bad Gateway - Unexpected EOF At Target, עליכם לאסוף את נתוני האבחון הבאים ולשתף אותם בבקשת התמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אוספים את המידע הזה?
פלט של כלי המעקב שכולל בקשות API שנכשלו ממשק משתמש של Edge איך משתמשים בכלי למעקב
יומני רוטר נתב
tar cvzf /tmp/router_logs_ORGNAME_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*

יומנים של מעבד הודעות מעבד בקשות
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

Tcpdumps מעבד בקשות
sudo tcpdump -s 0 -i any host BACKENDSERVER_HOSTNAME -w /tmp/rmp_tcpdump_$(hostname).pcap
tar cvzf /tmp/rmp_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/$(hostname).pcap
דחיסת כל נתוני האבחון נתב/מעבד בקשות
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*

כשלים בלחיצת היד של TLS

Playbook

בקטע הזה מופיעים פרטים והנחיות לגבי כמה הליכים ספציפיים שאפשר לבצע כדי לפתור בעיות שקשורות לשיבושים בתהליך הלחיצה של TLS/SSL:

הודעת שגיאה Playbook
Received fatal alert: handshake_failure כשלים בלחיצת יד של TLS/SSL
Received fatal alert: bad_certificate SSL Handshake Failures - Bad Client Certificate

פרטי האבחון

אם אתם צריכים עזרה מהתמיכה של Apigee Edge בנוגע לבעיות ב-TLS/SSL handshake, כדאי לאסוף את המידע הדיאגנוסטי הבא ולשתף אותו בפנייה לתמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אוספים את המידע הזה?
פלט של כלי המעקב שכולל בקשות API שנכשלו ממשק משתמש של Edge איך משתמשים בכלי למעקב
יומני רוטר נתב
tar cvzf /tmp/router_logs_ORGNAME>_ENVNAME_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-router/nginx/ORGNAME~ENVNAME.*
יומנים של מעבד הודעות מעבד בקשות
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

פלט פקודה של OpenSSL מעבד בקשות

שרת עורפי ללא תמיכה ב-SNI:

openssl s_client -connect BACKEND_SERVER_HOSTNAME:PORT -showcerts | tee /tmp/rmp_openssl_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).txt

שרת עורפי עם SNI מופעל:

openssl s_client -connect BACKEND_SERVER_HOSTNAME:PORT -server BACKEND_SERVER_HOSTNAME -showcerts | tee /tmp/rmp_openssl_$(hostname)-$(date +%Y.%m.%d_%H.%M.%S).txt
Tcpdumps מעבד בקשות
sudo tcpdump -s 0 -i any host BACKEND_SERVER_HOSTNAME -w /tmp/$(hostname).pcap
tar cvzf /tmp/rmp_tcpdumps_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /tmp/$(hostname).pcap
אישורים מ-keystore ומ-truststore של מעבד בקשות שרת ניהול

מקבלים את פרטי האישור ממאגר המפתחות:

curl -v http://MANAGEMENT_SERVER_HOST:PORT/v1/organizations/ORGNAME/environments/ENVNAME/keystores/KEYSTORENAME/certs/CERTNAME -u USERNAME

מקבלים את פרטי האישור ממאגר האישורים:

curl -v http://MANAGEMENT_SERVER_HOSTPORT/v1/organizations/ORGNAME/environments/ENVNAME/keystores/TRUSTSTORENAME/certs/CERTNAME -u USERNAME
דחיסת כל נתוני האבחון מעבד בקשות
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*