Apigee Edge 문서를 보고 계십니다.
Go to the
Apigee X 문서로 이동합니다. info
증상
통계 수집기 정책을 사용하여 만든 커스텀 변수가 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
가능한 원인
| 원인 | 설명 | 다음에 관한 문제 해결 안내 |
|---|---|---|
| 조직 및 환경 조합에 Zookeeper 속성 경로가 누락되었습니다. | ZooKeeper 경로 /organizations/
가 누락된 경우 커스텀 측정기준을 만들 수 없습니다. |
Edge Private Cloud 사용자 |
원인: 조직 및 환경 조합에 ZooKeeper 속성 경로가 누락되었습니다.
진단
애널리틱스는
Enable analytics API를 통해 조직-환경 조합에 사용 설정되며, 이 API는 /organizations/
를 ZooKeeper 트리에 채웁니다. 이 API가 실패하면 edge-postgres-server 구성요소가 커스텀 측정기준을 만들 수 없으며 시스템 로그에 다음 오류가 표시됩니다.
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를 사용하는 애널리틱스 그룹이 두 개 이상 있을 때 조직이 온보딩된 경우에 발생합니다. 애널리틱스 그룹이 몇 개 있는지 확인하려면 다음 API 호출을 실행하세요.
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
이 API가 여러 그룹을 반환하면 문제의 원인일 가능성이 높습니다. 다음 예에서는 하이픈으로만 구분되는 두 그룹(axgroup-001 및 axgroup001)이 있습니다.
[ {
"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 서버 집합을 두 개의 axgroups 에 할당할 수 없습니다. 가장 빠른 해결 방법은 한 axgroup에서 postgres 서버 정보를 삭제하고 모든 범위 (조직, 환경 조합)를 다른 그룹에 할당하는 것입니다. 이렇게 하려면 다음 단계를 따르세요.
- 애널리틱스 그룹에서 애널리틱스 구성요소 추가 및 삭제의 안내에 따라 두 axgroup 중 하나에서 postgres 서버 구성요소를 삭제합니다. 비프로덕션 범위에서만 문제가 발생하는 경우 이 연습에 프로덕션 범위가 없는 axgroup을 선택합니다. 그렇지 않으면 범위 수가 가장 적은 axgroup을 선택합니다.
- 더 이상 postgres 서버가 없는 axgroup과 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'
- Enable analytics API를 사용하여 애널리틱스를 사용 설정합니다.
- 다음 명령어를 사용하여 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
- 위의 오류 메시지 섹션에 제공된 오류가 더 이상 Postgres 서버의 로그 파일
/opt/apigee/var/log/edge-postgres-server/logs/system.log에 발생하지 않는지 확인합니다. - 커스텀 측정기준이 Edge UI에 표시되는지 확인합니다.
문제가 계속되면 진단 정보를 수집해야 함으로 이동합니다.
진단 정보 수집 필요
이전 안내를 따른 후에도 문제가 계속되면 다음 진단 정보를 수집하세요. Apigee Edge 지원팀에 문의하고 공유하세요.
- 최근 다시 시작한 시간의 edge-postgres-server
/opt/apigee/var/log/edge-postgres-server/logs/system.log입니다. - 다음 Management API 호출의 출력입니다.
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- 다음 명령어를 사용하여 가져온 ZooKeeper 트리의 출력입니다.
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt