Przesyłanie danych o ruchu do interfejsu API w Apigee – wersja beta

Wszyscy klienci Edge dla Private Cloud muszą przesyłać do Apigee statystyki ruchu z serwera proxy interfejsu API. Apigee zaleca klientom przesyłanie tych informacji raz dziennie, na przykład przez utworzenie zadania cron.

Musisz przesłać dane dla wdrożeń produkcyjnych interfejsów API, ale nie dla interfejsów API, które są projektowane lub testowane. W większości instalacji Edge definiuje się określone organizacje lub środowiska dla produkcyjnych interfejsów API. Przesłane dane dotyczą tylko tych organizacji i środowisk produkcyjnych.

Aby ułatwić przesyłanie tych danych, Apigee udostępnia wersję beta narzędzia wiersza poleceń apigee-analytics-collector. To narzędzie wysyła do Apigee raport liczby wywołań interfejsu API. Każda przeglądarka Edge dla instalacji Private Cloud może używać tego narzędzia do pobierania danych o ruchu i raportowania do Apigee.

Wymagane: przed przesłaniem danych skontaktuj się z zespołem pomocy Apigee

Zanim prześlesz dane do Apigee, musisz skontaktować się z zespołem pomocy Apigee Edge w celu ukończenia procesu rejestracji.

Zainstaluj apigee-analytics-collector

Narzędzie apigee-analytics-collector to pakiet RPM, który instalujesz się przy użyciu narzędzia apigee-service.

Gdzie zainstalować

Węzłem, w którym instalujesz narzędzie apigee-analytics-collector, może być dowolny węzeł z dostępem do interfejsu Edge Management API na serwerze zarządzania brzegiem sieci. Możesz go zainstalować bezpośrednio na serwerze zarządzania, w innym węźle instalacji brzegowej lub w osobnym węźle, jeśli tylko ten węzeł może wysyłać żądania do interfejsu API do serwera zarządzania.

Wymagania dotyczące dostępu do internetu

Zainstaluj narzędzie apigee-analytics-collector na komputerze z dostępem do internetu. Następnie narzędzie apigee-analytics-collector może przesyłać dane bezpośrednio do Apigee.

Jeśli nie ma węzła z dostępem do interfejsu Edge Management API na serwerze zarządzania brzegiem oraz z dostępem do zewnętrznego internetu, możesz użyć interfejsu Edge Management API do zapisywania danych o ruchu lokalnie. Następnie musisz przenieść dane na komputer z dostępem do internetu, aby przesłać je do Apigee. W tym przypadku nie musisz używać narzędzia apigee-analytics-collector. Więcej informacji znajdziesz w artykule o ręcznym przesyłaniu danych do Apigee.

Instalacja

Aby zainstalować narzędzie apigee-analytics-collector, użyj tego polecenia. Ponieważ instalujesz plik RPM, polecenie musi zostać uruchomione przez użytkownika root lub użytkownika z pełnym dostępem do sudo. Pełny dostęp sudo oznacza, że użytkownik ma dostęp sudo umożliwiający wykonywanie tych samych operacji co użytkownik root.

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

Uruchamiam apigee-analytics-collector

Ta sekcja zawiera informacje na temat uruchamiania narzędzia apigee-analytics-collector.

Konfigurowanie użytkownika do uruchamiania narzędzia apigee-analytics-collector

Musisz uruchomić apigee-analytics-collector jako użytkownik inny niż root. Ten użytkownik musi mieć pełny dostęp sudo do użytkownika „apigee”.

Aby skonfigurować dla użytkownika pełny dostęp sudo do użytkownika „apigee”, użyj polecenia „visudo”, aby zmodyfikować plik sudoers i dodać:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

Gdzie analyticsUser to nazwa użytkownika użytkownika korzystającego z narzędzia apigee-analytics-collector.

Po zainstalowaniu narzędzia apigee-analytics-collector i skonfigurowaniu użytkownika możesz je przetestować, uruchamiając polecenie pomocy dla narzędzia apigee-analytics-collector:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic --help

Informacje wymagane do uruchomienia narzędzia apigee-analytics-collector

Aby uruchomić polecenie apigee-analytics-collector i przekierować dane do Apigee, potrzebujesz tych informacji:

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API na serwerze zarządzania. Zazwyczaj ma on taką postać:

    http://ms_IP:8080/v1

    Gdzie ms_IP to adres IP lub serwer zarządzania, a 8080 to port używany przez Edge API. Jeśli utworzysz wpis DNS dla interfejsu Edge API, adres URL będzie miał postać:

    http://ms_DNS/v1

    Jeśli włączysz protokół TLS w interfejsie Edge Management API, będzie on miał postać:

    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: adres e-mail konta z dostępem do interfejsów API Edge /stats. Często jest to adres e-mail administratora systemu Edge lub administratora organizacji produkcyjnej.
  • apigee_mgmt_api_password: hasło Edge dla konta określonego przez apigee_mgmt_api_email.
  • apigee_analytics_client_id i apigee_analytics_secret: Twoje dane logowania do przesyłania danych do Apigee. Prześlij zgłoszenie do zespołu pomocy Apigee Edge, aby uzyskać apigee_analytics_client_id i apigee_analytics_secret.

Przykładowe polecenia

Poniżej znajduje się przykładowe polecenie pobierania danych o ruchu dla wszystkich organizacji i środowisk w instalacji Edge i przesyłania tych danych do Apigee. Zwróć uwagę na to, jak używasz apigee-service do uruchamiania polecenia 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

Zwróć uwagę, że polecenie zawiera wszystkie wymagane informacje, takie jak apigee_analytics_client_id i apigee_analytics_secret.

Wyniki powinny mieć postać:

[
  {
    "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
      }
    ]
  }
]

Użyj opcji wiersza poleceń w poleceniu, aby kontrolować jego działania. Za pomocą tych opcji określ organizacje i środowiska, które chcesz uwzględnić w generowanych danych:

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

Aby na przykład określić tylko organizacje i środowiska produkcyjne, użyj opcji -i (lub --include_orgs) i -n (albo --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

W tym przykładzie zbierasz dane tylko ze środowiska produkcyjnego myOrg.

Aby zrzucić dane na ekran i sprawdzić je przed wysłaniem do Apigee, użyj opcji -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

Opcja -S pomija przesyłanie danych do Apigee. Możesz wtedy ponownie uruchomić polecenie bez opcji -S, aby wysłać dane do Apigee.

Jednym z powodów używania opcji -S jest możliwość lokalnego wyświetlania różnych typów danych. Apigee wymaga tylko przesyłania danych o ruchu przez interfejs API, ale opcja -D umożliwia wyświetlanie danych o usługach API, programistach, aplikacjach i serwerach proxy API. W tym przykładzie użyto opcji -D i -S do lokalnego wyświetlania danych dewelopera:

/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

Dodaj opcję -v, aby uzyskać szczegółowe dane wyjściowe, i opcję -R, aby zobaczyć polecenia curl wygenerowane przez 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

Następna sekcja zawiera pełną listę opcji wiersza poleceń.

Parametry polecenia

W tabeli poniżej znajdziesz pełny zestaw opcji narzędzia apigee-analytics-collector:

Polecenie Opis
-h, --help

Wyjściowe informacje o wykorzystaniu

-D, --dimension dimension

Wymiar ruchu, który ma być zebrany. Prawidłowe wartości to:

  • apiproducts
  • apiproxy (domyślnie)
  • apps
  • devs
-d, --days days

Liczba ostatnich dni do zebrania danych, począwszy od bieżącej daty. Wartością domyślną jest 3.

Jeśli wskażesz -d, nie podawaj też -s ani -z, aby ustawić zakres czasu.

-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri

Adres URL interfejsu Edge Management API.

-u, --apigee_mgmt_api_email apigee_mgmt_api_email

Adres e-mail konta z dostępem do interfejsów API Edge /stats. Zwykle jest to adres e-mail administratora systemu brzegowego lub administratora organizacji produkcyjnych.

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

Hasło powiązane z kontem e-mail interfejsu Edge Management API podanym przez -u.

-i, --include_orgs items

Rozdzielona przecinkami lista organizacji, które mają zostać uwzględnione w danych wyjściowych.

-x, --exclude_orgs items

Rozdzielona przecinkami lista organizacji, które mają zostać wykluczone z danych wyjściowych.

-n, --include_envs items

Rozdzielona przecinkami lista środowisk do uwzględnienia w danych wyjściowych.

-e, --exclude_envs items

Rozdzielona przecinkami lista środowisk do uwzględnienia w danych wyjściowych.

-o, --output path

Ścieżka i nazwa pliku do zapisania danych wyjściowych.

-s, --time_range_start time_range_start

Zakres czasowy, w którym możesz wysyłać zapytania o statystyki ruchu w formacie „MM/DD/YYYY HH:MM”.

Jeśli wskażesz -d, nie określaj też -s ani -z, aby ustawić zakres czasu.

-z, --time_range_end time_range_end

Koniec zakresu czasu dla zapytań o statystyki ruchu w formacie: „01.04.2016 24:00”.

Jeśli wskażesz -d, nie określaj też -s ani -z, aby ustawić zakres czasu.

-t, --time_unit time_unit

Jednostka czasu dla danych o natężeniu ruchu. Wartością domyślną jest hour. Prawidłowe jednostki czasu to:

  • second
  • minute
  • hour (domyślnie)
  • day
  • week

Jeśli ustawisz -t na week, a -d na 365, Apigee zwróci dużą ilość danych podzielonych na 52 oddzielne wpisy (po 1 na każdy tydzień).

-S, --standard_output

Zapisuj dane wyjściowe w terminalu (stdout), zamiast przesyłać je do Apigee.

-c, --apigee_analytics_client_id apigee_analytics_client_id

Twój identyfikator służący do przesyłania danych do Apigee. Aby go uzyskać, prześlij zgłoszenie do zespołu pomocy Apigee Edge.

-r, --apigee_analytics_secret apigee_analytics_secret

Twój obiekt tajny do przesyłania danych do Apigee. Aby go uzyskać, prześlij zgłoszenie do zespołu pomocy Apigee Edge.

-R, --include_curl_commands

Na potrzeby debugowania w danych wyjściowych uwzględnij wygenerowane polecenia curl.

-v, --verbose

Wyświetl szczegółowe dane wyjściowe.

Ręczne przesyłanie danych do Apigee

Apigee zaleca zainstalowanie narzędzia apigee-analytics-collector na komputerze z zewnętrznym dostępem do internetu. Następnie narzędzie apigee-analytics-collector może przesyłać dane bezpośrednio do Apigee.

Jeśli jednak komputer nie ma zewnętrznego dostępu do internetu, zbierz dane o ruchu za pomocą interfejsu Edge Management API, a następnie prześlij je do Apigee za pomocą poleceń curl z komputera z dostępem do internetu. Musisz powtórzyć ten proces dla każdej organizacji i środowiska produkcyjnego w instalacji Edge.

Za pomocą tego polecenia curl zbierz dane o ruchu w określonej organizacji i środowisku w określonym przedziale czasu:

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"

To polecenie używa interfejsu Edge Get API Message count API. W tym poleceniu:

  • apigee_mgmt_api_email:apigee_mgmt_api_password określa adres e-mail konta z dostępem do interfejsów API Edge /stats.
  • ms_IP to adres IP lub nazwa DNS serwera zarządzania brzegiem.
  • org_name i env_name określają organizację i środowisko.
  • apiproxy to wymiar grupujący wskaźniki według serwerów proxy interfejsu API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour określa zakres czasu podzielony na jednostki czasu, dla których dane są zbierane. Zwróć uwagę, że polecenie curl używa kodu szesnastkowego %20 do podawania spacji w zakresie czasu.

Aby na przykład zebrać liczbę wiadomości z serwera proxy interfejsu API w ciągu godziny w okresie 24 godzin, użyj poniższego wywołania interfejsu 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 zawiera znaki zakodowane na potrzeby adresu URL).

Odpowiedź powinna się pojawić w tym formularzu:

{
  "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" ]
  }
}

Aby przesłać te dane do Apigee z maszyny z dostępem do internetu, użyj tego polecenia 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"...'

Gdzie:

  • apigee_analytics_client_id:apigee_analytics_secret określa Twoje uprawnienia do przesyłania do Apigee danych uzyskanych z Apigee.
  • org_name określa nazwę organizacji.
  • "environments"... zawiera wyniki polecenia curl, które zostało użyte do zebrania statystyk powyżej.