排查 Compute Engine 上的 Cloud Endpoints 问题

本页面介绍了在 Compute Engine 虚拟机 (VM) 上部署 Extensible Service Proxy (ESP) 时的问题排查方法。

查看虚拟机实例上的日志

通过查看虚拟机实例上的 Endpoints 运行时日志,您可以对相关问题进行排查。

如需查看日志,请执行以下操作:

  1. 使用 ssh 连接到您的虚拟机:

    gcloud config set project YOUR_PROJECT_ID
    
    gcloud compute ssh INSTANCE_NAME
    

    YOUR_PROJECT_IDINSTANCE_NAME 分别替换为您的 Google Cloud 项目 ID 和虚拟机实例名称。

  2. 查看 nginx 错误日志:

    如果您在原始虚拟机上运行 endpoints-runtime:

    tail -f /var/log/nginx/error.log
    

    如果您在 Docker 中运行 endpoints-runtime

    docker ps
    
    docker logs CONTAINER_NAME
    

    请将 CONTAINER_NAME 替换为容器名称。

显示 ESP 状态

如需显示 ESP 状态,请执行以下操作:

  1. 使用 ssh 连接到您的虚拟机:

    gcloud config set project YOUR_PROJECT_ID
    
    gcloud compute ssh INSTANCE_NAME
    

    YOUR_PROJECT_IDINSTANCE_NAME 分别替换为您的 Cloud 项目 ID 和虚拟机实例名称。

  2. 检索 ESP 容器的名称(容器名称通常为 esp):

    docker ps
    
  3. 在容器中获取 bash shell:

    docker exec -it ESP_CONTAINER_NAME /bin/bash
    

    ESP_CONTAINER_NAME 替换为上一步中 ESP 容器的名称。

  4. 安装 curl

  5. 输入以下内容:

    curl http://localhost:8090/endpoints_status
    

获取服务配置 ID

如果您在启动 ESP 时将 rollout_strategy 设置为 managed,并且需要找到 ESP 实例正在使用的配置 ID,那么在 curl http://localhost:8090/endpoints_status 命令的输出结尾附近,输出类似于如下内容:

      "serviceConfigRollouts": {
          "rolloutId": "2017-08-09r27",
          "percentages": {
               "2017-08-09r26": "100"
          }
      }

rolloutId 中的值是 ESP 正在使用的服务配置 ID。此配置 ID 应与最新部署的配置相匹配。您可以在 Google Cloud Console 中的 Endpoints > 服务页面上查看部署历史记录,以及查看对服务配置所做的更改。请参阅比较配置文件