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

Edge for Private Cloud نسخه 4.19.01

همه مشتریان 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 <لیست موارد جدا شده با کاما>
  • -x، --exclude_orgs <لیست موارد جدا شده با کاما>
  • -n، --include_envs <لیست موارد جدا شده با کاما>
  • -e، --exclude_envs <لیست موارد جدا شده با کاما>

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

اطلاعات استفاده از خروجی

-D، --dimension <بعد>

بعد ترافیک برای جمع آوری. ابعاد معتبر: apiproducts ، توسعه دهندگان ، برنامه‌ها ، apiproxy (پیش‌فرض)

-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 management API که توسط -u مشخص شده است.

-i، --include_orgs <items>

فهرست سازمان‌هایی که با کاما جدا شده‌اند تا در خروجی گنجانده شوند.

-x، --exclude_orgs <اقلام>

فهرست سازمان‌ها با کاما جدا شده برای حذف از خروجی.

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

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

-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، -- پرحرف

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

آپلود دستی داده ها در 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} سازمان و محیط را مشخص می‌کند.
  • apiproxy بعد است که معیارها را بر اساس پراکسی های API گروه بندی می کند.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour محدوده زمانی را مشخص می کند که به واحدهای زمانی معیارهای جمع آوری تقسیم می شود. توجه داشته باشید که دستور cURL از کد هگز %20 برای فضاهای محدوده زمانی استفاده می کند.

به عنوان مثال، برای جمع آوری تعداد پیام های پراکسی API ساعت به ساعت در یک دوره 24 ساعته، از تماس مدیریت API زیر استفاده کنید. محدوده زمانی شامل کاراکترهای کدگذاری شده با 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"

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

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