통합 문제 해결

다음은 API 허브 커넥터 통합과 관련된 일반적인 문제와 문제 해결 단계입니다.

API 메타데이터가 API 허브에 표시되지 않음

  • 초기 동기화 시간: 초기 동기화가 시작되고 API 데이터가 API 허브에 표시되는 데 몇 시간이 걸릴 수 있습니다. 몇 시간 정도 기다리는 것이 좋습니다.
  • 플러그인 인스턴스 상태: API 허브의 플러그인 인스턴스가 삭제되거나 변경되지 않았는지 확인합니다.
  • 게이트웨이 ID: Apigee Edge for Private Cloud API 허브 커넥터 설정에 올바른 게이트웨이 ID가 올바르게 구성되어 있는지 확인합니다.
  • 로그 확인: Edge for Private Cloud API 허브 커넥터 서비스 로그 /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log에 기록된 오류가 있는지 확인합니다.

프록시가 배포되었으나 API 허브의 정보가 정확하지 않음

  • 전파 지연: 배포된 프록시 정보가 전파되어 API 허브에 반영되는 데 몇 분 정도 걸릴 수 있습니다.
  • 로그 확인: 업로드된 프록시에 관한 자세한 내용은 Edge for Private Cloud API 허브 커넥터 로그를 검토하세요. 이를 통해 동기화를 위해 프록시 업데이트가 성공적으로 처리되었는지 확인할 수 있습니다.

API 허브 커넥터를 변경하지 않았는데 사용자 조직의 동기화가 중지됨

  • 플러그인 인스턴스 상태 (API 허브 측면): API 허브의 연결된 플러그인 인스턴스가 프로비저닝 해제되었는지, 삭제되었는지, 변경되었는지 확인합니다. API 허브 측의 변경사항은 API 허브 커넥터의 동기화에 직접적인 영향을 미칠 수 있습니다.
  • 로그 확인: Edge for Private Cloud API 허브 커넥터 로그에서 동기화 프로세스의 중단을 나타낼 수 있는 오류, 경고 또는 문제가 있는지 검토합니다. 여기에는 API 허브의 연결 문제 또는 인증 문제가 포함될 수 있습니다.

상태 API는 선택하고 활발하게 동기화하는 조직을 직접 확인할 수 있는 방법을 제공합니다.

로그 기반 문제 해결

API 허브 커넥터 로그는 어디에 저장되나요?

/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
      • 조직의 런타임 데이터 동기화 설정:이라는 텍스트와 조직 이름이 표시되는지 확인합니다.

로그에서 사용 설정에 실패한 모든 (org,env) 정보를 가져오려면 어떻게 해야 하나요?

사용 설정에 실패한 조직에 관한 정보를 확인하려면 시스템 로그에서 특정 오류 항목을 검사하면 됩니다.

  • 로그 확인: /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
    • '조직/환경의 전송 상태가 업데이트됨'이라는 정확한 텍스트와 특정 조직 및 환경 (예: org1/prod) 및 상태를 찾습니다.
  • 개별 프록시의 결과를 확인하려면 어떻게 해야 하나요?

    개별 프록시의 프로토 데이터 수집 및 업로드와 관련된 로그 항목을 확인하려면 특정 로그 행을 검색하면 됩니다.

    • 로그 파일 위치: /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • 검색 명령어: grep 또는 유사한 로그 검색 도구를 사용하여 특정 조직 및 프록시에 대해 수집된 프로토 데이터의 업로드를 나타내는 로그 행을 찾습니다.
      • 성공 시나리오: 프록시 프로토가 API 허브에 업로드됩니다. 이 경우 '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: ' 뒤에 프록시 이름이 나옵니다.

      • 실패 시나리오: 프록시 프로토콜이 API 허브에 업로드되지 않았습니다. 이 경우 '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 허브 커넥터 런타임 동기화가 사용 설정되지 않았거나 잘못 구성됨

    /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