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

Edge for Private Cloud phiên bản 4.18.05

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

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

Để 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 dòng lệnh apigee-analytics-collector tiện ích. 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 cạnh cho Phần cài đặt Đám mây riêng tư 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: Liên hệ với Nhóm hỗ trợ của 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 Edge để hoàn tất quy trình tham gia.

Cài đặt apigee-analytics-collector

apigee-analytics-collector phần mềm tiện ích là một RPM mà bạn cài đặt bằng cách sử dụng phần mềm 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ỳ 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 ngay 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 nút đó miễn là nút đó có thể gửi yêu cầu API đến Máy chủ quản lý.

Truy cập Internet các yêu cầu

Cài đặt tiện ích apigee-analytics-collector trên có kết nối Internet bên ngoài. Sau đó, tiện ích apigee-analytics-collector có thể tải lên trực tiếp cho Apigee.

Nếu không có nút nào có cả hai quyền truy cập vào API quản lý Edge trên Máy chủ quản lý Edge và nếu có quyền truy cập Internet bên ngoài, thì bạn có thể dùng API quản lý Edge để tiết kiệm lưu lượng truy cập cục bộ. Sau đó, bạn phải chuyển dữ liệu sang máy tính 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 phần mềm tiện ích apigee-analytics-collector. Xem Tải dữ liệu lên theo cách thủ công lên Bạn có thể tìm hiểu thêm thông tin về Apigee bên dưới.

Cài đặt

Sử dụng lệnh sau để cài đặt phần mềm tiện ích apigee-analytics-collector. Bởi vì bạn đang cài đặt tệp RPM, lệnh này phải được chạy bởi người dùng gốc hoặc bởi người dùng đã quyền truy cập sudo đầy đủ. Để có 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 tương tự làm gốc.

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

Chạy apigee-analytics-collector

Phần này mô tả cách chạy phần mềm 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 dưới dạng không phải gốc người dùng. Người dùng này phải có toàn quyền truy cập sudo vào "apigee" người dùng.

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

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

trong đó analyticsUser là tên người dùng của người đang chạy phần mềm 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 phần mềm 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 công cụ thu thập apigee-analytics-collect

Bạn cần các 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 trong phần Quản lý của bạn Máy chủ. 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à API Edge sử dụng. Nếu bạn đã tạo một mục DNS cho Edge API thì URL đó sẽ nằm trong biểu mẫu:
    http://ms_DNS/v1

    Nếu bạn bật TLS trên API quản lý Edge, thì TLS sẽ có dạng:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: Địa chỉ email của tài khoản có quyền truy cập vào Các API /stats của Edge. Thông thường, 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 mình.
  • 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_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ợ với Bộ phận hỗ trợ của Apigee để nhận apigee_analytics_client_idapigee_analytics_secret.

Lệnh mẫu

Dưới đây là ví dụ về lệnh để truy xuất dữ liệu lưu lượng truy cập của tất cả các tổ chức và trong ứng dụng Edge rồi tải dữ liệu đó lên Apigee. Hãy chú ý đến 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_idapigee_analytics_secret.

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 các hành động của lệnh đó. Hãy sử 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 <danh sách các mục được phân tách bằng dấu phẩy>
  • -x, --excluded_org <danh sách các mục được phân tách bằng dấu phẩy>
  • -n, --include_envs <danh sách các mục được phân tách bằng dấu phẩy>
  • -e, --excluded_envs <danh sách các mục được phân tách bằng dấu phẩy>

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 sản phẩm của myOrg.

Để kết xuất dữ liệu vào một 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 dữ liệu tải lên Apigee. Sau đó, bạn có thể chạy lại lệnh mà không dùng tuỳ chọn -S để gửi dữ liệu đến Apigee.

Một lý do để sử dụng -S để bạn có thể hiển thị cục bộ các loại dữ liệu khác nhau. 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ề API sản phẩm, 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 của nhà phát triển cục 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 

Bao gồm cả 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 lựa chọn cho phần mềm tiện ích apigee-analytics-collector:

Lệnh

Trường hợp sử dụng

-h, --trợ giúp

Thông tin về mức sử dụng đầu ra

-D, --phương diện &lt;dimension&gt;

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, --ngày <days>

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

Nếu bạn chỉ định -d, hãy không chỉ định -s-z để đặt thời gian dải ô.

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

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

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

Địa chỉ email của một tài khoản có quyền truy cập vào các 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 tổ chức sản xuất của bạn.

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

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 &lt;items&gt;

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

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

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

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

Danh sách môi trường được phân tách bằng dấu phẩy để đưa vào dữ liệu đầu ra.

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

Danh sách môi trường được phân tách bằng dấu phẩy để đưa vào dữ liệu đầu ra.

-o, --đầu ra &lt;path&gt;

Đường dẫn và tên tệp để lưu đầu ra.

-s, --time_range_start &lt;time_range_start&gt;

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: "01/03/2016 00:00".

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

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

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

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

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

Đơn vị thời gian cho dữ liệu lưu lượng truy cập. Đơ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, --đầu_ra_chuẩn

Ghi dữ liệu đầu ra vào thiết bị đầu cuối (stdout), thay vì tải lên ứng dụng Apigee.

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

Mã nhận dạng để tải dữ liệu lên Apigee. Vui lòng gửi phiếu yêu cầu hỗ trợ với Bộ phận hỗ trợ Apigee đến nhận được.

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

Bí quyết để tải dữ liệu lên Apigee. Vui lòng gửi phiếu yêu cầu hỗ trợ với Bộ phận hỗ trợ Apigee đến 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, --chi tiết

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 có kết nối Internet bên ngoài. Sau đó, tiện ích apigee-analytics-collector có thể tải lên trực tiếp cho 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, rồi sử dụng các lệnh cURL để tải dữ liệu đó lên Apigee từ một máy có 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à trong khi cài đặt Edge.

Dùng lệnh cURL sau đây để thu thập dữ liệu về lưu lượng truy cập cho một tổ chức cụ thể và trong một khoảng thời gian xác đị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 số lượng thư 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.
  • &lt;ms_IP&gt; là địa chỉ IP hoặc tên DNS của Edge Máy chủ quản lý.
  • {org_name}{org_name} chỉ định tổ chức và môi trường.
  • apiproxy là chế độ làm mờ nhóm các chỉ số theo proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&amp;timeUnit=hour chỉ định phạm vi thời gian được chia thành đơn vị thời gian của các chỉ số cần thu thập. Lưu ý rằng lệnh cURL sử dụng mã hex %20 cho các không gian trong phạm vi thời gian.

Ví dụ: để thu thập thông báo proxy API đếm số lượng từng giờ trong khoảng thời gian 24 giờ, hãy sử dụng đang theo dõi lệnh gọi API quản lý. Khoảng thời gian 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&timeUnit=hour"

Bạn sẽ thấy câu trả lờ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 từ một máy có kết nối Internet, hãy sử dụng 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 để tải dữ liệu lên Apigee mà bạn đã có đượ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à mà bạn từng thu thập số liệu thống kê ở trên.