एपीआई ट्रैफ़िक डेटा को Apigee में अपलोड करना - बीटा रिलीज़

Private Cloud के सभी ग्राहकों को, एपीआई प्रॉक्सी ट्रैफ़िक से जुड़े Apigee के आंकड़े सबमिट करने होंगे. Apigee का सुझाव है कि ग्राहक उस जानकारी को दिन में एक बार अपलोड करें. इसके लिए, आपको क्रॉन जॉब बनाना होगा.

आपको अपने प्रोडक्शन एपीआई डिप्लॉयमेंट के लिए, डेटा सबमिट करना होगा. हालांकि, डेवलपमेंट या टेस्टिंग डिप्लॉयमेंट में चल रहे एपीआई के लिए डेटा सबमिट नहीं करना होगा. ज़्यादातर Edge इंस्टॉलेशन में, आपको अपने प्रोडक्शन एपीआई के लिए खास संगठन या एनवायरमेंट तय करने होंगे. आपने जो डेटा सबमिट किया है वह सिर्फ़ उन प्रोडक्शन संगठनों और एनवायरमेंट के लिए है.

इस डेटा को अपलोड करने में मदद करने के लिए, Apigee, apigee-analytics-collector कमांड लाइन सुविधा का बीटा वर्शन उपलब्ध कराता है. यह सुविधा, एपीआई कॉल वॉल्यूम की रिपोर्ट को वापस Apigee को भेजती है. Private Cloud को इंस्टॉल करने के लिए, हर किनारे इस सुविधा का इस्तेमाल कर सकता है. इससे, ट्रैफ़िक का डेटा Apigee को भेजा जा सकता है और उसकी रिपोर्ट की जा सकती है.

ज़रूरी है: डेटा अपलोड करने से पहले Apigee सहायता से संपर्क करें

Apigee में डेटा अपलोड करने से पहले, आपको शामिल होने की प्रोसेस पूरी करने के लिए, Apigee Edge की सहायता टीम से संपर्क करना होगा.

apigee-analytics-कलेक्टर इंस्टॉल करें

apigee-analytics-collector यूटिलिटी एक आरपीएम है. इसे apigee-service यूटिलिटी का इस्तेमाल करके इंस्टॉल किया जाता है.

कहां इंस्टॉल करें

जिस नोड पर apigee-analytics-collector यूटिलिटी को इंस्टॉल किया जाता है वह कोई भी ऐसा नोड हो सकता है जो Edge मैनेजमेंट सर्वर पर Edge मैनेजमेंट एपीआई को ऐक्सेस कर सके. इसे सीधे मैनेजमेंट सर्वर, Edge इंस्टॉलेशन के दूसरे नोड पर या अलग नोड पर इंस्टॉल किया जा सकता है, बशर्ते वह नोड मैनेजमेंट सर्वर को एपीआई अनुरोध भेज सकता हो.

इंटरनेट ऐक्सेस करने से जुड़ी ज़रूरी शर्तें

बाहरी इंटरनेट ऐक्सेस करने वाली मशीन पर apigee-analytics-collector यूटिलिटी इंस्टॉल करें. इसके बाद, apigee-analytics-collector यूटिलिटी सीधे Apigee पर डेटा अपलोड कर सकती है.

अगर कोई नोड नहीं है जो Edge मैनेजमेंट सर्वर पर Edge मैनेजमेंट एपीआई और बाहरी इंटरनेट, दोनों को ऐक्सेस कर सकता है, तो ट्रैफ़िक डेटा को अपने डिवाइस पर सेव करने के लिए, Edge मैनेजमेंट एपीआई का इस्तेमाल किया जा सकता है. इसके बाद, आपको डेटा को इंटरनेट ऐक्सेस वाली किसी मशीन पर ट्रांसफ़र करना होगा, ताकि Apigee पर डेटा अपलोड किया जा सके. इस स्थिति में, आपको apigee-analytics-collector इस्तेमाल करने की ज़रूरत नहीं है. ज़्यादा जानकारी के लिए, Apigee पर मैन्युअल रूप से डेटा अपलोड करना देखें.

इंस्टॉल करना

apigee-analytics-collector सुविधा को इंस्टॉल करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें. आरपीएम फ़ाइल इंस्टॉल किए जाने की वजह से, यह निर्देश, रूट उपयोगकर्ता या ऐसे उपयोगकर्ता को चलाना चाहिए जिसके पास सूडो का पूरा ऐक्सेस हो. पूरे सूडो ऐक्सेस के लिए, इसका मतलब है कि उपयोगकर्ता के पास रूट की तरह ही कार्रवाइयां करने के लिए sudo का ऐक्सेस है.

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

apigee-analytics-कलेक्टर चल रहा है

इस सेक्शन में apigee-analytics-collector यूटिलिटी चलाने का तरीका बताया गया है.

apigee-analytics-collector चलाने के लिए उपयोगकर्ता को कॉन्फ़िगर करना

आपको apigee-analytics-collector को नॉन-रूट उपयोगकर्ता के तौर पर चलाना होगा. इस उपयोगकर्ता के पास "apigee" उपयोगकर्ता के लिए पूरा sudo ऐक्सेस होना चाहिए.

उपयोगकर्ता को "apigee" उपयोगकर्ता का पूरा sudo ऐक्सेस मिले, यह कॉन्फ़िगर करने के लिए, "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: आपके मैनेजमेंट सर्वर पर मौजूद Edge API का बेस यूआरएल. यह यूआरएल आम तौर पर इस तरह का होता है:

    http://ms_IP:8080/v1

    जहां ms_IP, आईपी पता या मैनेजमेंट सर्वर है और 8080 वह पोर्ट है जिसे Edge API इस्तेमाल करता है. अगर आपने EDGE API के लिए डीएनएस एंट्री बनाई है, तो यूआरएल इस फ़ॉर्मैट में होगा:

    http://ms_DNS/v1

    अगर आप Edge management API पर TLS को चालू करते हैं, तो यह इस तरह से होता है:

    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: उस खाते का ईमेल पता जिसके पास Edge /stats एपीआई का ऐक्सेस है. आम तौर पर यह Edge सिस्टम के एडमिन का ईमेल होगा या आपके प्रोडक्शन संगठनों के लिए संगठन के एडमिन का ईमेल होगा.
  • apigee_mgmt_api_password: apigee_mgmt_api_email में बताए गए खाते के लिए Edge पासवर्ड.
  • apigee_analytics_client_id और apigee_analytics_secret: Apigee पर डेटा अपलोड करने के लिए आपके क्रेडेंशियल. apigee_analytics_client_id और apigee_analytics_secret पाने के लिए, कृपया Apigee Edge की सहायता टीम की मदद से एक टिकट सबमिट करें.

आप ये निर्देश दे सकते हैं

Edge इंस्टॉलेशन में सभी संगठनों और एनवायरमेंट के ट्रैफ़िक डेटा को वापस पाने और उस डेटा को Apigee पर अपलोड करने के लिए, नीचे एक कमांड दिया गया है. ध्यान दें कि apigee-analytics-collector निर्देश चलाने के लिए, apigee-service का इस्तेमाल कैसे किया जाता है:

/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 पर अपलोड किए गए डेटा को हटा देता है. इसके बाद, Apigee को डेटा भेजने के लिए, -S विकल्प के बिना कमांड को फिर से चलाया जा सकता है.

-S विकल्प का इस्तेमाल करने की एक वजह यह है कि आपको अलग-अलग तरह का डेटा स्थानीय तौर पर दिखाया जा सकता है. Apigee को सिर्फ़ एपीआई ट्रैफ़िक का डेटा अपलोड करने की ज़रूरत होती है. हालांकि, -D विकल्प की मदद से एपीआई प्रॉडक्ट, डेवलपर, ऐप्लिकेशन या एपीआई प्रॉक्सी का डेटा दिखाया जा सकता है. नीचे दिए गए उदाहरण में, डेवलपर डेटा को स्थानीय तौर पर दिखाने के लिए, -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 विकल्प शामिल करें. साथ ही, apigee-analytics-collector से जनरेट किए गए कर्ल कमांड देखने के लिए, -R विकल्प शामिल करें:

/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

Edge मैनेजमेंट एपीआई का यूआरएल.

-u, --apigee_mgmt_api_email apigee_mgmt_api_email

उस खाते का ईमेल पता जिसके पास EDGE /stats API का ऐक्सेस है. यह आम तौर पर Edge सिस्टम के एडमिन का ईमेल या आपके प्रोडक्शन संगठनों के संगठन के एडमिन का ईमेल होता है.

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

EDGE मैनेजमेंट एपीआई के ईमेल खाते से जुड़ा पासवर्ड, जिसे -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 पर डेटा अपलोड कर सकती है.

हालांकि, अगर मशीन में बाहरी इंटरनेट ऐक्सेस नहीं है, तो ट्रैफ़िक डेटा इकट्ठा करने के लिए Edge मैनेजमेंट एपीआई का इस्तेमाल करें. इसके बाद, इंटरनेट ऐक्सेस वाली मशीन से Apigee पर उसे अपलोड करने के लिए, curl कमांड का इस्तेमाल करें. आपको यह तरीका अपने 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 के मैसेज की गिनती वाले एपीआई का इस्तेमाल करता है. इस निर्देश में:

  • apigee_mgmt_api_email:apigee_mgmt_api_password उस खाते के ईमेल पते के बारे में बताता है जिसके पास Edge /stats एपीआई का ऐक्सेस होता है.
  • ms_IP, Edge मैनेजमेंट सर्वर का आईपी पता या डीएनएस नाम है.
  • org_name और env_name, संगठन और एनवायरमेंट के बारे में बताते हैं.
  • apiproxy ऐसा डाइमेंशन है जो एपीआई प्रॉक्सी के हिसाब से मेट्रिक को ग्रुप करता है.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour वह समयसीमा है जिसे इकट्ठा करने के लिए, मेट्रिक की समय की इकाइयों में बांटा गया है. ध्यान दें कि curl निर्देश, समयसीमा में स्पेस के लिए, हेक्स कोड %20 का इस्तेमाल करता है.

उदाहरण के लिए, 24 घंटे में हर घंटे एपीआई प्रॉक्सी मैसेज की संख्या इकट्ठा करने के लिए, नीचे दिए गए एपीआई कॉल का इस्तेमाल करें.

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 में यूआरएल के कोड में बदले गए वर्ण शामिल होते हैं.)

आपको फ़ॉर्म में जवाब दिखेगा:

{
  "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 से मिला डेटा अपलोड करने के लिए, apigee_analytics_client_id:apigee_analytics_secret अपने क्रेडेंशियल तय करता है.
  • org_name, संगठन का नाम बताता है.
  • "environments"... में उस curl निर्देश के नतीजे शामिल हैं जिसका इस्तेमाल आपने ऊपर दिए गए आंकड़े इकट्ठा करने के लिए किया था.