העלאת נתוני תנועה לממשק API ל-Apigee – גרסת בטא

Edge for Private Cloud גרסה 4.18.01

כל לקוחות Edge for Private Cloud נדרשים לשלוח ל-Apigee נתונים סטטיסטיים לגבי תעבורת הנתונים בשרת proxy ל-API. Apigee ממליצה ללקוחות להעלות את המידע הזה פעם ביום, כנראה על ידי יצירת משימת cron.

עליכם לשלוח את הנתונים עבור פריסות של ממשקי API בסביבת ייצור, אבל לא עבור ממשקי API בפריסות של פיתוח או בדיקה. ברוב ההתקנות של Edge תגדירו ארגונים או סביבות ספציפיים לממשקי ה-API של סביבת הייצור. הנתונים שאתם שולחים מיועדים רק לסביבות ולארגונים בסביבת הייצור.

כדי לעזור בהעלאת הנתונים האלה, Apigee מספקת את גרסת הבטא של כלי שורת הפקודה apigee-analytics-collector. כלי השירות הזה שולח את דוח נפח הקריאות של ה-API חזרה ל-Apigee. כל Edge להתקנה של ענן פרטי יכול להשתמש בכלי השירות הזה כדי לאחזר נתוני תעבורת נתונים ולדווח עליהם ל-Apigee.

גישה לנתונים שהועלו על ידי apigee-analytics-collector

אחרי שמעלים את הנתונים באמצעות הכלי apigee-analytics-collector, אפשר להציג אותם ב-Apigee 360.

כדי להציג את הנתונים, צריך להתחבר אל Apigee 360 ולבחור באפשרות Usage (שימוש). בדף Usage מוצג תרשים שימוש וטבלה של נתוני שימוש לכל אחד מהארגונים ב-Edge.

התקנה של apigee-analytics-collector

הכלי apigee-analytics-collector הוא RPM שאתם מתקינים באמצעות הכלי apigee-service.

איפה להתקין

הצומת שבו מתקינים את כלי השירות apigee-analytics-collector יכול להיות כל צומת שיכול לגשת ל-Edge Management API בשרת Edge Management Server. אפשר להתקין אותו ישירות בשרת הניהול, בצומת אחר של התקנת Edge או בצומת נפרד, כל עוד הצומת יכול לשלוח בקשות API לשרת הניהול.

דרישות גישה לאינטרנט

מתקינים את תוכנת העזר apigee-analytics-collector במחשב עם גישה חיצונית לאינטרנט. לאחר מכן, כלי העזר apigee-analytics-collector יכול להעלות נתונים ישירות ל-Apigee.

אם אין צומת עם גישה ל-Edge Management API בשרת הניהול של Edge וגם גישה חיצונית לאינטרנט, אפשר להשתמש ב-Edge Management API כדי לשמור את נתוני התעבורה באופן מקומי. לאחר מכן צריך להעביר את הנתונים למחשב עם גישה לאינטרנט להעלאה אל Apigee. בתרחיש כזה, אין צורך להשתמש בכלי העזר apigee-analytics-collector. מידע נוסף מופיע בקטע העלאה ידנית של נתונים ל-Apigee שבהמשך.

התקנה

כדי להתקין את כלי העזר apigee-analytics-collector, משתמשים בפקודה הבאה. מכיוון שמתקינים קובץ RPM, צריך להריץ את הפקודה הזו על ידי משתמש השורש או משתמש עם גישת sudo מלאה. לגישת sudo מלאה, פירוש הדבר שלמשתמש יש גישת sudo לביצוע אותן פעולות כמו של הרמה הבסיסית (root).

> /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: כתובת ה-URL הבסיסית של ממשק Edge API בשרת הניהול שלכם. הפורמט של כתובת ה-URL הוא בדרך כלל:
    http://ms_IP:8080/v1

    כאשר ms_IP היא כתובת ה-IP או שרת הניהול שלכם, ו-8080 היא היציאה שבה נעשה שימוש ב-Edge API. אם יצרת רשומת DNS ל-Edge API, כתובת ה-URL היא בפורמט הבא:
    http://ms_DNS/v1

    אם הפעלת TLS ב-Edge Management API, היא מופיעה בפורמט הבא:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: כתובת האימייל של חשבון עם גישה לממשקי ה-API של /stats Edge. בדרך כלל זו תהיה כתובת האימייל של מנהל המערכת ב-Edge או של מנהל הארגון בארגון.
  • apigee_mgmt_api_password: סיסמת Edge לחשבון שצוינה על ידי apigee_mgmt_api_email.
  • apigee_analytics_client_id ו-apigee_analytics_secret: פרטי הכניסה שלכם להעלאת נתונים ל-Apigee. יש לשלוח פנייה מהתמיכה של Apigee כדי לקבל את apigee_analytics_client_id ו-apigee_analytics_secret.

פקודות לדוגמה

למטה מוצגת פקודה לדוגמה שמאפשרת לאחזר נתוני תעבורת נתונים של כל הארגונים והסביבות בהתקנת 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 (או --i) ו--i (או -i):

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

בדוגמה הזו, אוספים נתונים רק מסביבת הייצור של 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, מפתחים, אפליקציות או שרתי proxy של 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 כדי לקבל פלט מילולי ואת האפשרות -v כדי להציג את פקודות ה-Curl שנוצרו על ידי -v:

 >  /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, devs, apps, apiproxy (ברירת מחדל)

-d, --ימים <days>

מספר הימים שחלפו, החל מהתאריך הנוכחי, של הנתונים לאיסוף. ברירת המחדל היא 3.

אם ציינתם -d, אל תציינו גם -s ו- -z כדי להגדיר טווח זמן.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

כתובת ה-URL של Edge Management API.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

כתובת האימייל של חשבון עם גישה לממשקי API /stats של Edge. בדרך כלל זו תהיה כתובת האימייל של מנהל המערכת ב-Edge או של מנהל הארגון בארגון בסביבת הייצור.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

הסיסמה משויכת לחשבון האימייל של Edge Management API שצוין באמצעות -u.

-i, --include_orgs <items>

רשימה מופרדת בפסיקים של ארגונים שצריך לכלול בפלט.

-x, --exclusion_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

כותבים את הפלט בטרמינל (stdout), במקום להעלות אותו ל-Apigee.

-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 management API כדי לאסוף נתוני תעבורת נתונים, ואז להשתמש בפקודות 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"

פקודה זו משתמשת בממשק ה-API של Edge Get API לספירת הודעות. בפקודה זו:

  • החלק apigee_mgmt_api_email:apigee_mgmt_api_password מציין את כתובת האימייל של חשבון עם גישה לממשקי Edge /stats API.
  • <ms_IP> הוא כתובת ה-IP או שם ה-DNS של שרת הניהול של Edge.
  • {org_name} ו-{env_name} מציינים את הארגון והסביבה.
  • apiproxy הוא המבנה שמקבץ מדדים לפי שרתי proxy של API.
  • החלק MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour מציין את טווח הזמן חלקי יחידות הזמן של המדדים שיש לאסוף. שימו לב שהפקודה cURL משתמשת בקוד ההקסדצימלי %20 לרווחים בטווח הזמן.

לדוגמה, כדי לאסוף ספירות של הודעות proxy ל-API שעה אחרי שעה בתקופה של 24 שעות, משתמשים ב קריאה הבאה ל-API לניהול. ה-timeRange מכיל תווים בקידוד כתובות 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"

אמורה להופיע תשובה בטופס:

{
  "environments" : [ {
    "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"
  } ],
  "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 שבה השתמשתם כדי לאסוף נתונים סטטיסטיים למעלה.