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

Edge for Private Cloud w wersji 4.18.01

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.

Dostęp do danych przesłanych przez apigee-analytics-collector

Po przesłaniu danych za pomocą narzędzia apigee-analytics-collector możesz je wyświetlić w Apigee 360.

Aby wyświetlić dane, zaloguj się w Apigee 360 i wybierz opcję Użycie. Na stronie Użycie wyświetlany jest wykres wykorzystania i tabela danych dotyczących wykorzystania w każdej organizacji Edge lub w organizacji Edge.

Instaluję apigee-analytics-collector

Narzędzie apigee-analytics-collector to 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 Edge. 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 zewnętrznym 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 zarówno do interfejsu Edge Management API na serwerze zarządzania brzegiem, jak i z zewnętrznym dostępem do 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 poniżej w sekcji Ręczne przesyłanie 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

W tej sekcji opisaliśmy, jak uruchomić narzędzie 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 osoby korzystającej z narzędzia apigee-analytics-collector.

Po zainstalowaniu narzędzia apigee-analytics-collector i skonfigurowaniu użytkownika możesz je przetestować, uruchamiając polecenie help 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 przekazywać dane do Apigee, potrzebujesz tych informacji:

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API na serwerze zarządzania. Ten adres URL ma zwykle 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 utworzono wpis DNS dla interfejsu Edge API, adres URL ma 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. Aby uzyskać identyfikator klienta apigee_analytics_client_id i apigee_analytics_secret, prześlij zgłoszenie do zespołu pomocy Apigee.

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 usługi 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 czy 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 <lista elementów rozdzielonych przecinkami>
  • -x, --excl_orgs <lista elementów rozdzielonych przecinkami>
  • -n, --include_envs <lista elementów rozdzielonych przecinkami>
  • -e, --excl_envs <lista elementów rozdzielonych przecinkami>

Aby na przykład określić tylko organizacje i środowiska produkcyjne, użyj opcji -i (lub --include_orgs) i -n (lub --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 wczytać 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. Następnie możesz ponownie uruchomić polecenie bez użycia opcji -S w celu wysłania danych do Apigee.

Jednym z powodów użycia 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, lub 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

Użycie

-h, --help

Wyjściowe informacje o wykorzystaniu

-D, --dimension <dimension>

Wymiar ruchu, który ma być zebrany. Prawidłowe wymiary: apiproducts, devs, apps, apiproxy (domyślnie)

-d, --days <days>

Poprzednia liczba dni, od dnia bieżącego, na które mają zostać zebrane dane. Wartością domyślną jest 3.

Jeśli wskażesz -d, nie wpisuj również -s ani -z do ustawiania zakresu 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. Często jest to adres e-mail administratora systemu brzegowego lub administratora organizacji produkcyjnej.

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

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

-x, --excl_orgs <elementy>

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

-n, --include_envs <elementy>

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

-e, --excl_envs <elementy>

Rozdzielona przecinkami lista środowisk, które mają zostać uwzględnione 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 „01.03.2016 00:00”.

Jeśli wskażesz -d, nie podawaj też znaków -s ani -z do ustawiania zakresu 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 podawaj też znaków -s ani -z do ustawiania zakresu czasu.

-t, --time_unit <jednostka_czasu>

Jednostka czasu dla danych o natężeniu ruchu. Domyślny tydzień. Domyślne jednostki według godziny. Prawidłowe jednostki czasu: sekunda, minuta, godzina, dzień, 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ć, wyślij zgłoszenie do zespołu pomocy Apigee.

-r, --apigee_analytics_secret <apigee_analytics_secret>

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

-R, --include_curl_commands

Na potrzeby debugowania w danych wyjściowych umieść 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 z komputera z dostępem do internetu, korzystając z poleceń cURL. Musisz powtórzyć ten proces dla każdej organizacji i środowiska produkcyjnego w instalacji Edge.

Aby zebrać dane o ruchu w określonej organizacji i środowisku w określonym przedziale czasu, użyj tego polecenia 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"

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, z których pochodzą dane. Zwróć uwagę, że polecenie cURL używa kodu szesnastkowego %20 dla 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 zarządzania Google Analytics. Zakres czasu zawiera znaki zakodowane za pomocą adresu 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"

Odpowiedź powinna się pojawić w tym formularzu:

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

Aby przesłać te dane do Apigee z komputera 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 to Twoje dane logowania do Apigee uzyskane od pomocy Apigee.
  • {org_name} określa organizację.
  • {"environments"...} zawiera wyniki polecenia cURL, które zostało użyte do zebrania statystyk powyżej.