Edge for Private Cloud 4.18.01
所有 Edge for Private Cloud 客戶都必須向 Apigee 提交 API Proxy 流量統計資料。Apigee 建議客戶每天上傳該資訊一次, 建立 Cron 工作。
您必須提交實際工作環境 API 部署的資料,但不適用於開發中的 API 或測試部署作業在大多數 Edge 安裝作業中,您會為實際工作環境 API 定義特定機構或環境。您提交的資料僅適用於這些正式機構和環境。
為協助您上傳這類資料,Apigee 提供 apigee-analytics-collector 指令列公用程式的 Beta 版。這個公用程式會將 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 Management Server 上的 Edge Management API。您可以安裝 管理伺服器、Edge 安裝的另一個節點上 節點,前提是該節點可以向 Management Server 提出 API 要求。
網際網路連線 相關規定
在可存取外部網際網路的機器上安裝 apigee-analytics-collector 公用程式。接著,apigee-analytics-collector 公用程式就能將資料直接上傳至 Apigee。
如果沒有節點同時具備 Edge Management Server 上的 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
執行 apige-analytics-collector
本節說明如何執行 apigee-analytics-collector 公用程式。
設定使用者以執行 apigee-analytics-collector
您必須以非 root 使用者的身分執行 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 的基本網址。這個網址的格式通常是:
http://ms_IP:8080/v1
其中 ms_IP 是 IP 位址或您的管理伺服器,而 8080 是 以及 Edge API 使用的通訊埠如果您為 Edge API 建立了 DNS 項目,則該網址位於 相關表單如下:
http://ms_DNS/v1
如果您在 Edge Management API 上啟用 TLS,這個 API 的格式為:
https://ms_IP:8080/v1
https://ms_DNS/v1 - apigee_mgmt_api_email:有權存取 Edge /stats API 的帳戶電子郵件地址。這通常 會是 Edge 系統管理員的電子郵件,或機構管理員的電子郵件地址 適合生產環境使用
- apigee_mgmt_api_password:指定的帳戶的 Edge 密碼, apigee_mgmt_api_email.
- 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 Proxy以下範例使用 -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, --dimension <dimension> |
要收集的流量維度。有效的維度:apiproducts、devs、apps、apiproxy (預設) |
-d, --days <days> |
自目前日期算起的過去天數,代表要收集的資料天數。預設值為 3。 如果您指定 -d,請勿同時指定 -s 和 -z 來設定時間範圍。 |
-m、--apigee_mgmt_api_uri <apigee_mgmt_api_uri> |
Edge 管理 API 的網址。 |
-u, --apigee_mgmt_api_email <apigee_mgmt_api_email> |
可存取 Edge /stats API 的帳戶電子郵件地址。這通常是 Edge 系統管理員的電子郵件,或是貴機構管理員的電子郵件地址 保護生產環境 |
-p、--apigee_mgmt_api_password <apigee_mgmt_api_password> |
與 -u 指定的 Edge 管理 API 電子郵件帳戶相關聯的密碼。 |
-i、--include_orgs <items> |
以半形逗號分隔的機構清單,用於輸出內容。 |
-x, --exclude_orgs <items> |
要從輸出內容中排除的機構清單 (以半形逗號分隔)。 |
-n、--include_envs <items> |
要包含在輸出內容中的環境清單 (以半形逗號分隔)。 |
-e, --exclude_envs <items> |
以半形逗號分隔的清單,列出要從輸出內容中納入的環境。 |
-o、--output <path> |
輸出內容的路徑和檔案名稱。 |
-s、--time_range_start <time_range_start> |
查詢流量統計資料的起始時間範圍,格式為:「03/01/2016 00:00」。 如果您指定 -d,則請勿同時指定 -s 和 -z 來設定時間範圍。 |
-z, --time_range_end <time_range_end> |
查詢流量統計資料的時間範圍結束,格式為:「04/01/2016 24:00」。 如果您指定 -d,則請勿同時指定 -s 和 -z 來設定時間範圍。 |
-t, --time_unit <time_unit> |
流量資料的時間單位。預設週。預設單位為小時。有效的時間單位: 秒、分鐘、小時、天、週。 |
-S、--standard_output |
將輸出內容寫入終端機 (stdout),而不是上傳至 Apigee。 |
-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/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 的帳戶。
- <ms_IP> 是 Edge 管理伺服器的 IP 位址或 DNS 名稱。
- {org_name} 和 {org_name} 會指定 機構和環境
- apiproxy 是將指標依 API Proxy 分組的維度。
- MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour 會指定要收集的指標時間範圍,並將其劃分為時間單位。請注意,cURL 指令會使用十六進位程式碼
%20
來表示時間範圍中的空格。
舉例來說,如要收集 24 小時內每小時的 API Proxy 訊息數量,請使用 正在追蹤 Management API 呼叫:timeRange 包含網址編碼字元。
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" ] } }
接著,請使用下列 cURL 指令,從可存取網際網路的電腦將資料上傳至 Apigee:
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 指令的結果; 您所使用的統計資料