統合のトラブルシューティング

API Hub コネクタの統合に関する一般的な問題と、そのトラブルシューティングの手順は次のとおりです。

API メタデータが API Hub に表示されない

  • 初期同期時間: 初回の同期が開始され、API Hub に API データが表示されるまでに数時間かかることがあります。数時間待つことをおすすめします。
  • プラグイン インスタンスのステータス: API Hub のプラグイン インスタンスが削除または変更されていないことを確認します。
  • ゲートウェイ ID: Apigee Edge for Private Cloud API Hub コネクタの設定で、正しいゲートウェイ ID が適切に構成されていることを確認します。
  • ログを確認する: Edge for Private Cloud API Hub コネクタ サービスログ /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log にエラーが記録されていないか確認します。

プロキシはデプロイされているが、API ハブの情報が正確でない

  • 伝播の遅延: デプロイされたプロキシ情報が伝播され、API Hub に反映されるまでに数分かかります。
  • ログを確認する: Edge for Private Cloud API Hub コネクタのログで、アップロードされたプロキシの詳細を確認します。これにより、同期のためにプロキシの更新が正常に処理されたかどうかを特定できます。

API Hub コネクタを変更していないのに、ユーザー組織の同期が停止した

  • プラグイン インスタンスのステータス(API Hub 側): API Hub の関連付けられたプラグイン インスタンスがプロビジョニング解除、削除、変更されているかどうかを確認します。API Hub 側の変更は、API Hub コネクタからの同期に直接影響する可能性があります。
  • ログを確認する: Edge for Private Cloud API Hub コネクタのログで、同期プロセスの停止を示す可能性のあるエラー、警告、問題がないか確認します。これには、API Hub の接続の問題や認証の問題が含まれます。

ステータス API を使用すると、どの組織が有効にして同期中であるかを直接確認できます。

ログベースのトラブルシューティング

API Hub コネクタのログはどこに保存されますか?

/opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

有効になっている組織に関する情報を取得するにはどうすればよいですか?

現在有効になっていて同期されている組織を確認するには、ステータス API を使用してシステムログを調べます。

  • アクション: ステータス API エンドポイントを呼び出します。
  • 想定される出力: API レスポンスの apiSyncStatus セクションと analyticsSyncStatus セクションに、オプトインした組織が一覧表示されます。メタデータの同期が有効になっている組織は apiSyncStatus に表示され、ランタイム同期が有効になっている組織は analyticsSyncStatus に表示されます。
    {
     "apiSyncStatus": [
       {
         "organization": "foo",
         "phase": "Preparing", // ColdTransfer => Preparing
         "components": [
           "proxy": {
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 100, // total proxies known to uapim connector
               "pendingItems": 90,  // pending proxies to upload
               "completedItems": 6, // completed proxies to upload
               "failedItems": 4 // proxies failed to upload
             }
           },
           "environment": { //environment upload status
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 5, // total number of environments
               "pendingItems": 1, // pending environments to process
               "completedItems": 3, // completed environment processing
               "failedItems": 1 // failed environment processing
             }
           }]
       },
       {
         "organization": "bar",
         "phase": "Processing", // "Streaming" -> "Processing"
         "components": [
           "proxy": {
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 110, // total proxies known to uapim connector
               "pendingItems": 16, // pending proxies to upload
               "completedItems": 3, // completed proxies to upload
               "failedItems": 1 // proxies failed to upload
             }
           },
           "environment": {
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 5, // total number of environments
               "pendingItems": 3, // pending environments to process
               "completedItems": 1, // completed environment processing
               "failedItems": 1 // failed environment processing
             }
           }]
       },
       {
         "organization": "test",
         "phase": "Queued", // "Yet to start" -> "Queued"
         "lastUpdated": "2025-04-16T00:56:45Z"
       }
     ],
     "analyticsSyncStatus": [
       {
         "organization": "test",
         "environment": "dev",
         "failedItems": 2,
         "lastUpdated": "2025-04-16T00:56:45Z"
       },
       {
         "organization": "test",
         "environment": "prod",
         "failedItems": 4,
         "lastUpdated": "2025-04-16T00:56:45Z"
       }
     ]
    }
    
  • システムログの検査: より詳細なビューを表示したり、個々の組織の同期の設定を確認したりするには、システムログで特定のエントリを調べます。
    • ログを確認する:
      /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • 検索コマンド: grep などのログ検索ツールを使用して、次のログ行を見つけます。
      • org メタデータ org のメタデータ同期の場合:
        grep "Setup metadata sync for organization: metadata-org"  /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
      • ログ スニペットの例:
        2025-07-10 08:47:09,901  main INFO  c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.setupMetadataSync() : Setup metadata sync for organization: metadata-org
      • 組織のメタデータ同期を設定:」というテキストの後に組織名が表示されていることを確認します。
      • 組織 runtime-org のランタイム データ同期の場合:
        grep "Setup runtime data sync for organization: runtime-org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
      • ログ スニペットの例:
        2025-07-10 08:47:09,902  main INFO  c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.setupRuntimeSyncData() : Setup runtime data sync for organization: runtime-org
      • 組織のランタイム データ同期を設定:」というテキストの後に組織名が表示されていることを確認します。

ログから有効化に失敗したすべての(組織、環境)の情報を取得するにはどうすればよいですか?

有効化に失敗した組織に関する情報を取得するには、システムログで特定のエラー エントリを確認します。

  • ログを確認します。 /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
  • 検索コマンド: grep または同様のログ検索ツールを使用して、メタデータ同期ステータスの更新中にエラーが発生したことを示すログ行を見つけます。
    • 組織/環境のメタデータの同期ステータスの更新に失敗した場合(failed-org/failed-env):
      grep "Error while updating metadata sync status for org: failed-org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • ログ スニペットの例:
      2025-07-15 10:30:15,123 main ERROR c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.updateMetadataSyncStatus() : Error while updating metadata sync status for org: failed-org
    • Error while updating metadata sync status for org/env: というテキストの後に、組織と環境(failed-org/failed-env など)が表示されます。

ログから組織の転送状態の変更の概要を取得するにはどうすればよいですか?

(組織、環境)同期転送状態が更新されたときの概要を取得するには、システムログで特定のエントリを確認します。

  • ログを確認します。 /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
  • 検索コマンド: grep などのログ検索ツールを使用して、組織と環境の転送ステータスの更新を示すログ行を見つけます。
    • 移行ステータスの更新について:
      grep "Transfer status is updated for org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • ログ スニペットの例:
      2025-07-15 18:35:01,789 main INFO c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.updateTransferStatus() : Transfer status is updated for org: org1 to BULK_TRANSFER
      2025-07-10 08:47:11,364  main INFO  c.a.u.m.UAPIMMetadataServiceImpl - UAPIMMetadataServiceImpl.updateEnvironmentStatus() : Transfer status is updated for org: org1 to STREAMING
    • 「Transfer status is updated for org/env」というテキストの後に、特定の組織と環境(org1/prod など)と状態が続くことを確認します。
  • 個々のプロキシの結果を確認するにはどうすればよいですか?

    個々のプロキシの proto データの収集とアップロードに関連するログエントリを確認するには、特定のログ行を検索します。

    • ログファイルの場所: /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • 検索コマンド: grep などのログ検索ツールを使用して、特定の組織とプロキシの収集された proto データのアップロードを示すログ行を見つけます。
      • 成功シナリオ: プロキシ proto が API Hub にアップロードされます。この場合、「uploaded collect proto for org: {}, proxy: {},」というテキストを検索します。 grep "uploaded collect proto for org: your-org-name, proxy: your-proxy-name, with messageId:" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
      • -org-name は実際の組織名に、your-proxy-name は対象の実際のプロキシ名に置き換えます。ログ スニペットの例:
        2025-07-10 08:47:11,362 main DEBUG c.a.u.m.UAPIMMetadataServiceImpl - UAPIMMetadataServiceImpl.generateCollectProto() : uploaded collect proto for org: org1, proxy: proxy1, with messageId: message_ids: "15569268426032329"

        「uploaded collect proto for org: 」というテキストの後に組織名、「, proxy: 」というテキストの後にプロキシ名が表示されていることを確認します。

      • 失敗シナリオ: プロキシ proto の API Hub へのアップロードが失敗した場合、「Failed to publish collect proto for org: {}, proxy: {}," というテキストを検索します。 grep "Failed to publish collect proto for org: your-org-name, proxy: your-proxy-name, " /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

        your-org-name は実際の組織名に、your-proxy-name は対象の実際のプロキシ名に置き換えます。

        ログ スニペットの例:
        2025-07-10 08:47:11,362 main DEBUG c.a.u.m.UAPIMMetadataServiceImpl - UAPIMMetadataServiceImpl.generateCollectProto() : Failed to publish collect proto for org: org1, proxy: proxy1

        「failed to publish collect proto for org: 」というテキストの後に組織名、「, proxy: 」というテキストの後にプロキシ名が表示されているかどうかを確認します。

    ランタイム/分析

    レコードを NFS に公開できませんでした

    原因: NFS の使用率が 75% を超えています。

    確認するには: grep "Diskspace usage is at more than 75% of the allocated MaxDiskSpace at" /opt/apigee/var/log/edge-message-processor/logs/system.log

    原因: API Hub コネクタのランタイム同期が有効になっていないか、構成が誤っている

    /opt/apigee/customer/application/message-processor.properties: conf_message-processor-communication_uapim.enabled.environments= で以下を確認します。

    正しい組織と環境がリストされていることを確認します。

    conf_message-processor-communication_uapim.runtime.data.path=

    正しい NFS パスを指していることを確認します。

    データが NFS に正常に公開されたかどうかを確認する方法

    レコードは、特定の NFS パス(例: /the/nfs/staging)に保存されます。

    このディレクトリの内容を直接確認して、新しく作成されたファイルを確認できます。ファイルが存在することは、NFS への公開が成功したことを示します。

    データファイルが処理されずに削除された

    原因: ファイル名に有効な組織/環境情報が含まれていませんでした。

    確認するログ: grep "Skipped and Deleted file" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    組織の構成がないため、ファイルが削除されました

    原因: 組織固有の構成が見つかりません。

    確認するログ: grep "Deleted file .* due to missing org config" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    無効な環境のためファイルが削除されました

    原因: ファイル名から解析された環境が組織構成に存在しません。

    確認するログ: grep "Deleted file .* due to invalid env" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    Pub/Sub にファイルをアップロードできませんでした

    原因: パブリッシャーを作成できませんでした(サービス アカウントまたはトピックの構成が誤っているなど)。

    確認するログ: grep "Failed to create publisher for org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    部分的にアップロード済み - 一部のレコードをアップロードできませんでした

    原因: ファイル内の一部のレコードを公開できませんでした。

    確認するログ: grep "was not completely published" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    ファイルが完全に処理され、削除されました

    確認するログ: grep "File .* completely published to topic" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log