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

מוצג המסמך של 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 – סטרימינג מופעל

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 Service Unavailable – NoActiveTargets
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets

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

503 Service Unavailable - NoActiveTargets Health Checks
HTTP/1.1 503 Service Unavailable

(משרת קצה עורפי)

messaging.adaptors.http.flow.ErrorResponseCode 503 שירות לא זמין – שרת עורפי
HTTP/1.1 504 Gateway Timeout messaging.adaptors.http.flow.GatewayTimeout 504 Gateway Timeout (זמן קצוב לתפוגה של שער)
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 – שגיאת אישור 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 לא ניתן לזהות את שרת ה-proxy למארח

פרטי האבחון

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

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אפשר לאסוף את המידע הזה?
פלט 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 Bad Gateway – אין אירועי upstream בשידור חי בזמן התחברות ל-upstream

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*

פלט מוביל, תמונת מצב של הזיכרון ותמונת מצב של שרשורים מעבד בקשות

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

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

אחזור של תמונת השרשור:

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 - EOF Expected 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 Expected 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 – אישור לקוח לא תקין

פרטי האבחון

אם דרושה לכם עזרה מהתמיכה של Apigee Edge בכשלים בלחיצת היד של TLS/SSL, עליכם לאסוף את את פרטי האבחון הבאים ולשתף אותם בבקשת התמיכה:

פרטי האבחון איפה אפשר לאסוף את המידע הזה? איך אפשר לאסוף את המידע הזה?
כלי המעקב לתיעוד בקשות 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:

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

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

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_*