Apigee에 API 트래픽 데이터 업로드 - 베타 출시

Private Cloud용 Edge v. 4.17.05

모든 프라이빗 클라우드용 Edge 고객은 API에 대한 통계를 Apigee에 제출해야 합니다. 사용할 수 있습니다 Apigee는 이러한 정보를 하루에 한 번(가능한 경우 1회 업로드) 업로드할 것을 권장합니다. 크론 작업을 만듭니다

개발 중인 API가 아닌 프로덕션 API 배포를 위한 데이터를 제출해야 합니다. 배포 테스트 등이 있습니다 대부분의 Edge 설치에서는 특정 조직이나 프로덕션 API를 위한 환경을 제공합니다 제출한 데이터는 해당 프로덕션 전용입니다. 살펴봤습니다

이러한 데이터의 업로드를 지원하기 위해 Apigee는 apigee-analytics-collector 명령줄의 베타 출시 버전을 제공합니다. 유틸리티입니다 이 유틸리티는 API 호출량 보고서를 다시 Apigee로 전송합니다. 모든 엣지 프라이빗 클라우드 설치는 이 유틸리티를 사용하여 Apigee를 사용하세요

업로드된 데이터에 액세스 apigee-analytics-collector

apigee-analytics-collector 유틸리티로 데이터를 업로드하면 Apigee 360에서 확인할 수 있습니다

데이터를 보려면 Apigee 360에 로그인한 다음 사용량 옵션을 선택하세요. 이 사용량 페이지에는 각 또는 특정 주제별로 사용량 그래프와 사용량 데이터 표가 에지 조직

apigee-analytics-collector 설치

apigee-analytics-collector 유틸리티는 apigee-service 유틸리티를 사용하여 설치하는 RPM입니다.

설치 위치

apigee-analytics-collector 유틸리티를 설치하는 노드는 임의의 노드일 수 있습니다. 에지 관리 서버에서 에지 관리 API에 액세스할 수 있는 노드입니다. Cloud SDK를 설치하면 관리 서버에서 직접, Edge 설치의 다른 노드 또는 별도의 해당 노드가 관리 서버에 API 요청을 할 수 있는 한 해당 노드가 API를 요청할 수 있어야 합니다.

인터넷 액세스 요구사항

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

여기서 analyticsUserapigee-analytics-collector 유틸리티가 제공됩니다

apigee-analytics-collector 유틸리티를 설치한 후 사용자를 구성하는 경우, 유틸리티에 대한 help 명령어를 실행하여 유틸리티를 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를 사용 설정하면 다음과 같은 형식이 됩니다.
    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.
  • apigee_analytics_client_idapigee_analytics_secret: Apigee에 데이터를 업로드하기 위한 사용자 인증 정보입니다. 얻으려면 Apigee 지원에 티켓을 제출하세요. apigee_analytics_client_idapigee_analytics_secret

명령어 예시

다음은 모든 조직 및 조직의 트래픽 데이터를 검색하는 명령어 예입니다. 환경을 만들고 해당 데이터를 Apigee에 업로드합니다. GCP Console에서 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_idapigee_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, --제외_orgs <쉼표로 구분된 항목 목록>
  • -n, --include_envs <쉼표로 구분된 항목 목록>
  • -e, --excluded_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

이 예시에서는 Google Cloud의 프로덕션 환경에서 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 옵션을 포함하여 상세 출력, -R 옵션 를 클릭하여 apigee-analytics-collector에서 생성된 curl 명령어를 확인합니다.

 >  /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, --차원 &lt;dimension&gt;

수집할 트래픽 측정기준입니다. 유효한 측정기준: apiproducts, devs, apps, apiproxy (기본값)

-d, --일 <days>

현재 날짜부터 수집할 데이터의 지난 일수입니다. 이 기본값은 3입니다.

-d를 지정하는 경우 -s-z: 시간 설정 범위입니다.

-m, --apigee_mgmt_api_uri &lt;apigee_mgmt_api_uri&gt;

Edge 관리 API의 URL입니다.

-u, --apigee_mgmt_api_email &lt;apigee_mgmt_api_email&gt;

Edge /stats API에 액세스할 수 있는 계정의 이메일 주소입니다. 많은 경우 이것이 에지 시스템 관리자의 이메일 또는 도움이 될 수 있습니다

-p, --apigee_mgmt_api_password &lt;apigee_mgmt_api_password&gt;

-u로 지정된 Edge 관리 API 이메일 계정에 연결된 비밀번호입니다.

-i, --include_orgs &lt;items&gt;

출력에 포함할 조직의 목록(쉼표로 구분)입니다.

-x, --excluded_orgs &lt;items&gt;

출력에서 제외할 조직의 목록(쉼표로 구분)입니다.

-n, --include_envs &lt;items&gt;

출력에 포함할 환경 목록(쉼표로 구분)입니다.

-e, --excluded_envs &lt;items&gt;

출력에서 포함할 환경 목록(쉼표로 구분)입니다.

-o, --output <path>

출력을 저장할 경로 및 파일 이름입니다.

-초, --시간_범위_시작 &lt;time_range_start&gt;

'03/01/2016 00:00' 형식으로 트래픽 통계 쿼리를 시작할 시간 범위입니다.

-d를 지정하는 경우 시간 범위를 설정하는 데 -s와 -z도 지정하지 마세요.

-z, --time_range_end &lt;time_range_end&gt;

트래픽 통계 쿼리의 시간 범위 종료(형식: '04/01/2016 24:00')입니다.

-d를 지정하는 경우 시간 범위를 설정하는 데 -s와 -z도 지정하지 마세요.

-t, --time_unit &lt;time_unit&gt;

교통정보 데이터의 시간 단위입니다. 기본 주입니다. 시간별 기본 단위입니다. 유효한 시간 단위: 초, 분, 시간, 일, 주

-S, --standard_output

출력을 Apigee에 업로드하는 대신 터미널 (stdout)에 씁니다.

-c, --apigee_analytics_client_id &lt;apigee_analytics_client_id&gt;

Apigee에 데이터를 업로드할 때 사용하는 ID입니다. Apigee 지원에 티켓을 제출하여 다음을 수행하세요. 얻을 수 있습니다.

-r, --apigee_analytics_secret &lt;apigee_analytics_secret&gt;

Apigee에 데이터를 업로드하기 위한 보안 비밀입니다. Apigee 지원에 티켓을 제출하여 다음을 수행하세요. 얻을 수 있습니다.

-R, --include_curl_commands

생성된 cURL 명령어를 디버깅을 위해 출력에 포함합니다.

-v, --verbose

상세 출력을 표시합니다.

수동으로 Apigee에 데이터 업로드

Apigee에서는 apigee-analytics-collector 유틸리티를 가상 머신을 연결할 수 있습니다 그러면 apigee-analytics-collector 유틸리티에서 이 유틸리티를 데이터를 직접 Apigee에 제공합니다

하지만 머신에 외부 인터넷 액세스가 없으면 Edge 관리 API를 사용하여 트래픽 데이터를 수집한 다음 cURL 명령어를 사용하여 인터넷 액세스가 필요할 때입니다 모든 제작 조직에 대해 이 과정을 반복해야 하며 환경 변수를 설정할 수 있습니다

다음 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/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"

이 명령어는 Edge Get API 메시지 수 API를 사용합니다. 이 명령어에서

  • apigee_mgmt_api_email:apigee_mgmt_api_password Edge /stats API에 대한 액세스 권한이 있는 계정의 이메일 주소
  • &lt;ms_IP&gt;는 에지의 IP 주소 또는 DNS 이름입니다. 관리 서버.
  • {org_name}{org_name}는 조직 및 환경에 따라 다릅니다
  • apiproxy는 API 프록시별로 측정항목을 그룹화하는 크기입니다.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&amp;timeUnit=hour는 기간을 수집할 측정항목의 시간 단위로 나눈 값입니다. cURL 명령어는 시간 범위의 공간에 16진수 코드 %20을 사용합니다.

예를 들어 24시간 동안 API 프록시 메시지 수를 시간별로 수집하려면 님의 소식을 받는 중 관리 API 호출에 포함되어 있습니다. timeRange에는 URL로 인코딩된 문자가 포함됩니다.

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00"

다음과 같은 형식의 응답이 표시됩니다.

{
  "environments" : [ {
    "metrics" : [ {
      "name" : "sum(message_count)",
      "values": [
                {
                  "timestamp": 1514847600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514844000000,
                  "value": "19.0"
                },
                {
                  "timestamp": 1514840400000,
                  "value": "58.0"
                },
                {
                  "timestamp": 1514836800000,
                  "value": "28.0"
                },
                {
                  "timestamp": 1514833200000,
                  "value": "29.0"
                },
                {
                  "timestamp": 1514829600000,
                  "value": "33.0"
                },
                {
                  "timestamp": 1514826000000,
                  "value": "26.0"
                },
                {
                  "timestamp": 1514822400000,
                  "value": "57.0"
                },
                {
                  "timestamp": 1514818800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514815200000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514811600000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514808000000,
                  "value": "66.0"
                },
                {
                  "timestamp": 1514804400000,
                  "value": "50.0"
                },
                {
                  "timestamp": 1514800800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514797200000,
                  "value": "49.0"
                },
                {
                  "timestamp": 1514793600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514790000000,
                  "value": "89.0"
                },
                {
                  "timestamp": 1514786400000,
                  "value": "42.0"
                },
                {
                  "timestamp": 1514782800000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514779200000,
                  "value": "21.0"
                },
                {
                  "timestamp": 1514775600000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514772000000,
                  "value": "20.0"
                },
                {
                  "timestamp": 1514768400000,
                  "value": "12.0"
                },
                {
                  "timestamp": 1514764800000,
                  "value": "7.0"
                }
              ]
            }
          ],
          "name" : "proxy1"
  } ],
  "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"...}에는 정보를 볼 수 있습니다.