Private Cloud용 Edge v. 4.17.09
모든 프라이빗 클라우드용 Edge 고객은 API 프록시 트래픽에 대한 통계를 Apigee에 제출해야 합니다. Apigee는 고객이 크론 작업을 만들어 하루에 한 번 해당 정보를 업로드하는 것이 좋습니다.
프로덕션 API 배포의 데이터는 제출해야 하지만 개발 또는 테스트 배포의 API는 제출하지 않아도 됩니다. 대부분의 Edge 설치에서는 프로덕션 API의 특정 조직 또는 환경을 정의합니다. 제출하는 데이터는 이러한 프로덕션 조직 및 환경에만 적용됩니다.
이 데이터를 업로드하는 데 도움이 되도록 Apigee에서는 apigee-analytics-collector 명령줄 유틸리티의 베타 버전을 제공합니다. 이 유틸리티는 API 호출량 보고서를 Apigee로 다시 전송합니다. 프라이빗 클라우드 설치의 모든 Edge는 이 유틸리티를 사용하여 트래픽 데이터를 가져와 Apigee에 보고할 수 있습니다.
apigee-analytics-collector에서 업로드한 데이터에 액세스
apigee-analytics-collector 유틸리티로 데이터를 업로드한 후 Apigee 360에서 확인할 수 있습니다.
데이터를 보려면 Apigee 360에 로그인한 다음 사용량 옵션을 선택합니다. 사용량 페이지에는 각 또는 Edge 조직의 사용량 그래프와 사용량 데이터 표가 표시됩니다.
apigee-analytics-collector 설치
apigee-analytics-collector 유틸리티는 apigee-service 유틸리티를 사용하여 설치하는 RPM입니다.
설치 위치
Apigee-analytics-collector 유틸리티를 설치하는 노드는 Edge 관리 서버에서 Edge 관리 API에 액세스할 수 있는 노드이면 무엇이든 가능합니다. 노드가 관리 서버에 API 요청을 할 수 있는 한 관리 서버, Edge 설치의 다른 노드 또는 별도의 노드에 직접 설치할 수 있습니다.
인터넷 액세스 요구사항
외부 인터넷에 액세스할 수 있는 머신에 apigee-analytics-collector 유틸리티를 설치합니다. 그러면 apigee-analytics-collector 유틸리티가 데이터를 Apigee에 직접 업로드할 수 있습니다.
Edge 관리 서버의 Edge 관리 API에 대한 액세스 권한과 외부 인터넷 액세스가 모두 있는 노드가 없는 경우 Edge 관리 API를 사용하여 트래픽 데이터를 로컬에 저장할 수 있습니다. 그런 다음 Apigee에 업로드할 수 있도록 인터넷에 액세스할 수 있는 머신으로 데이터를 전송해야 합니다. 이 시나리오에서는 apigee-analytics-collector 유틸리티를 사용할 필요가 없습니다. 자세한 내용은 아래의 Apigee에 데이터 수동 업로드를 참고하세요.
설치
다음 명령어를 사용하여 apigee-analytics-collector 유틸리티를 설치합니다. RPM 파일을 설치하므로 루트 사용자 또는 전체 sudo 액세스 권한이 있는 사용자가 이 명령어를 실행해야 합니다. 전체 sudo 액세스를 하려면 사용자에게 루트와 동일한 작업을 수행할 수 있는 sudo 액세스 권한이 있어야 합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install
apigee-analytics-collector 실행
이 섹션에서는 apigee-analytics-collector 유틸리티를 실행하는 방법을 설명합니다.
apigee-analytics-collector를 실행하도록 사용자 구성
apigee-analytics-collector를 루트가 아닌 사용자로 실행해야 합니다. 이 사용자에게는 'apigee' 사용자에 대한 전체 sudo 액세스 권한이 있어야 합니다.
사용자가 'apigee' 사용자에 대한 전체 sudo 액세스 권한을 갖도록 구성하려면 'visudo' 명령어를 사용하여 sudoers 파일을 수정하여 다음을 추가합니다.
analyticsUser ALL=(apigee) NOPASSWD: ALL
여기서 analyticsUser는 apigee-analytics-collector 유틸리티를 실행하는 사용자의 사용자 이름입니다.
apigee-analytics-collector 유틸리티를 설치하고 사용자를 구성한 후 apigee-analytics-collector 유틸리티의 도움말 명령어를 실행하여 유틸리티를 테스트할 수 있습니다.
> /opt/apigee/apigee-service/bin/ apigee-service apigee-analytics-collector export traffic --help
apigee-analytics-collector를 실행하는 데 필요한 정보
apigee-analytics-collector 명령어를 실행하고 데이터를 Apigee로 전달하려면 다음 정보가 필요합니다.
- apigee_mgmt_api_uri: 관리 서버의 Edge API 기본 URL입니다. 이 URL은 일반적으로 다음과 같은 형식입니다.
http://ms_IP:8080/v1
여기서 ms_IP는 IP 주소 또는 관리 서버이며 8080은 Edge API에서 사용하는 포트입니다. Edge API의 DNS 항목을 만든 경우 URL 형식은 다음과 같습니다.
http://ms_DNS/v1
Edge 관리 API에서 TLS를 사용 설정하면 URL 형식은 다음과 같습니다.
https://ms_IP:8080/v1
https://ms_DNS/v1 - apigee_mgmt_api_email: Edge /stats API에 액세스할 수 있는 계정의 이메일 주소입니다. Edge 시스템 관리자의 이메일 또는 프로덕션 조직의 조직 관리자 이메일을 사용하는 경우가 많습니다.
- apigee_mgmt_api_password: apigee_mgmt_api_email로 지정된 계정의 Edge 비밀번호입니다.
- apigee_analytics_client_id 및 apigee_analytics_secret: Apigee에 데이터를 업로드하기 위한 사용자 인증 정보입니다. Apigee 지원팀에 티켓을 제출하여 apigee_analytics_client_id 및 apigee_analytics_secret을 받으세요.
명령어 예시
다음은 Edge 설치에서 모든 조직 및 환경의 트래픽 데이터를 검색하고 해당 데이터를 Apigee에 업로드하는 명령어의 예시입니다. apigee-service를 사용하여 apigee-analytics-collector 명령어를 실행하는 방법을 확인합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
명령어에는 apigee_analytics_client_id 및 apigee_analytics_secret과 같은 모든 필수 정보가 포함되어 있습니다.
다음과 같은 형식의 결과가 표시됩니다.
[ { "org": "myOrg", "env": "prod", "time_range_start": "08/27/2016 00:00", "time_range_end": "08/30/2016 00:00", "response": [ { "store_org_env_metrics_hourly_v4": 1 } ] }, { "org": "VALIDATE", "env": "test", "time_range_start": "08/27/2016 00:00", "time_range_end": "08/30/2016 00:00", "response": [ { "store_org_env_metrics_hourly_v4": 1 } ] } ]
명령어에 명령줄 옵션을 사용하여 작업을 제어합니다. 생성된 데이터에 포함할 조직 및 환경을 지정하려면 다음 옵션을 사용하세요.
- -i, --include_orgs <쉼표로 구분된 항목 목록>
- -x, --exclude_orgs <쉼표로 구분된 항목 목록>
- -n, --include_envs <항목의 쉼표로 구분된 목록>
- -e, --exclude_envs <항목의 쉼표로 구분된 목록>
예를 들어 프로덕션 조직 및 환경만 지정하려면 -i (또는 --include_orgs) 및 -n (또는 --include_envs) 옵션을 사용합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
이 예에서는 myOrg의 프로덕션 환경에서만 데이터를 수집합니다.
Apigee로 전송하기 전에 데이터를 화면에 덤프하여 검사하려면 -S 옵션을 사용하세요.
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
-S 옵션은 Apigee에 대한 데이터 업로드를 생략합니다. 그런 다음 -S 옵션 없이 명령어를 다시 실행하여 데이터를 Apigee로 전송할 수 있습니다.
-S 옵션을 사용하는 한 가지 이유는 로컬에서 다양한 유형의 데이터를 표시할 수 있기 때문입니다. Apigee에서는 API 트래픽 데이터만 업로드하면 되지만 -D 옵션을 사용하면 API 제품, 개발자, 앱 또는 API 프록시에 관한 데이터를 표시할 수 있습니다. 아래 예에서는 -D 및 -S 옵션을 사용하여 개발자 데이터를 로컬에 표시합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
상세 출력을 얻으려면 -v 옵션을 포함하고, apigee-analytics-collector에서 생성된 curl 명령어를 보려면 -R 옵션을 포함하세요.
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
다음 섹션에는 명령줄 옵션의 전체 목록이 포함되어 있습니다.
명령어 매개변수
다음 표에는 apigee-analytics-collector 유틸리티의 전체 옵션이 나와 있습니다.
명령어 |
용도 |
---|---|
-h, --help |
사용량 정보 출력 |
-D, --dimension <dimension> |
수집할 트래픽 측정기준입니다. 유효한 측정기준: apiproducts, devs, apps, apiproxy (기본값) |
-d, --days <일> |
현재 날짜부터 수집할 데이터의 지난 일수입니다. 기본값은 3입니다. -d를 지정하는 경우 -s 및 -z도 지정하여 시간 범위를 설정하지 마세요. |
-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri> |
Edge 관리 API의 URL입니다. |
-u, --apigee_mgmt_api_email <apigee_mgmt_api_email> |
Edge /stats API에 액세스할 수 있는 계정의 이메일 주소입니다. Edge 시스템 관리자의 이메일 또는 프로덕션 조직의 조직 관리자 이메일을 사용하는 경우가 많습니다. |
-p, --apigee_mgmt_api_password <apigee_mgmt_api_password> |
-u로 지정된 Edge Management API 이메일 계정에 연결된 비밀번호입니다. |
-i, --include_orgs <items> |
출력에 포함할 조직의 목록(쉼표로 구분)입니다. |
-x, --exclude_orgs <items> |
출력에서 제외할 조직의 쉼표로 구분된 목록입니다. |
-n, --include_envs <items> |
출력에 포함할 환경의 쉼표로 구분된 목록입니다. |
-e, --excluded_envs <items> |
출력에 포함할 환경의 쉼표로 구분된 목록입니다. |
-o, --output <path> |
출력을 저장할 경로 및 파일 이름입니다. |
-s, --time_range_start <time_range_start> |
트래픽 통계 쿼리를 시작할 기간입니다(예: '2016년 3월 1일 00:00'). -d를 지정하는 경우 시간 범위를 설정하기 위해 -s 및 -z도 지정하지 마세요. |
-z, --time_range_end <시간_범위_종료> |
트래픽 통계를 쿼리하기 위한 시간 범위의 종료 시간입니다(예: '2016년 4월 1일 24:00'). -d를 지정하는 경우 시간 범위를 설정하기 위해 -s 및 -z도 지정하지 마세요. |
-t, --time_unit <time_unit> |
트래픽 데이터의 시간 단위입니다. 기본 주입니다. 시간당 기본 단위입니다. 유효한 시간 단위: 초, 분, 시간, 일, 주 |
-S, --standard_output |
출력을 Apigee에 업로드하는 대신 터미널 (stdout)에 씁니다. |
-c, --apigee_analytics_client_id <apigee_analytics_client_id> |
Apigee에 데이터를 업로드할 ID입니다. 받으려면 Apigee 지원에 티켓을 제출하세요. |
-r, --apigee_analytics_secret <apigee_analytics_secret> |
Apigee에 데이터를 업로드하기 위한 보안 비밀입니다. Apigee 지원팀에 티켓을 제출하여 받으세요. |
-R, --include_curl_commands |
생성된 cURL 명령어를 디버깅을 위해 출력에 포함합니다. |
-v, --verbose |
상세 출력을 표시합니다. |
Apigee에 데이터 수동 업로드
Apigee에서는 외부 인터넷 액세스 권한이 있는 머신에 apigee-analytics-collector 유틸리티를 설치하는 것이 좋습니다. 그러면 apigee-analytics-collector 유틸리티가 데이터를 Apigee에 직접 업로드할 수 있습니다.
하지만 머신에 외부 인터넷 액세스 권한이 없는 경우 Edge 관리 API를 사용하여 트래픽 데이터를 수집한 후 cURL 명령어를 사용하여 인터넷에 액세스할 수 있는 머신에서 Apigee에 업로드합니다. Edge 설치의 모든 프로덕션 조직 및 환경에 대해 이 프로세스를 반복해야 합니다.
다음 cURL 명령어를 사용하여 지정된 시간 간격 동안 특정 조직 및 환경의 트래픽 데이터를 수집합니다.
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://<ms_IP>:8080/v1/organizations/{org_name}/environments/{env_name}/stats/?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM"
이 명령어는 Edge Get API 메시지 수 API를 사용합니다. 이 명령어에서
- apigee_mgmt_api_email:apigee_mgmt_api_password는 Edge /stats API에 액세스할 수 있는 계정의 이메일 주소를 지정합니다.
- <ms_IP>는 Edge 관리 서버의 IP 주소 또는 DNS 이름입니다.
- {org_name} 및 {env_name}은 조직 및 환경을 지정합니다.
- MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM은 수집할 통계의 기간을 지정합니다. cURL 명령어는 기간의 공백에 16진수 코드 %20을 사용합니다.
예를 들어 24시간 동안의 통계를 수집하려면 다음 명령어를 사용합니다.
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/?select=sum(message_count)&timeRange=08/29/2016%2000:00~08/30/2016%2000:00"
다음과 같은 형식의 응답이 표시됩니다.
{ "environments" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ "42.0" ] } ], "name" : "prod" } ], "metaData" : { "errors" : [ ], "notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ] } }
그런 다음 인터넷에 액세스할 수 있는 머신에서 Apigee에 데이터를 업로드하려면 다음 cURL 명령어를 사용합니다.
curl -X POST -H 'Content-Type:application/json' \ -u apigee_analytics_client_id:apigee_analytics_secret \ https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/{org_name}/apis -d '{"environments"...}'
각 항목의 의미는 다음과 같습니다.
- apigee_analytics_client_id:apigee_analytics_secret 지정: Apigee 지원팀에서 가져온 Apigee에 데이터를 업로드하기 위한 사용자 인증 정보를 지정합니다.
- {org_name}은 조직을 지정합니다.
- {"environments"...}에는 위에서 통계를 수집하는 데 사용한 cURL 명령어의 결과가 포함됩니다.