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

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

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

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

אם אין צומת עם גישה ל-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 של Edge /stats. בדרך כלל זו תהיה כתובת האימייל של מנהל המערכת ב-Edge או של מנהל הארגון בארגון.
  • apigee_mgmt_api_password: סיסמת Edge לחשבון שצוין ב-apigee_mgmt_api_email.
  • apigee_analytics_client_id ו-apigee_analytics_secret: פרטי הכניסה שלך להעלאת נתונים ל-Apigee. יש לשלוח פנייה לתמיכה של Apigee Edge כדי לרכוש את 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 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

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

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

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

עם זאת, אם למחשב אין גישה חיצונית לאינטרנט, צריך להשתמש ב-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 מציין את כתובת האימייל של חשבון עם גישה לממשקי 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&timeUnit=hour מציין את טווח הזמן חלקי יחידות הזמן של המדדים שצריך לאסוף. שימו לב שהפקודה curl משתמשת בקוד ההקסדצימלי %20 עבור רווחים בטווח הזמן.

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