بارگذاری داده‌های ترافیک میانای برنامه‌سازی کاربردی در Apigee - انتشار نسخه بتا

Edge for Private Cloud نسخه ۴.۱۸.۰۵

همه مشتریان Edge for Private Cloud ملزم هستند آمار مربوط به ترافیک پراکسی میانای برنامه‌سازی کاربردی را به Apigee ارسال کنند. Apigee به مشتریان توصیه می‌کند که این اطلاعات را یک بار در روز، احتمالاً با ایجاد یک cron job، بارگذاری کنند.

باید داده‌ها را برای استقرار میانای برنامه‌سازی کاربردی تولید ارسال کنید، اما نه برای میاناهای برنامه‌سازی کاربردی درحال توسعه یا استقرارهای آزمایشی. در اکثر نصب‌های Edge، سازمان‌ها یا محیط‌های خاصی را برای میاناهای برنامه‌سازی کاربردی تولیدی خود تعریف خواهید کرد. داده‌هایی که ارسال می‌کنید فقط برای آن سازمان‌ها و محیط‌های تولید است.

برای کمک به بارگذاری این داده‌ها، Apigee نسخه بتا ابزار کمکی خط فرمان apigee-analytics-collector را ارائه می‌دهد. این ابزار کمکی گزارش حجم فراخوانی میانای برنامه‌سازی کاربردی را به Apigee ارسال می‌کند. هر Edge برای نصب Private Cloud می‌تواند از این ابزار برای بازیابی و گزارش داده‌های ترافیک به Apigee استفاده کند.

الزامی: قبل‌از بارگذاری داده‌ها با «پشتیبانی Apigee» تماس بگیرید

قبل‌از اینکه بتوانید داده‌ها را در Apigee بارگذاری کنید، باید با پشتیبانی Apigee Edge تماس بگیرید تا فرایند آماده‌سازی را تکمیل کنید.

درحال نصب apigee-analytics-collector

ابزار apigee-analytics-collector یک RPM است که بااستفاده از ابزار apigee-service نصب می‌کنید.

محل نصب

گره‌ای که ابزار apigee-analytics-collector را روی آن نصب می‌کنید می‌تواند هر گره‌ای باشد که بتواند به API مدیریت Edge در «سرور مدیریت Edge» دسترسی داشته باشد. می‌توانید آن را مستقیماً در «سرور مدیریت»، در گره دیگری از نصب Edge، یا در گره‌ای جداگانه نصب کنید، به‌شرطی که آن گره بتواند درخواست‌های میانای برنامه‌سازی کاربردی را به «سرور مدیریت» ارسال کند.

الزامات دسترسی به اینترنت

ابزار کمکی apigee-analytics-collector را در دستگاهی با دسترسی به اینترنت خارجی نصب کنید. سپس ابزار کمکی apigee-analytics-collector می‌تواند داده‌ها را مستقیماً در Apigee بارگذاری کند.

اگر هیچ گرهی وجود نداشته باشد که هم به Edge management API در Edge Management Server دسترسی داشته باشد و هم به اینترنت خارجی دسترسی داشته باشد، می‌توانید از Edge management 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 را به‌عنوان کاربر غیرریشه اجرا کنید. این کاربر باید دسترسی کامل sudo به کاربر «apigee» داشته باشد.

برای پیکربندی کاربری که دسترسی کامل sudo به کاربر «apigee» داشته باشد، از فرمان «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 از آن استفاده می‌کند. اگر ورودی DNS برای Edge API ایجاد کرده‌اید، نشانی وب به این شکل است:
    http://ms_DNS/v1

    اگر TLS را در Edge management API فعال کنید، به این شکل است:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: نشانی ایمیل حسابی که به Edge /stats APIs دسترسی دارد. اغلب این ایمیل سرپرست سیستم Edge یا ایمیل سرپرست سازمان برای سازمان‌های تولیدی شما خواهد بود.
  • apigee_mgmt_api_password: گذرواژه Edge برای حسابی که با apigee_mgmt_api_email مشخص شده است.
  • apigee_analytics_client_id و apigee_analytics_secret: اعتبارنامه‌های شما برای بارگذاری داده‌ها در Apigee. لطفاً برای دریافت apigee_analytics_client_id و apigee_analytics_secret، درخواستی به پشتیبانی Apigee ارسال کنید.

فرمان‌های نمونه

در زیر نمونه‌ای از فرمان برای بازیابی داده‌های ترافیک برای همه سازمان‌ها و محیط‌ها در نصب 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 <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>

برای مثال، برای مشخص کردن فقط سازمان‌ها و محیط‌های تولید، از گزینه‌های -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

در این مثال، فقط داده‌ها را از محیط prod 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 را برای دیدن فرمان‌های curl تولیدشده توسط apigee-analytics-collector اضافه کنید:

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

تعداد روزهای گذشته، از تاریخ فعلی، برای جمع‌آوری داده‌ها. پیش‌فرض ۳ است.

اگر -d را مشخص می‌کنید، -s و -z را برای تنظیم محدوده زمانی مشخص نکنید.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

نشانی وب به میانای برنامه‌سازی کاربردی مدیریت Edge.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

نشانی ایمیل حسابی که به میاناهای برنامه‌سازی کاربردی Edge /stats دسترسی دارد. اغلب این ایمیل سرپرست سیستم Edge یا ایمیل سرپرست سازمان برای سازمان‌های تولیدی شما خواهد بود.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

گذرواژه مرتبط با حساب ایمیل Edge management API که با -u مشخص شده است.

-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

خروجی را به‌جای بارگذاری در Apigee، در پایانه (stdout) بنویسید.

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

شناسه شما برای بارگذاری داده‌ها در Apigee. لطفاً برای دریافت آن، بلیتی به پشتیبانی 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 برای جمع‌آوری داده‌های ترافیک استفاده کنید، سپس از فرمان‌های 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 message count استفاده می‌کند. در این فرمان:

  • apigee_mgmt_api_email:apigee_mgmt_api_password نشانی ایمیل حسابی را مشخص می‌کند که به میاناهای برنامه‌سازی کاربردی Edge /stats دسترسی دارد.
  • <ms_IP> نشانی IP یا نام DNS مربوط به Edge Management Server است.
  • {org_name} و {env_name} سازمان و محیط را مشخص می‌کند.
  • apiproxy بعدی است که سنجه‌ها را براساس پراکسی‌های میانای برنامه‌سازی کاربردی گروه‌بندی می‌کند.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour محدوده زمانی تقسیم‌شده به واحدهای زمانی سنجه‌ها را برای جمع‌آوری مشخص می‌کند. توجه داشته باشید که فرمان cURL از کد هگز %20 برای فاصله‌ها در محدوده زمانی استفاده می‌کند.

برای مثال، برای جمع‌آوری تعداد پیام‌های پراکسی میانای برنامه‌سازی کاربردی به‌صورت ساعت‌به‌ساعت در یک دوره ۲۴ ساعته، از فراخوانی میانای برنامه‌سازی کاربردی مدیریت زیر استفاده کنید. 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&timeUnit=hour"

باید پاسخی به این شکل ببینید:

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

سپس برای بارگذاری آن داده‌ها در 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"...} حاوی نتایج فرمان cURL است که برای جمع‌آوری آمار بالا استفاده کردید.