Compute Engine での Cloud Endpoints のトラブルシューティング

このページでは、Extensible Service Proxy(ESP)を Compute Engine 仮想マシン(VM)にデプロイした場合のトラブルシューティング方法を説明します。

VM インスタンスに関するログの表示

問題のトラブルシューティングを行うときは、VM インスタンスに関する Endpoints のランタイムログを調べると役に立ちます。

ログを表示するには:

  1. ssh を使用して仮想マシンに接続します。

    gcloud config set project YOUR_PROJECT_ID
    
    gcloud compute ssh INSTANCE_NAME
    

    YOUR_PROJECT_ID は実際の Google Cloud プロジェクトの ID に置き換え、INSTANCE_NAME は仮想マシンのインスタンス名に置き換えます。

  2. nginx エラーログを表示します。

    Endpoints ラインタイムを RAW VM で実行している場合:

    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_ID は実際の Cloud プロジェクトの ID に置き換え、INSTANCE_NAME は仮想マシンのインスタンス名に置き換えます。

  2. ESP コンテナの名前を取得します(通常、コンテナ名は esp です)。

    docker ps
    
  3. コンテナ内の bash シェルを取得します。

    docker exec -it ESP_CONTAINER_NAME /bin/bash
    

    ESP_CONTAINER_NAME は、前の手順で取得した ESP コンテナ名で置き換えます。

  4. curl をインストールします。

  5. 次の情報を入力します。

    curl http://localhost:8090/endpoints_status
    

サービス構成 ID の取得

ESP の起動時に rollout_strategymanaged に設定し、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 で、[エンドポイント] の [サービス] ページを開くと、デプロイの履歴やサービス構成に対する変更を確認できます。構成ファイルの比較をご覧ください。