بارگذاری داده های ترافیک API در Apigee - نسخه بتا

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

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

برای کمک به آپلود این داده ها، Apigee نسخه بتا ابزار خط فرمان apigee-analytics-collector را ارائه می دهد. این ابزار گزارش حجم تماس API را به 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 یا روی یک گره جداگانه نصب کنید تا زمانی که آن گره بتواند درخواست‌های API را به سرور مدیریت ارسال کند.

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

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

اگر هیچ گره‌ای با دسترسی به API مدیریت Edge در سرور مدیریت Edge و دسترسی به اینترنت خارجی وجود ندارد، می‌توانید از API مدیریت Edge برای ذخیره داده‌های ترافیک به صورت محلی استفاده کنید. سپس باید داده ها را به دستگاهی با دسترسی به اینترنت برای آپلود در Apigee منتقل کنید. در این سناریو، نیازی به استفاده از ابزار apigee-analytics-collector ندارید. برای اطلاعات بیشتر به آپلود دستی داده ها در Apigee مراجعه کنید.

نصب و راه اندازی

برای نصب ابزار apigee-analytics-collector از دستور زیر استفاده کنید. از آنجایی که شما در حال نصب یک فایل RPM هستید، این دستور باید توسط کاربر root یا کاربری که دسترسی کامل به 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 و پیکربندی کاربر، می توانید با اجرای دستور help برای ابزار 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 : URL پایه API Edge در سرور مدیریت شما. این URL معمولاً به شکل زیر است:

    http://ms_IP:8080/v1

    جایی که ms_IP آدرس IP یا سرور مدیریت شما و 8080 پورتی است که توسط Edge API استفاده می شود. اگر یک ورودی DNS برای Edge API ایجاد کرده اید، URL به شکل زیر است:

    http://ms_DNS/v1

    اگر TLS را در API مدیریت Edge فعال کنید، به شکل زیر است:

    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_analytics_client_id و apigee_analytics_secret یک بلیط با پشتیبانی Apigee Edge ارسال کنید.

دستورات مثال

در زیر یک فرمان مثال برای بازیابی داده های ترافیک برای همه سازمان ها و محیط های نصب 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
  • apiproxy (پیش فرض)
  • apps
  • devs
-d, --days days

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

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

-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri

URL به API مدیریت Edge.

-u, --apigee_mgmt_api_email apigee_mgmt_api_email

آدرس ایمیل یک حساب با دسترسی به APIهای Edge /stats . این معمولا ایمیل مدیر سیستم Edge یا ایمیل مدیر سازمان برای سازمان های تولیدی شما است.

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

رمز عبور مرتبط با حساب ایمیل مدیریت Edge 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

محدوده زمانی برای شروع جستجوی آمار ترافیک، به شکل: " MM/DD/YYYY HH:MM ".

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

-z, --time_range_end time_range_end

پایان محدوده زمانی برای استعلام آمار ترافیک، به شکل: "04/01/2016 ساعت 24:00".

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

-t, --time_unit time_unit

واحد زمان برای داده های ترافیک مقدار پیش فرض hour است. واحدهای زمانی معتبر عبارتند از:

  • second
  • minute
  • hour (پیش‌فرض)
  • day
  • week

اگر -t روی week و -d را روی 365 تنظیم کنید، Apigee حجم زیادی از داده‌ها را به 52 ورودی جداگانه (یکی برای هر هفته) برمی‌گرداند.

-S, --standard_output

خروجی را به جای آپلود در Apigee در ترمینال (stdout) بنویسید.

-c, --apigee_analytics_client_id apigee_analytics_client_id

شناسه شما برای آپلود داده ها در Apigee. لطفاً برای دریافت یک بلیط با پشتیبانی Apigee Edge ارسال کنید.

-r, --apigee_analytics_secret apigee_analytics_secret

راز شما برای آپلود داده ها در Apigee. لطفاً برای دریافت یک بلیط با پشتیبانی Apigee Edge ارسال کنید.

-R, --include_curl_commands

دستورات curl تولید شده را برای اشکال زدایی در خروجی قرار دهید.

-v, --verbose

نمایش خروجی پرمخاطب

آپلود دستی داده ها در Apigee

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

با این حال، اگر دستگاه دسترسی به اینترنت خارجی ندارد، از API مدیریت 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 API استفاده می کند. در این دستور:

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

به عنوان مثال، برای جمع آوری تعداد پیام های پراکسی API ساعت به ساعت در یک دوره 24 ساعته، از تماس API زیر استفاده کنید.

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"

(توجه داشته باشید که timeRange شامل کاراکترهای رمزگذاری شده با URL است.)

شما باید یک پاسخ را در فرم مشاهده کنید:

{
  "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 است که برای جمع آوری آمار در بالا استفاده کردید.