ปัญหาเกี่ยวกับรันไทม์

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

ข้อผิดพลาด ปัญหาด้านเวลาในการตอบสนอง หรือผลลัพธ์ที่ไม่คาดคิดที่พบระหว่างดำเนินการคำขอ API จะเรียกว่าปัญหา runtime

ข้อผิดพลาด 4XX/5XX

Playbook

ส่วนนี้ให้ข้อมูลและคำแนะนำเกี่ยวกับกระบวนการเฉพาะบางอย่างที่ทำตามได้เพื่อแก้ปัญหาและแก้ไขข้อผิดพลาดเกี่ยวกับรันไทม์ 4XX และ 5XX

การตอบกลับ/ข้อความแสดงข้อผิดพลาด รหัสข้อผิดพลาด Playbook
HTTP/1.1 500 Internal Server Error แตกต่างกันไปตามข้อผิดพลาดจริง 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์

และ

500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ - เปิดใช้สตรีมมิงแล้ว

HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.ServiceUnavailable 503 ไม่พร้อมให้บริการ
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 ที่ล้มเหลว UI ของ 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.*

บันทึกตัวประมวลผลข้อความ Message Processor
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 ไม่สามารถระบุพร็อกซีสำหรับข้อผิดพลาดของโฮสต์

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 ระบุพร็อกซีสำหรับโฮสต์ไม่ได้

ข้อมูลการวินิจฉัย

หากต้องการความช่วยเหลือจากฝ่ายสนับสนุนของ Apigee Edge สำหรับข้อผิดพลาด 404 Unable to identify proxy for host ให้รวบรวมข้อมูลการวินิจฉัยต่อไปนี้และแชร์ข้อมูลในเคสขอรับความช่วยเหลือ

ข้อมูลการวินิจฉัย ฉันจะรวบรวมข้อมูลนี้ได้จากที่ไหน ฉันจะรวบรวมข้อมูลนี้ได้อย่างไร
เอาต์พุต API ของ Deployments เซิร์ฟเวอร์การจัดการ
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 และแผนผังการแยกประเภท Message Processor

รับสภาพแวดล้อมที่โหลดสำหรับองค์กรที่ระบุ

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

รับการแก้ไขที่ทำให้ใช้งานได้สำหรับพร็อกซี 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
บันทึกตัวประมวลผลข้อความ Message Processor
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*
ฮีพดัมพ์บนตัวประมวลผลข้อความ Message Processor

รับฮีพดัมพ์แบบเรียลไทม์

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
บีบอัดข้อมูลการวินิจฉัยทั้งหมด Message Processor
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 เกตเวย์ไม่ถูกต้อง

ข้อมูลการวินิจฉัย

หากต้องการความช่วยเหลือจากทีมสนับสนุนของ 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.*
บันทึกตัวประมวลผลข้อความ Message Processor
tar cvzf /tmp/rmp_systemlogs_$(hostname)_$(date +%Y.%m.%d_%H.%M.%S).tar.gz /opt/apigee/var/log/edge-message-processor/logs/system*

เอาต์พุตด้านบนสุด ฮีพดัมพ์ และเทรดดัมพ์ Message Processor

รับเอาต์พุตคำสั่งยอดนิยมดังนี้

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 เกตเวย์ไม่ถูกต้อง - EOF ที่ไม่คาดคิด

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 EOF ของเกตเวย์ไม่ถูกต้อง

ข้อมูลการวินิจฉัย

หากต้องการความช่วยเหลือจากฝ่ายสนับสนุนของ Apigee Edge ใน 502 Bad Gateway - Unexpected EOF At Target ให้รวบรวมข้อมูลการวินิจฉัยต่อไปนี้และแชร์ข้อมูลในเคสขอรับความช่วยเหลือ

ข้อมูลการวินิจฉัย ฉันจะรวบรวมข้อมูลนี้ได้จากที่ไหน ฉันจะรวบรวมข้อมูลนี้ได้อย่างไร
เอาต์พุตของเครื่องมือติดตามซึ่งบันทึกคำขอ API ที่ล้มเหลว UI ของ 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.*

บันทึกตัวประมวลผลข้อความ Message Processor
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 Message Processor
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 ที่ล้มเหลว UI ของ 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.*
บันทึกตัวประมวลผลข้อความ Message Processor
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 Message Processor

เซิร์ฟเวอร์แบ็กเอนด์ที่ไม่ได้เปิดใช้งาน 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 Message Processor
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
ใบรับรองจากคีย์สโตร์และ Truststore ของผู้ประมวลผลข้อความ เซิร์ฟเวอร์การจัดการ

รับรายละเอียดใบรับรองจากคีย์สโตร์ โดยทำดังนี้

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
บีบอัดข้อมูลการวินิจฉัยทั้งหมด Message Processor
tar -cvzf /tmp/data_CASE#_$(hostname).tar.gz /tmp/router* /tmp/rmp_*