Tải dữ liệu lưu lượng truy cập API lên Apigee – Bản phát hành beta

Edge cho đám mây riêng tư phiên bản 4.18.01

Tất cả khách hàng của Edge for Private Cloud đều phải gửi cho Apigee số liệu thống kê về lưu lượng truy cập của proxy API. Apigee đề xuất khách hàng tải thông tin đó lên mỗi ngày một lần, có thể bằng cách tạo một dịch vụ chạy ngầm theo thời gian định trước.

Bạn phải gửi dữ liệu cho các bản triển khai API chính thức, nhưng không cần gửi cho các bản triển khai API đang phát triển hoặc thử nghiệm. Trong hầu hết các bản cài đặt Edge, bạn sẽ xác định các tổ chức hoặc môi trường cụ thể cho các API chính thức của mình. Dữ liệu bạn gửi chỉ dành cho các tổ chức và môi trường phát hành chính thức đó.

Để hỗ trợ tải dữ liệu này lên, Apigee cung cấp bản phát hành thử nghiệm của tiện ích dòng lệnh apigee-analytics-collector. Tiện ích này sẽ gửi báo cáo về số lượng lệnh gọi API cho Apigee. Mọi bản cài đặt Edge cho đám mây riêng tư đều có thể sử dụng tiện ích này để truy xuất và báo cáo dữ liệu lưu lượng truy cập cho Apigee.

Truy cập vào dữ liệu do apigee-analytics-collector tải lên

Sau khi tải dữ liệu lên bằng tiện ích apigee-analytics-collector, bạn có thể xem dữ liệu đó trong Apigee 360.

Để xem dữ liệu, hãy đăng nhập vào Apigee 360 rồi chọn mục Mức sử dụng. Trang Usage (Mức sử dụng) cho thấy biểu đồ mức sử dụng và bảng dữ liệu mức sử dụng cho từng tổ chức Edge của bạn.

Đang cài đặt apigee-analytics-collector

Tiện ích apigee-analytics-collector là một RPM mà bạn cài đặt bằng tiện ích apigee-service.

Vị trí lắp đặt

Nút mà bạn cài đặt tiện ích apigee-analytics-collector có thể là bất kỳ nút nào có thể truy cập vào API quản lý Edge trên Máy chủ quản lý Edge. Bạn có thể cài đặt trực tiếp trên Máy chủ quản lý, trên một nút khác của bản cài đặt Edge hoặc trên một nút riêng biệt, miễn là nút đó có thể gửi yêu cầu API đến Máy chủ quản lý.

Yêu cầu về quyền truy cập Internet

Cài đặt tiện ích apigee-analytics-collector trên một máy có quyền truy cập Internet bên ngoài. Sau đó, tiện ích apigee-analytics-collector có thể tải dữ liệu trực tiếp lên Apigee.

Nếu không có nút nào có cả quyền truy cập vào API quản lý Edge trên Máy chủ quản lý Edge và có quyền truy cập Internet bên ngoài, thì bạn có thể sử dụng API quản lý Edge để lưu dữ liệu lưu lượng truy cập trên thiết bị. Sau đó, bạn phải chuyển dữ liệu sang một máy có kết nối Internet để tải lên Apigee. Trong trường hợp này, bạn không cần sử dụng tiện ích apigee-analytics-collector. Hãy xem phần Tải dữ liệu lên Apigee theo cách thủ công bên dưới để biết thêm thông tin.

Cài đặt

Sử dụng lệnh sau để cài đặt tiện ích apigee-analytics-collector. Vì bạn đang cài đặt tệp RPM, nên lệnh này phải được chạy bởi người dùng gốc hoặc người dùng có toàn quyền truy cập sudo. Quyền truy cập sudo đầy đủ có nghĩa là người dùng có quyền truy cập sudo để thực hiện các thao tác tương tự như người dùng gốc.

> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install 

Đang chạy apigee-analytics-collector

Phần này mô tả cách chạy tiện ích apigee-analytics-collector.

Định cấu hình người dùng để chạy apigee-analytics-collector

Bạn phải chạy apigee-analytics-collector với tư cách là người dùng không phải người dùng gốc. Người dùng này phải có toàn quyền truy cập sudo vào người dùng "apigee".

Để định cấu hình người dùng có toàn quyền truy cập sudo vào người dùng "apigee", hãy sử dụng lệnh "visudo" để chỉnh sửa tệp sudoers nhằm thêm:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

trong đó analyticsUser là tên người dùng của người đang chạy tiện ích apigee-analytics-collector.

Sau khi cài đặt tiện ích apigee-analytics-collector và định cấu hình người dùng, bạn có thể kiểm thử tiện ích này bằng cách chạy lệnh trợ giúp cho tiện ích apigee-analytics-collector:

> /opt/apigee/apigee-service/bin/ apigee-service apigee-analytics-collector export traffic --help

Thông tin bắt buộc để chạy apigee-analytics-collector

Bạn cần có những thông tin sau để chạy lệnh apigee-analytics-collector và chuyển tiếp dữ liệu đến Apigee:

  • apigee_mgmt_api_uri: URL cơ sở của Edge API trên Máy chủ quản lý của bạn. URL này thường có dạng:
    http://ms_IP:8080/v1

    Trong đó ms_IP là địa chỉ IP hoặc Máy chủ quản lý của bạn và 8080 là cổng mà Edge API sử dụng. Nếu bạn đã tạo một mục DNS cho Edge API, thì URL sẽ có dạng:
    http://ms_DNS/v1

    Nếu bạn bật TLS (Bảo mật tầng truyền tải) trên Edge API Quản lý, thì URL sẽ có dạng:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: Địa chỉ email của một tài khoản có quyền truy cập vào API Edge /stats. Thông thường, đây sẽ là email của quản trị viên hệ thống Edge hoặc email của quản trị viên tổ chức cho các tổ chức sản xuất của bạn.
  • apigee_mgmt_api_password: Mật khẩu Edge cho tài khoản được chỉ định bởi apigee_mgmt_api_email.
  • apigee_analytics_client_id và apigee_analytics_secret: Thông tin đăng nhập của bạn để tải dữ liệu lên Apigee. Vui lòng gửi phiếu yêu cầu hỗ trợ cho Nhóm hỗ trợ Apigee để nhận apigee_analytics_client_id và apigee_analytics_secret.

Lệnh mẫu

Dưới đây là một lệnh mẫu để truy xuất dữ liệu lưu lượng truy cập cho tất cả các tổ chức và môi trường trong bản cài đặt Edge, đồng thời tải dữ liệu đó lên Apigee. Lưu ý cách bạn sử dụng apigee-service để chạy lệnh 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

Lưu ý rằng lệnh này chứa tất cả thông tin bắt buộc, chẳng hạn như apigee_analytics_client_id và apigee_analytics_secret.

Bạn sẽ thấy kết quả ở dạng:

[
  {
    "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
      }
    ]
  }
]

Sử dụng các tuỳ chọn dòng lệnh cho lệnh để kiểm soát các thao tác của lệnh. Sử dụng các tuỳ chọn sau để chỉ định tổ chức và môi trường cần đưa vào dữ liệu được tạo:

  • -i, --include_orgs <danh sách được phân tách bằng dấu phẩy>
  • -x, --exclude_orgs <danh sách được phân tách bằng dấu phẩy>
  • -n, --include_envs <comma-separated list of items>
  • -e, --exclude_envs <comma-separated list of items>

Ví dụ: để chỉ chỉ định các tổ chức và môi trường phát hành chính thức, hãy sử dụng các tuỳ chọn -i (hoặc --include_orgs) và -n (hoặc --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

Trong ví dụ này, bạn chỉ thu thập dữ liệu từ môi trường chính thức của myOrg.

Để kết xuất dữ liệu ra màn hình nhằm kiểm tra trước khi gửi đến Apigee, hãy sử dụng tuỳ chọn -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 

Tuỳ chọn -S bỏ qua việc tải dữ liệu lên Apigee. Sau đó, bạn có thể chạy lại lệnh mà không cần tuỳ chọn -S để gửi dữ liệu đến Apigee.

Một lý do để sử dụng tuỳ chọn -S là để bạn có thể hiển thị nhiều loại dữ liệu khác nhau trên thiết bị. Apigee chỉ yêu cầu bạn tải dữ liệu lưu lượng truy cập API lên, nhưng tuỳ chọn -D cho phép bạn hiển thị dữ liệu về các sản phẩm API, nhà phát triển, ứng dụng hoặc proxy API. Ví dụ dưới đây sử dụng các tuỳ chọn -D và -S để hiển thị dữ liệu của nhà phát triển trên thiết bị:

>  /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 

Thêm tuỳ chọn -v để nhận kết quả chi tiết và tuỳ chọn -R để xem các lệnh curl do apigee-analytics-collector tạo:

 >  /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 

Phần tiếp theo chứa danh sách đầy đủ các tuỳ chọn dòng lệnh.

Tham số lệnh

Bảng sau đây liệt kê toàn bộ các tuỳ chọn cho tiện ích apigee-analytics-collector:

Command

Mục đích sử dụng

-h, --help

Thông tin về việc sử dụng dữ liệu đầu ra

-D, --dimension <dimension>

Phương diện lưu lượng truy cập cần thu thập. Phương diện hợp lệ: apiproducts, devs, apps, apiproxy (mặc định)

-d, --days <days>

Số ngày trong quá khứ (tính từ ngày hiện tại) của dữ liệu cần thu thập. Giá trị mặc định là 3.

Nếu bạn chỉ định -d, thì đừng chỉ định -s và -z để đặt phạm vi thời gian.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL đến API quản lý Edge.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

Địa chỉ email của một tài khoản có quyền truy cập vào API /stats của Edge. Thông thường, đây sẽ là email của quản trị viên hệ thống Edge hoặc email của quản trị viên tổ chức cho các tổ chức sản xuất của bạn.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Mật khẩu liên kết với tài khoản email API quản lý Edge do -u chỉ định.

-i, --include_orgs <items>

Danh sách các tổ chức được phân tách bằng dấu phẩy để đưa vào kết quả.

-x, --exclude_orgs <items>

Danh sách các tổ chức được phân tách bằng dấu phẩy cần loại trừ khỏi kết quả.

-n, --include_envs <items>

Danh sách môi trường được phân tách bằng dấu phẩy để đưa vào kết quả.

-e, --exclude_envs <items>

Danh sách môi trường được phân tách bằng dấu phẩy để đưa vào kết quả.

-o, --output <path>

Đường dẫn và tên tệp để lưu kết quả.

-s, --time_range_start <time_range_start>

Phạm vi thời gian bắt đầu truy vấn số liệu thống kê về lưu lượng truy cập, ở dạng: "03/01/2016 00:00".

Nếu bạn chỉ định -d, thì cũng đừng chỉ định -s và -z để đặt phạm vi thời gian.

-z, --time_range_end <time_range_end>

Thời gian kết thúc của phạm vi thời gian để truy vấn số liệu thống kê về lưu lượng truy cập, ở định dạng: "04/01/2016 24:00".

Nếu bạn chỉ định -d, thì cũng đừng chỉ định -s và -z để đặt phạm vi thời gian.

-t, --time_unit <time_unit>

Đơn vị thời gian cho dữ liệu lưu lượng truy cập. Tuần mặc định. Đơn vị mặc định là giờ. Đơn vị thời gian hợp lệ: giây, phút, giờ, ngày, tuần.

-S, --standard_output

Ghi kết quả vào thiết bị đầu cuối (stdout) thay vì tải lên Apigee.

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

Mã nhận dạng của bạn để tải dữ liệu lên Apigee. Vui lòng gửi phiếu yêu cầu hỗ trợ cho Nhóm hỗ trợ Apigee để nhận.

-r, --apigee_analytics_secret <apigee_analytics_secret>

Mã bí mật để tải dữ liệu lên Apigee. Vui lòng gửi phiếu yêu cầu hỗ trợ cho Nhóm hỗ trợ Apigee để nhận.

-R, --include_curl_commands

Đưa các lệnh cURL đã tạo vào kết quả để gỡ lỗi.

-v, --verbose

Hiển thị kết quả chi tiết.

Tải dữ liệu lên Apigee theo cách thủ công

Apigee khuyên bạn nên cài đặt tiện ích apigee-analytics-collector trên một máy có quyền truy cập Internet bên ngoài. Sau đó, tiện ích apigee-analytics-collector có thể tải dữ liệu trực tiếp lên Apigee.

Tuy nhiên, nếu máy không có quyền truy cập Internet bên ngoài, hãy sử dụng API quản lý Edge để thu thập dữ liệu lưu lượng truy cập, sau đó sử dụng lệnh cURL để tải dữ liệu đó lên Apigee từ một máy có quyền truy cập Internet. Bạn phải lặp lại quy trình này cho mọi tổ chức và môi trường phát hành công khai trong quá trình cài đặt Edge.

Sử dụng lệnh cURL sau để thu thập dữ liệu lưu lượng truy cập cho một tổ chức và môi trường cụ thể trong một khoảng thời gian nhất định:

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"

Lệnh này sử dụng API Edge Get API message count. Trong lệnh này:

  • apigee_mgmt_api_email:apigee_mgmt_api_password chỉ định địa chỉ email của một tài khoản có quyền truy cập vào API Edge /stats.
  • <ms_IP> là địa chỉ IP hoặc tên DNS của Máy chủ quản lý Edge.
  • {org_name} và {env_name} chỉ định tổ chức và môi trường.
  • apiproxy là phương diện nhóm các chỉ số theo proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour chỉ định phạm vi thời gian được chia thành các đơn vị thời gian của chỉ số cần thu thập. Lưu ý rằng lệnh cURL sử dụng mã thập lục phân %20 cho các dấu cách trong phạm vi thời gian.

Ví dụ: để thu thập số lượng thông báo của proxy API theo từng giờ trong khoảng thời gian 24 giờ, hãy sử dụng lệnh gọi API quản lý sau đây. timeRange chứa các ký tự được mã hoá 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"

Bạn sẽ thấy một phản hồi ở dạng:

{
  "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" ]
  }
}

Sau đó, để tải dữ liệu đó lên Apigee từ một máy có kết nối Internet, hãy sử dụng lệnh cURL sau:

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"...}'

trong đó:

  • apigee_analytics_client_id:apigee_analytics_secret chỉ định thông tin đăng nhập của bạn để tải dữ liệu lên Apigee mà bạn nhận được từ Nhóm hỗ trợ Apigee.
  • {org_name} chỉ định tổ chức.
  • {"environments"...} chứa kết quả của lệnh cURL mà bạn đã dùng để thu thập số liệu thống kê ở trên.