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

Edge for Private Cloud גרסה 4.18.01

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

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

כדי לעזור בהעלאת הנתונים האלה, Apigee מספקת את גרסת הבטא של הכלי apigee-analytics-collector בשורת הפקודה. הכלי הזה שולח את דוח נפח הקריאות ל-API חזרה אל Apigee. כל התקנה של Edge for Private Cloud יכולה להשתמש בכלי הזה כדי לאחזר נתוני תנועה ולדווח עליהם ל-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. אפשר להתקין אותו ישירות בשרת הניהול, בצומת אחר של התקנת Edge או בצומת נפרד, כל עוד הצומת הזה יכול לשלוח בקשות API לשרת הניהול.

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

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

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

התקנה

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

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

מתבצע איסוף של נתוני apigee-Analytics

בקטע הזה מוסבר איך להריץ את הכלי apigee-analytics-collector.

הגדרת משתמש להרצת apigee-analytics-collector

צריך להריץ את apigee-analytics-collector בתור חשבון שאינו Root משתמש. למשתמש הזה צריכה להיות גישה מלאה ל-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 הבסיסית של Edge API בניהול שלכם שרת. בדרך כלל כתובת ה-URL הזו מופיעה בפורמט הבא:
    http://ms_IP:8080/v1

    כאשר ms_IP הוא כתובת ה-IP או שרת הניהול שלכם וקוד 8080 היציאה שבה משתמש ממשק ה-API של Edge. אם יצרתם רשומת 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 <comma-separated list of items>
  • -n, --include_envs <comma-separated list of items>
  • -e, --exclusion_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

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

Command

שימוש

-h,‏ --help

נתוני שימוש בפלט

-D, --מאפיין &lt;dimension&gt;

מאפיין התנועה לאיסוף. מאפיינים תקינים: apiproducts,‏ devs,‏ apps,‏ apiproxy (ברירת המחדל)

-d, --ימים &lt;days&gt;

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

אם מציינים -d, צריך לא מציינים גם -s -z כדי להגדיר שעה טווח.

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

כתובת 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 <items>

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

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

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

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

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

-o, --output <path>

נתיב ושם קובץ לשמירת הפלט.

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

טווח הזמן להפעלת השאילתה לגבי נתוני תנועה, בפורמט: '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 &lt;apigee_analytics_client_id&gt;

המזהה שלכם להעלאת נתונים ל-Apigee. כדי לקבל את הרשאת הגישה הזו, צריך לשלוח פנייה לתמיכה של Apigee.

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

הסוד שלכם להעלאת נתונים ל-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 message count. בפקודה הזו:

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

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

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

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