여러 개의 축이 구성된 경우 맞춤 측정기준이 표시되지 않습니다.

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

증상

통계 수집기 정책을 사용하여 만든 맞춤 변수는 Edge UI에서 애널리틱스 맞춤 보고서의 맞춤 측정기준에 표시되지 않습니다.

오류 메시지

경로가 누락된 각 조직/환경 조합에 대해 다시 시작한 후 Edge-postgres-server 시스템 로그에 다음과 같은 오류가 발생합니다.

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

가능한 원인

원인 설명 해당 문제 해결 지침
조직 및 환경 조합에 대한 Jokeeper 속성 경로가 누락되었습니다. JoKeeper 경로 /organizations//environments//properties가 누락되면 맞춤 측정기준을 만들 수 없습니다. Edge Private Cloud 사용자

원인: 조직 및 환경 조합에 대한zooKeeper 속성 경로가 누락되었습니다.

진단

주Keeper 트리의 /organizations//environments//properties를 채우는 분석 API 사용 설정을 통해 조직 환경 조합에 애널리틱스가 사용 설정됩니다. 이 API가 실패하면 Edge-postgres-server 구성요소가 맞춤 측정기준을 만들 수 없으며 system.log에 다음 오류가 표시됩니다.

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

일반적으로 이 문제는 동일한 postgres-server UUID를 사용하는 애널리틱스 그룹이 2개 이상 존재하면서 조직이 온보딩되었을 때 발생합니다. 분석 그룹 수를 확인하려면 다음 API 호출을 실행합니다.

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

이 API에서 여러 그룹을 반환하는 경우 이로 인해 문제가 발생했을 가능성이 높습니다. 다음 예에서는 하이픈으로만 구분된 두 그룹이 존재함을 알 수 있습니다. axgroup-001axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

특히 이 문제는 각 axgroup에 구성된 postgres-server UUID가 동일하면 발생합니다. 이를 확인하는 빠른 방법은 다음을 실행하는 것입니다.

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

다음 샘플 출력은 postgres-server UUID를 빠르게 비교하여 동일한지 확인합니다.

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

해상도

동일한 PostgreSQL 서버 집합을 두 개의 axgroup에 할당할 수 없습니다. 가장 빠른 해결 방법은 하나의 axgroup에서 postgres 서버 정보를 삭제하고 모든 범위 (조직, 환경 조합)를 다른 그룹에 할당하는 것입니다. 이렇게 하려면 다음 단계를 따르세요.

  1. 애널리틱스 그룹에서 분석 구성요소 추가 및 삭제의 안내에 따라 두 axgroup 중 하나에서 postgres 서버 구성요소를 삭제합니다. 비프로덕션 범위에서만 문제가 발생하는 경우 이 연습의 프로덕션 범위가 없는 axgroup을 선택합니다. 그렇지 않은 경우 범위 수가 가장 적은 axgroup을 선택합니다.
  2. 더 이상 postgres 서버가 없는 axgroup의 모든 범위와 맞춤 측정기준 문제가 표시되는 axgroup의 범위를 삭제합니다. 위 예시의 axgroup-001를 사용할 그룹이라고 가정하면 다음을 사용하여 myorg 조직 및 prod 환경의 범위를 삭제해야 합니다.
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. 분석 API 사용 설정을 사용하여 애널리틱스를 사용 설정합니다.
  4. 다음 명령어를 사용하여 postgres 마스터 노드에서 Edge-postgres-server 구성요소를 다시 시작하고, 설치된 모든 Edge-qpid-server 구성요소를 다시 시작합니다.
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. 위의 오류 메시지 섹션에 제공된 오류가 더 이상 Postgres 서버의 로그 파일 /opt/apigee/var/log/edge-postgres-server/logs/system.log에서 발생하지 않는지 확인합니다.
  6. 맞춤 측정기준이 Edge UI에 표시되는지 확인합니다.

문제가 지속되면 진단 정보를 수집해야 함으로 이동하세요.

진단 정보 수집 필수

위 안내를 따른 후에도 문제가 지속되면 다음 진단 정보를 수집하세요. 문의하고 Apigee Edge 지원팀에 공유하세요.

  1. 마지막으로 다시 시작한 시점의 Edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log입니다.
  2. 다음 Management API 호출의 출력:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. 다음 명령어를 사용하여 얻은 JoKeeper 트리의 출력:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt