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