运行时问题

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

在 API 执行期间观察到的任何错误、延迟问题或意外结果 请求称为 runtime 问题。

4XX/5XX 错误

Playbook

本部分提供了有关可被出于某些条件使用的某些特定程序的信息和指导, 然后对运行时 4XX5XX 错误进行问题排查并解决。

错误响应/消息 错误代码 Playbook
HTTP/1.1 500 Internal Server Error 因实际错误而异 <ph type="x-smartling-placeholder"></ph> 500 内部服务器错误

<ph type="x-smartling-placeholder"></ph> 500 内部服务器错误 - 流式传输已启用

HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.ServiceUnavailable <ph type="x-smartling-placeholder"></ph> 503 服务不可用
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets <ph type="x-smartling-placeholder"></ph> 503 服务不可用 - NoActiveTargets
HTTP/1.1 503 Service Unavailable messaging.adaptors.http.flow.NoActiveTargets

(原因是健康检查失败)

<ph type="x-smartling-placeholder"></ph> 503 服务不可用 - NoActiveTargets 健康检查失败
HTTP/1.1 503 Service Unavailable

(来自后端服务器)

messaging.adaptors.http.flow.ErrorResponseCode <ph type="x-smartling-placeholder"></ph> 503 服务不可用 - 后端服务器
HTTP/1.1 504 Gateway Timeout messaging.adaptors.http.flow.GatewayTimeout <ph type="x-smartling-placeholder"></ph> 504 网关超时
HTTP/1.1 504 Gateway Timeout

(来自后端服务器)

messaging.adaptors.http.flow.ErrorResponseCode <ph type="x-smartling-placeholder"></ph> 504 网关超时 - 后端服务器

诊断信息

如果您需要 Apigee Edge 支持团队获取有关4XX 运行时错误的任何帮助 (例如 400401404499)或 5XX(例如 500503504)错误, 然后在支持请求中收集并分享以下诊断日志和信息:

诊断信息 我可以在哪里收集这些信息? 我如何收集这些信息?
跟踪工具输出信息捕获失败的 API 请求 Edge 界面 <ph type="x-smartling-placeholder"></ph> 如何使用跟踪工具
路由器日志 路由器
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>

<ph type="x-smartling-placeholder"></ph> 400 请求错误错误 - SSL 证书错误

诊断信息

如果您在 400 Bad Request - SSL Certificate Error 上需要 Apigee 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.*
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 <ph type="x-smartling-placeholder"></ph> 404 未能识别主机的代理

诊断信息

如果您需要 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

获取为特定 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 - 连接到上游时无上游上游

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"
<ph type="x-smartling-placeholder"></ph> 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.*
消息处理器日志 消息处理器
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

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 <ph type="x-smartling-placeholder"></ph> 502 Bad Gateway 意外 EOF

诊断信息

如果您在 502 Bad Gateway - Unexpected EOF At Target 上需要 Apigee Edge 支持团队的帮助, 然后收集以下诊断信息,并在支持请求中共享这些信息:

诊断信息 我可以在哪里收集这些信息? 我如何收集这些信息?
跟踪工具输出信息捕获失败的 API 请求 Edge 界面 <ph type="x-smartling-placeholder"></ph> 如何使用跟踪工具
路由器日志 路由器
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 <ph type="x-smartling-placeholder"></ph> TLS/SSL 握手失败
Received fatal alert: bad_certificate <ph type="x-smartling-placeholder"></ph> SSL 握手失败 - 客户端证书有误

诊断信息

如果您需要 Apigee Edge 支持团队就 TLS/SSL 握手失败问题提供协助,请收集 并在支持请求中分享这些信息:

诊断信息 我可以在哪里收集这些信息? 我如何收集这些信息?
跟踪工具输出信息捕获失败的 API 请求 Edge 界面 <ph type="x-smartling-placeholder"></ph> 如何使用跟踪工具
路由器日志 路由器
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
消息处理器的密钥库和信任库的证书 管理服务器

从密钥库获取证书详细信息:

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