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

Edge for Private Cloud w wersji 4.17.09

Wszyscy klienci Edge for Private Cloud muszą przesyłać do Apigee statystyki dotyczące ruchu przez serwer proxy interfejsu API. Apigee zaleca, aby klienci przesyłali te informacje raz dziennie, najlepiej przez utworzenie zadania cron.

Musisz przesłać dane dotyczące wdrożeń produkcyjnych interfejsów API, ale nie interfejsów API we wdrożeniach programistycznych ani testowych. W większości instalacji Edge musisz zdefiniować konkretne organizacje lub środowiska dla interfejsów API w wersji produkcyjnej. Przesyłane dane dotyczą tylko tych organizacji i środowisk produkcyjnych.

Aby ułatwić przesyłanie tych danych, firma Apigee udostępnia wersję beta narzędzia wiersza poleceń apigee-analytics-collector. To narzędzie wysyła z powrotem do Apigee raport o liczbie wywołań interfejsu API. Każda instalacja Edge for Private Cloud może używać tego narzędzia do pobierania i raportowania danych o ruchu 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ć te dane, zaloguj się w usłudze Apigee 360 i wybierz opcję Użycie. Na stronie Wykorzystanie wyświetlane są wykres wykorzystania i tabela danych o wykorzystaniu dotyczące poszczególnych organizacji Edge.

Instalowanie apigee-analytics-collector

Narzędzie apigee-analytics-collector to usługa RPM, którą instalujesz za pomocą narzędzia apigee-service.

Gdzie zainstalować

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

Wymagania dotyczące dostępu do internetu

Zainstaluj narzędzie apigee-analytics-collector na maszynie z zewnętrznym dostępem do internetu. Wtedy narzędzie apigee-analytics-collector może przesłać dane bezpośrednio do Apigee.

Jeśli nie ma węzła, który ma dostęp do interfejsu Edge Management API na serwerze Edge Management i dostęp do internetu zewnętrznego, możesz użyć interfejsu Edge Management API, aby zapisać dane o ruchu lokalnie. Następnie musisz przenieść dane do maszyny z dostępem do internetu, aby można je było przesłać do Apigee. W tym scenariuszu 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. Instalujesz plik RPM, więc to polecenie musi wykonać użytkownik root lub użytkownik z pełnym dostępem do sudo. Pełny dostęp sudo oznacza, że użytkownik ma dostęp sudo i może wykonywać te same operacje co użytkownik root.

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

Uruchamiany apigee-analytics-collect

W tej sekcji opisaliśmy, jak uruchomić narzędzie apigee-analytics-collector.

Konfigurowanie użytkownika do uruchamiania 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 konta „apigee”.

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

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

gdzie analyticsUser to nazwa użytkownika, który uruchomił narzędzie apigee-analytics-collector.

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

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

Informacje wymagane do uruchomienia apigee-analytics-collector

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

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API na serwerze zarządzania. Adres URL ma zwykle postać:
    http://ms_IP:8080/v1

    gdzie ms_IP to adres IP serwera zarządzania, a 8080 to port używany przez Edge API. Jeśli utworzysz wpis DNS dla interfejsu Edge API, adres URL będzie mieć postać:
    http://ms_DNS/v1

    Jeśli włączysz protokół TLS w interfejsie Edge management API, adres URL będzie mieć 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 /stats Edge. Często będzie to adres e-mail administratora systemu Edge lub adres e-mail administratora organizacji w przypadku organizacji produkcyjnych.
  • apigee_mgmt_api_password: hasło do Edge dla konta określonego przez parametr apigee_mgmt_api_email.
  • apigee_analytics_client_idapigee_analytics_secret: Twoje dane logowania do przesyłania danych do Apigee. Prześlij zgłoszenie do zespołu pomocy Apigee, aby uzyskać wartości apigee_analytics_client_id i apigee_analytics_secret.

Przykładowe polecenia

Poniżej znajduje się przykładowe polecenie pozwalające pobrać dane o ruchu we wszystkich organizacjach i środowiskach w instalacji Edge oraz przesłać te dane do Apigee. Zwróć uwagę, że do uruchomienia polecenia apigee-analytics-collector używasz 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

Zauważ, że to polecenie zawiera wszystkie wymagane informacje, np. apigee_analytics_client_id i apigee_analytics_secret.

Wyniki powinny wyglądać w takim formacie:

[
  {
    "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ń, aby kontrolować działanie polecenia. Aby określić organizacje i środowiska, które mają być uwzględnione w wygenerowanych danych, użyj tych opcji:

  • -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 <lista elementów oddzielonych przecinkami>

Aby na przykład określić tylko organizacje i środowiska produkcyjne, użyj opcji -i (lub --include_orgs) oraz -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 dane są zbierane tylko ze środowiska produkcyjnego organizacji myOrg.

Aby zdumpować dane na ekranie i przeanalizować 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 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 przesłania danych o ruchu w interfejsie API, ale opcja -D umożliwia wyświetlanie danych o produktach, deweloperach, aplikacjach lub serwerach proxy interfejsu API. Przykład poniżej używa opcji -D-S, aby wyświetlić dane dewelopera lokalnie:

>  /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ółowy wynik, oraz opcję -R, aby wyświetlić 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

Tabela poniżej zawiera pełny zestaw opcji narzędzia apigee-analytics-collector:

Command

Użycie

-h, --help

Wyjściowe informacje o wykorzystaniu

-D, --dimension <wymiar>

Wymiar ruchu do zebrania. Prawidłowe wymiary: apiproducts, devs, apps, apiproxy (domyślne)

-d, --days <days>

Liczba dni od bieżącej daty, w których mają być zbierane dane. Wartość domyślna to 3.

Jeśli podasz parametr -d, nie podawaj też parametrów -s i -z, aby ustawić zakres czasowy.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

Adres URL interfejsu Edge Management API.

-u, --apigee_mgmt_api_email &lt;apigee_mgmt_api_email&gt;

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

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

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

-i, --include_orgs <items>

Lista organizacji do uwzględnienia w wyjściu, rozdzielona przecinkami.

-x, --excluded_orgs <elementy>

Lista organizacji rozdzielana przecinkami, które mają zostać wykluczone z wyjścia.

-n, --include_envs <items>

Lista środowisk oddzielonych przecinkami, które mają być uwzględnione w wyjściu.

-e, --exclude_envs <items>

Lista środowisk oddzielonych przecinkami, które mają być uwzględnione w wyjściu.

-o, --output <ścieżka>

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

-s, --time_range_start <time_range_start>

Zakres czasowy, od którego mają być pobierane dane o statystykach ruchu, w formacie „03/01/2016 00:00”.

Jeśli podasz parametr -d, nie podawaj też parametrów -s i -z, aby ustawić zakres czasowy.

-z, --time_range_end <time_range_end>

Koniec zakresu czasowego, na który mają być pobierane statystyki ruchu, w formacie „04/01/2016 24:00”.

Jeśli podasz parametr -d, nie podawaj też parametrów -s i -z, aby ustawić zakres czasowy.

-t, --time_unit <time_unit>

Jednostka czasu dotycząca danych o ruchu. Domyślny tydzień. Domyślne jednostki według godzin. Akceptowane jednostki czasu: sekunda, minuta, godzina, dzień, tydzień.

-S, --standard_output

zapisz dane wyjściowe w terminalu (stdout) zamiast przesyłać je do Apigee;

-c, --apigee_analytics_client_id &lt;apigee_analytics_client_id&gt;

Twój identyfikator przesyłania danych do Apigee. Aby je uzyskać, prześlij zgłoszenie do zespołu pomocy Apigee.

-r, --apigee_analytics_secret <apigee_analytics_secret>

Obiekt tajny do przesyłania danych do Apigee. Aby je uzyskać, prześlij zgłoszenie do zespołu pomocy Apigee.

-R, --include_curl_commands

Uwzględnij wygenerowane polecenia cURL w wyjściu na potrzeby debugowania.

-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 za pomocą komputera z dostępem do internetu. Musisz powtórzyć ten proces w przypadku każdej organizacji produkcyjnej 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/?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM"

To polecenie korzysta z interfejsu Edge Get API zliczającego wiadomości. 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.
  • Organizacje {org_name} i {env_name} określają organizację i środowisko.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM określa zakres czasowy zbierania statystyk. Zwróć uwagę, że polecenie cURL używa kodu szesnastkowego %20 dla spacji w zakresie czasowym.

Aby np. zebrać statystyki z okresu 24-godzinnego, użyj tego polecenia:

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/?select=sum(message_count)&timeRange=08/29/2016%2000:00~08/30/2016%2000:00"

Powinna pojawić się odpowiedź w formie:

{
  "environments" : [ {
    "metrics" : [ {
      "name" : "sum(message_count)",
      "values" : [ "42.0" ]
    } ],
    "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 poświadczenia umożliwiające przesyłanie danych do Apigee, które uzyskasz od zespołu pomocy Apigee.
  • {org_name} określa organizację.
  • {"environments"...} zawiera wyniki polecenia cURL użyte do zbierania powyższych statystyk.