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

Tất cả khách hàng sử dụng Edge dành cho đám mây riêng tư đều phải gửi cho chúng tôi số liệu thống kê của Apigee về lưu lượng truy cập proxy API. Apigee khuyên khách hàng tải thông tin đó lên một lần mỗi ngày, có thể bằng cách tạo một công việc định kỳ.

Bạn phải gửi dữ liệu cho các đợt triển khai API sản xuất, chứ không phải cho API đang trong quá trình triển khai hoặc kiểm thử. 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 phát hành chính thức. Dữ liệu mà bạn gửi chỉ dành cho các tổ chức và môi trường sản xuất đó.

Để hỗ trợ việc tải dữ liệu này lên, Apigee cung cấp bản phát hành Beta của tiện ích dòng lệnh apigee-analytics-collector. Tiện ích này sẽ gửi báo cáo số lượng cuộc gọi API lại cho Apigee. Mọi Edge được cài đặt trên Đá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.

Bắt buộc: Hãy liên hệ với Nhóm hỗ trợ Apigee trước khi tải dữ liệu lên

Trước khi có thể tải dữ liệu lên Apigee, bạn phải liên hệ với Nhóm hỗ trợ Apigee để hoàn tất quy trình bắt đầu sử dụng.

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.

Nơi cài đặ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ý cạnh trên Máy chủ quản lý cạnh. Bạn có thể cài đặt ứng dụng này trực tiếp trên Máy chủ quản lý, trên một nút khác của quá trình cài đặt Edge, hoặc trên một nút riêng, miễn là nút đó có thể gửi các yêu cầu API đến Máy chủ quản lý.

Các yêu cầu đối với kết nối Internet

Cài đặt tiện ích apigee-analytics-collector trên 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ý cạnh trên Máy chủ quản lý cạnh và quyền truy cập vào Internet bên ngoài, thì bạn có thể sử dụng API Quản lý cạnh để lưu dữ liệu lưu lượng truy cập cục bộ. Sau đó, bạn phải chuyển dữ liệu sang một thiết bị 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 bài viết Tải dữ liệu lên theo cách thủ công lên Apigee để 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 một tệp RPM, nên lệnh này phải do người dùng gốc hoặc người dùng có toàn quyền truy cập sudo chạy. Đối với quyền truy cập sudo đầy đủ, điều đó 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ư thư mục 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 là 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 cần thêm:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

Trong đó analyticsUser là tên người dùng của người 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 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 API Edge trên Máy chủ quản lý. URL này thường có dạng sau:

    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à API Edge sử dụng. Nếu bạn đã tạo một mục nhập DNS cho API Edge, thì URL đó sẽ có dạng:

    http://ms_DNS/v1

    Nếu bạn bật TLS trên Edge Management API (API Quản lý Edge), thì TLS (Bảo mật tầng truyền tải) sẽ có trong biểu mẫu:

    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 các 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 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 do apigee_mgmt_api_email chỉ định.
  • apigee_analytics_client_idapigee_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ợ qua Apigee Edge Support để nhận được apigee_analytics_client_idapigee_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 của tất cả các tổ chức và môi trường trong quá trình cài đặt Edge rồi tải dữ liệu đó lên Apigee. Hãy lưu ý cách bạn 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

Xin 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_idapigee_analytics_secret của bạn.

Bạn sẽ thấy kết quả trong biểu mẫu:

[
  {
    "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 thao tác của lệnh đó. Hãy dùng các lựa 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 comma-separated list of items
  • -x, --exclude_orgs comma-separated list of items
  • -n, --include_envs comma-separated list of items
  • -e, --exclude_envs comma-separated list of items

Ví dụ: để chỉ xác định các tổ chức và môi trường sản xuất, 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 thực tế của myOrg.

Để chuyển dữ liệu vào một màn hình để kiểm tra trước khi gửi cho 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 cục 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ụ bên dưới sử dụng các tuỳ chọn -D-S để hiển thị dữ liệu nhà phát triển trên máy:

/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

Bao gồ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ê một tập hợp đầy đủ tuỳ chọn cho tiện ích apigee-analytics-collector:

Lệnh Nội dung mô tả
-h, --help

Thông tin về mứ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. Các giá trị hợp lệ là:

  • apiproducts
  • apiproxy (mặc định)
  • apps
  • devs
-d, --days days

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

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

-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri

URL sang 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 các API Edge /stats. Đây thường 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 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 của 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 các 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 các 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 đầu ra.

-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, có dạng: "MM/DD/YYYY HH:MM".

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

-z, --time_range_end time_range_end

Phạm vi thời gian kết thúc để truy vấn số liệu thống kê về lưu lượng, có dạng: "01/04/2016 24:00".

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

-t, --time_unit time_unit

Đơn vị thời gian cho dữ liệu giao thông. Giá trị mặc định là hour. Các đơn vị thời gian hợp lệ là:

  • second
  • minute
  • hour (mặc định)
  • day
  • week

Nếu bạn đặt -t thành week-d thành 365, thì Apigee sẽ trả về một lượng lớn dữ liệu, được nhóm thành 52 mục riêng biệt (mỗi tuần một mục).

-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ợ qua Apigee Edge Support để nhận được.

-r, --apigee_analytics_secret apigee_analytics_secret

Bí quyết của bạn về việc tải dữ liệu lên Apigee. Vui lòng gửi phiếu yêu cầu hỗ trợ qua Apigee Edge Support để nhận được.

-R, --include_curl_commands

Đưa các lệnh curl đã tạo vào dữ liệu đầu ra để 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ó kết nối 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 đó dùng các lệnh curl để tải dữ liệu đó lên Apigee từ một máy có kết nối Internet. Bạn phải lặp lại quy trình này cho mọi tổ chức sản xuất và môi trường trong quá trình cài đặt Edge.

Dùng lệnh curl sau để thu thập dữ liệu về 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 cụ thể:

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 đếm thông báo của Edge Get API. 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_nameenv_name chỉ định tổ chức và môi trường.
  • apiproxy là hiệu ứng làm mờ nhóm các chỉ số theo proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour xác định phạm vi thời gian chia thành đơn vị thời gian của các chỉ số cần thu thập. Xin lưu ý rằng lệnh curl sử dụng mã hex %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 proxy API theo giờ trong khoảng thời gian 24 giờ, hãy sử dụng lệnh gọi API sau.

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&timeUnit=hour"

(Xin lưu ý rằng timeRange chứa các ký tự được mã hoá URL.)

Bạn sẽ thấy phản hồi trong biểu mẫu:

{
  "environments" : [ {
    "dimensions" : [ {
      "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"
      } ],
    "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" ]
  }
}

Sau đó, để tải dữ liệu đó lên Apigee bằng một máy có kết nối Internet, hãy 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 trường hợp:

  • apigee_analytics_client_id:apigee_analytics_secret chỉ định thông tin đăng nhập của bạn để tải dữ liệu mà bạn đã nhận được từ Apigee lên Apigee.
  • org_name chỉ định tên 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.