排查集成问题

以下是 API Hub 连接器集成的一些常见问题及其问题排查步骤。

API 元数据未显示在 API Hub 中

  • 初始同步时间:初始同步可能需要几个小时才能开始,并且 API 数据可能需要几个小时才能显示在 API Hub 中。建议等待几个小时。
  • 插件实例状态:验证 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 Hub 中的信息不准确

  • 传播延迟:已部署的代理信息需要几分钟时间才能传播并反映在 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 响应中的 apiSyncStatusanalyticsSyncStatus 部分下。已启用元数据同步的组织将显示在 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 或类似的日志搜索工具查找以下日志行:
      • 对于组织元数据-组织元数据的元数据同步
        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 或类似的日志搜索工具查找指示元数据同步状态更新期间发生错误的日志行。
    • 对于组织/环境失败的元数据同步状态更新,失败的组织/失败的环境:
      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