<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
증상
분석 대시보드 (프록시 실적, 타겟 실적 등)에 아무 것도 표시되지 않음 자세히 알아볼 수 있습니다 모든 대시보드에는 다음 메시지가 표시됩니다.
No traffic in the selected date range
오류 메시지
이 문제로 인해 눈에 띄는 오류가 발생하지는 않습니다.
가능한 원인
다음 표에는 이 문제의 가능한 원인이 나와 있습니다.
원인 | 대상: |
---|---|
조직 환경에 API 트래픽 없음 | 프라이빗 클라우드 사용자를 위한 에지 |
Postgres 데이터베이스에서 데이터를 사용할 수 있지만 다음 위치에 표시되지 않음 UI | 프라이빗 클라우드 사용자를 위한 에지 |
애널리틱스 데이터가 Postgres 데이터베이스로 푸시되지 않음 | 프라이빗 클라우드 사용자를 위한 에지 |
잘못된 애널리틱스 배포 | 프라이빗 클라우드 사용자를 위한 에지 |
오래된 애널리틱스 서버 UUID | 프라이빗 클라우드 사용자를 위한 에지 |
조직 환경에 API 트래픽 없음
진단
- 다음 조직의 특정 조직 환경에 API 프록시에 대한 트래픽이 있는지
다음 중 하나를 사용하여 분석 데이터를 보려는 특정 기간
메서드:
<ph type="x-smartling-placeholder">
- </ph>
- 사용자가 현재 사용 중인 모든 API에 대한 추적을 사용 설정합니다. trace에서 요청을 가져올 수 있는지 확인합니다.
- NGINX 액세스 로그 보기
(
/opt/apigee/var/log/edge-router/nginx/logs/access.log)
를 클릭하여 특정 기간 동안 API 프록시에 대한 새 항목을 만들 수 있습니다. - API 프록시의 정보를 Syslog, Splunk, Loggly, 이러한 경우 로그 서버에 해당 로그 서버에 대한 API 프록시에 대한 항목이 있는지 지정할 수 있습니다.
- 특정 기간 동안 트래픽 (API 요청 없음)이 없으면 분석 데이터가 사용할 수 없습니다. '선택한 기간에 트래픽 없음'이 표시됩니다. 분석 대시보드에서 이 설정을 지정할 수 있습니다.
해상도
- 특정 조직 환경에서 하나 이상의 API 프록시를 호출합니다.
- 몇 초 동안 기다렸다가 시간 탭에서 분석 대시보드를 보고 데이터가 나타납니다.
- 문제가 지속되면 Postgres에서 데이터 사용 가능 여부 데이터베이스는 있지만 UI에는 표시되지 않음.
Postgres 데이터베이스에서 사용할 수 있지만 UI에는 표시되지 않는 데이터
증상
먼저 Postgres 데이터베이스에서 최신 애널리틱스 데이터를 사용할 수 있는지 확인합니다.
Postgres Master에서 최신 애널리틱스 데이터를 사용할 수 있는지 확인 노드:
- 각 Postgres 서버에 로그인하고 다음 명령어를 실행하여
Master Postgres 노드에서 다음을 수행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- 마스터 Postgres 노드에서 PostgreSQL에 로그인합니다.
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- Postgres에서 다음 SQL 쿼리를 사용하여 org-env에 테이블이 있는지 확인합니다.
데이터베이스:
\d analytics."orgname.envname.fact"
- 다음 SQL을 사용하여 Postgres 데이터베이스에서 최신 데이터를 사용할 수 있는지 확인합니다.
검색어:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- 최신 타임스탬프가 매우 오래되었거나 null이면 데이터가 최신 상태가 아님을 나타냅니다. 사용할 수 있습니다 이 문제는 데이터가 Qpid 서버에서 Postgres 데이터베이스로 푸시되지 않습니다. 애널리틱스 데이터가 Postgres 데이터베이스로 푸시되지 않음으로 이동합니다.
- 마스터 노드의 Postgres 데이터베이스에서 최신 데이터를 사용할 수 있는 경우 아래 단계를 따라 데이터가 Edge UI에 표시되지 않는 이유를 진단하세요.
진단
- 개발자 도구를 사용 설정합니다.
을 방문하여 애널리틱스 대시보드 중 하나에서 사용하는 API를
다음 단계를 따르세요.
<ph type="x-smartling-placeholder">
- </ph>
- 개발자 도구에서 네트워크 탭을 선택합니다.
- 녹화를 시작합니다.
- 애널리틱스 대시보드를 새로고침합니다.
- 개발자 도구의 왼쪽 패널에서 'apiproxy?_optimized...'.
- 개발자 도구의 오른쪽 패널에서 '헤더'를 선택합니다. 탭을 열고 'URL 요청'.
- 다음은 개발자 도구의 출력 샘플입니다.
네트워크 탭의 프록시 성능 대시보드에 사용되는 API를 보여주는 샘플 출력 프록시 성능 대시보드를 위한 개발자 도구
- 관리 API 호출을 직접 실행하고 결과가 나왔는지 확인합니다. 샘플 API는 다음과 같습니다.
프록시 실적 대시보드에서 일 탭을 호출하세요.
curl -u username:password "http://management_server_IP_address:8080/v1/organizations/ org_name/environments/env_name/stats/apiproxy?limit=14400& select=sum(message_count),sum(is_error),avg(total_response_time), avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error), avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+ 18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
- 성공 응답이 표시되었지만 데이터가 없으면 네트워크로 인해 관리 서버가 Postgres 서버에서 데이터를 가져올 수 없습니다. 연결 문제가 발생할 수 있습니다.
- 관리 서버에서 Postgres 서버에 연결할 수 있는지 확인합니다.
telnet Postgres_server_IP_address 5432
- Postgres 서버에 연결할 수 없는 경우 방화벽이 있는지 확인하세요. 제한이 있을 수 있습니다
- 방화벽 제한이 있는 경우 관리 서버에 문제가 발생했을 수 있습니다. Postgres 서버에서 데이터를 가져올 수 없습니다.
해상도
- 방화벽 제한이 있는 경우 관리 서버가 Postgres 서버와 통신합니다
- 방화벽 제한이 없다면 네트워크 결함으로 인한 문제일 수 있습니다.
- 관리 서버에 네트워크 결함이 있는 경우 다시 시작하면 문제가 해결될 수도 있습니다. 있습니다.
- 아래 명령어를 사용하여 모든 관리 서버를 하나씩 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Edge UI에서 분석 데이터를 볼 수 있는지 확인합니다.
그래도 데이터가 표시되지 않으면 Apigee Edge 지원팀에 문의하세요.
애널리틱스 데이터가 Postgres 데이터베이스로 푸시되지 않음
진단
Postgres 데이터베이스에서 사용할 수 있지만 UI에는 표시되지 않는 데이터에 따라 Qpid 서버에서 Postgres 데이터베이스로 데이터가 푸시되지 않으면 다음 단계를 따르세요.
- 아래 명령어를 실행하여 각 Qpid 서버가 작동되어 실행 중인지 확인합니다.
/opt/apigee/bin/apigee-service edge-qpid-server status
- Qpid 서버가 다운되면 다시 시작합니다. 그렇지 않으면 5단계로 이동합니다.
/opt/apigee/bin/apigee-service edge-qpid-server restart
- 잠시 기다린 후 Postgres 데이터베이스에 최신 데이터를 사용할 수 있는지 다시 확인합니다.
- PostgreSQL에 로그인합니다.
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 아래 SQL 쿼리를 실행하여 최신 데이터를 사용할 수 있는지 확인합니다.
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- PostgreSQL에 로그인합니다.
- 최신 데이터를 사용할 수 있는 경우 다음 단계를 건너뛰고 해결 방법 섹션. 최신 데이터를 사용할 수 없는 경우 다음을 진행합니다. 학습합니다.
- Qpid 서버 큐의 메시지가 Postgres 데이터베이스로 푸시되고 있는지 확인합니다.
qpid-stat -q command
를 실행하고 msgIn을 확인합니다. msgOut 열 값- 다음은 msgIn 및 msgOut이 같지 않음을 보여주는 샘플 출력입니다. 이는 곧 메시지가 Qpid 서버에서 Postgres 데이터베이스로 푸시되고 있지 않음을 알려 드립니다.
- msgIn 및 msgOut 열이 일치하지 않는 경우 Qpid를 확인합니다.
서버 로그를
/opt/apigee/var/log/edge-qpid-server/system.log
하고 오류가 발생할 수 있습니다 - 다음과 같은 오류 메시지가 표시될 수 있습니다. 'PG is 아직 다운' 또는
'치명적: 죄송합니다. 이미 클라이언트가 너무 많습니다' 오류 메시지가 표시될 수 있습니다.
<ph type="x-smartling-placeholder">
2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: sorry, too many clients already)
</ph>
이 문제는 Postgres 서버에서 너무 많은 SQL 쿼리를 실행 중이거나 CPU 또는 따라서 Qpid 서버에 응답할 수 없습니다.
해상도
- 아래와 같이 Postgres 서버 및 PostgreSQL을 다시 시작합니다.
/opt/apigee/bin/apigee-service edge-postgres-server restart
/opt/apigee/bin/apigee-service apigee-postgresql restart
- 이렇게 다시 시작하면 이전 SQL 쿼리가 모두 중지되고 Postgres 데이터베이스에 대한 연결을 보여줍니다
- 애널리틱스 대시보드를 새로고침하고 애널리틱스 데이터가 표시되는지 확인합니다.
문제가 계속되면 Apigee Edge 지원팀에 문의하세요.
잘못된 애널리틱스 배포
진단
- 다음 API 호출을 사용하여 분석 배포 상태를 가져옵니다.
curl -u user_email:password http://management_server_host:port /v1/organizations/orgname/environments/envname/provisioning/axstatus
- API 호출의 결과에서 Qpid 및 Postgres 서버 상태를 확인합니다.
- Qpid 및 Postgres 서버의 상태가 'SUCCESS'로 표시되면 분석 서버가 제대로 배선됩니다 오래됨으로 진행 애널리틱스 서버 UUID.
- Qpid/Postgres 서버 상태가 'UNKNOWN'으로 표시되는 경우 'FAILURE'일 경우
해당 서버에 문제가 있음을 나타냅니다.
예를 들어 다음 시나리오는 Postgres 서버의 상태를 'UNKNOWN(알 수 없음)':
애널리틱스 온보딩 과정에서 오류가 발생하는 경우 이러한 상황이 발생할 수 있습니다. 이 실패는 관리 서버의 메일이 Postgres 서버에 도달하지 못하도록 합니다.
해상도
이 문제는 일반적으로 'FAILURE' 오류가 표시된 서버를 다시 시작하면 해결할 수 있습니다. 또는 'UNKNOWN'입니다.
- 분석 배선 상태가 'FAILURE'로 표시된 각 서버를 다시 시작합니다. 또는 'UNKNOWN'
사용하여 다음 명령어를 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service component restart
- 예를 들면 다음과 같습니다.
<ph type="x-smartling-placeholder">
- </ph>
- Qpid 서버에 문제가 발생하면 Qpid 서버를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Postgres 서버에서 문제가 발생하면 마스터와 슬레이브를 모두 다시 시작하세요.
Postgres 서버 노드:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Qpid 서버에 문제가 발생하면 Qpid 서버를 다시 시작합니다.
- 위의 예에서 'UNKNOWN'은 Postgres 서버에 대해 표시되므로
마스터 및 슬레이브 Postgres 서버를 모두 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
비활성 애널리틱스 서버 UUID
진단
- 다음 API 호출을 사용하여 애널리틱스 구성을 가져옵니다.
curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
다음은 위 API의 샘플 출력입니다.
[ { "name" : "axgroup001", "properties" : { "consumer-type" : "ax" }, "scopes" : [ "myorg~prod", "myorg~test" ], "uuids" : { "aries-datastore" : [ ], "postgres-server" : [ "6777...2db14" ], "dw-server" : [ ], "qpid-server" : [ "774e...fb23", "29f3...8c11" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "774e...8c11" ], "datastores" : [ "6777...db14" ], "properties" : { } } ], "data-processors" : { } } ]
- 출력의 다음 정보가 올바른지 확인합니다.
<ph type="x-smartling-placeholder">
- </ph>
- '범위'에 나열된 org-env 이름 요소가 포함됩니다.
- Postgres 서버 및 Qpid 서버의 UUID
- 다음 명령어를 실행하여 Postgres 서버 UUID를 가져옵니다.
Postgres 서버 노드:
curl 0:8084/v1/servers/self/uuid
- 각 Qpid에서 다음 명령어를 실행하여 Qpid 서버 UUID를 가져옵니다.
서버 노드:
curl 0:8083/v1/servers/self/uuid
- 다음 명령어를 실행하여 Postgres 서버 UUID를 가져옵니다.
Postgres 서버 노드:
- 모든 정보가 정확하다면 애널리틱스 데이터 Postgres 데이터베이스에 푸시되지 않습니다.
- Postgres 또는 Qpid 서버의 UUID가 잘못된 경우 관리 서버가 비활성 UUID를 참조합니다.
해상도
비활성 UUID를 삭제하고 서버의 올바른 UUID를 추가하려면 Apigee Edge 지원팀에 문의하세요.