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

Edge for Private Cloud w wersji 4.17.05

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

Musisz przesłać dane dotyczące wdrożeń produkcyjnych interfejsów API, ale nie interfejsów API w trakcie opracowywania lub testowania wdrożeń. W większości instalacji Edge musisz zdefiniować konkretne organizacje lub środowisk produkcyjnych interfejsów API. Przesłane przez Ciebie dane dotyczą wyłącznie środowiska produkcyjnego, organizacji i środowisk.

Aby ułatwić przesyłanie tych danych, Apigee udostępnia wersję beta wiersza poleceń apigee-analytics-collector. za media. To narzędzie wysyła raport liczby wywołań interfejsu API z powrotem do Apigee. Na każdym brzegu Instalacja chmury prywatnej może używać tego narzędzia do pobierania i raportowania danych o ruchu Apigee.

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

Po przesłaniu danych za pomocą narzędzia apigee-analytics-collector Możesz zobaczyć go w Apigee 360.

Aby wyświetlić dane, zaloguj się w Apigee 360 i wybierz opcję Użycie. Na stronie Wykorzystanie znajdują się wykres wykorzystania i tabela danych o wykorzystaniu dotyczące poszczególnych Organizacje brzegowe.

Instalowanie apigee-analytics-collector

apigee-analytics-collector to RPM zainstalowany przy użyciu narzędzia apigee-service.

Gdzie zainstalować

Węzeł, w którym instalujesz narzędzie apigee-analytics-collector, może być dowolnym który ma dostęp do interfejsu Edge Management API na serwerze zarządzania brzegiem. Możesz ją zainstalować bezpośrednio na serwerze zarządzania, w innym węźle instalacji Edge lub w oddzielnym tak długo, jak ten węzeł może wysyłać żądania do interfejsu API do serwera zarządzania.

Dostęp do internetu wymagania

Zainstaluj narzędzie apigee-analytics-collector w komputer z zewnętrznym dostępem do internetu. Następnie narzędzie apigee-analytics-collector może przesłać bezpośrednio do Apigee.

Jeśli na serwerze zarządzania brzegiem nie ma węzła z dostępem jednocześnie do interfejsu Edge Management API a poza tym z zewnętrznym dostępem do internetu możesz użyć interfejsu Edge Management API, aby zmniejszyć ruch. lokalnie. Następnie musisz przenieść dane na urządzenie z dostępem do internetu, aby mogły zostać przesłane na Apigee. W takim przypadku nie musisz korzystać z narzędzia apigee-analytics-collector. Zobacz Ręczne przesyłanie danych do Apigee poniżej znajdziesz więcej.

Instalacja

Użyj tego polecenia, aby zainstalować narzędzie apigee-analytics-collector. Ponieważ jeśli instalujesz plik RPM, to polecenie musi wykonać użytkownik root lub pełny dostęp do sudo. Aby uzyskać pełny dostęp sudo, oznacza to, że użytkownik ma dostęp sudo, który pozwala wykonać to samo jako root.

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

Uruchamianie apigee-analytics-collector

W tej sekcji dowiesz się, jak uruchomić narzędzie apigee-analytics-collector.

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

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

Aby skonfigurować użytkownika, aby miał pełny dostęp sudo do „apigee” , należy użyć funkcji „visudo”, polecenie do wyedytuj plik sudoers, dodając:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

gdzie analyticsUser to nazwa użytkownika uruchomionego narzędzia narzędzia apigee-analytics-collector.

Po zainstalowaniu narzędzia apigee-analytics-collector i konfigurując użytkownika, możesz przetestować to narzędzie, uruchamiając polecenie pomocy 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-collect

Aby uruchomić polecenie apigee-analytics-collector, oraz przekazanie danych do Apigee:

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API w systemie zarządzania, Serwer Adres URL ma zwykle następujący format:
    http://ms_IP:8080/v1

    Gdzie ms_IP to adres IP lub Twój serwer zarządzania, a kod 8080 to port używany przez interfejs Edge API. Jeśli utworzono wpis DNS dla interfejsu Edge API, adres URL znajduje się w formularz:
    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 Edge /stats interfejsy API. Często to będzie adresem e-mail administratora systemu Edge lub adresu e-mail administratora organizacji w organizacjach produkcyjnych.
  • apigee_mgmt_api_password: hasło do konta 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, aby uzyskać apigee_analytics_client_id i apigee_analytics_secret.

Przykładowe polecenia

Poniżej znajduje się przykładowe polecenie do pobrania danych o ruchu dla wszystkich organizacji i w instalacji Edge i przesyłając te dane do Apigee. Zwróć uwagę na to, użyj apigee-service do uruchom polecenie 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 to polecenie zawiera wszystkie wymagane informacje, takie jak 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łania polecenia. Użyj następujących opcji, aby określ organizacje i środowiska do uwzględnienia w wygenerowanych danych:

  • -i, --include_orgs <rozdzielana przecinkami lista produktów>
  • -x, --wyklucz_orgs <rozdzielana przecinkami lista produktów>
  • -n, --include_envs <rozdzielana przecinkami lista produktów>
  • -e, --wyklucz_środki <rozdzielana przecinkami lista produktów>

Aby na przykład określić tylko organizacje i środowiska produkcyjne, użyj funkcji Opcje -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 skopiować dane na ekran w celu ich sprawdzenia 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 dane. prześlij do Apigee. Następnie możesz ponownie uruchomić polecenie bez opcji -S, aby wysłać dane do Apigee.

Jednym z powodów, dla których warto używać znaku -S pozwala wyświetlać lokalnie różne typy danych. Apigee wymaga tylko przesyłania danych o ruchu przez interfejsy API, ale opcja -D umożliwia wyświetlanie usług, deweloperów, aplikacji ani serwerów proxy interfejsów API. W przykładzie poniżej użyto opcji -D i -S do wyświetlania danych 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 

Dołącz opcję -v, aby uzyskać szczegółowe dane wyjściowe oraz opcję -R. by zobaczyć polecenia curl wygenerowane przez narzędzie 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, --wymiar &lt;dimension&gt;

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

-d, --dni <days>

Liczba dni, które mają zostać zebrane, licząc od bieżącej daty. domyślna wartość to 3.

Jeśli podasz -d, wykonaj nie określaj też właściwości -s i -z, aby ustawić godzinę; zakres dat.

-m, --apigee_mgmt_api_uri &lt;apigee_mgmt_api_uri&gt;

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 Edge /stats. Często jest to Adres e-mail administratora systemu brzegowego lub adres e-mail administratora organizacji dla w organizacjach produkcyjnych.

-p, --apigee_mgmt_api_password &lt;apigee_mgmt_api_password&gt;

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

-i, --include_orgs &lt;items&gt;

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

-x, --excluded_orgs &lt;items&gt;

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

-n, --include_envs &lt;items&gt;

Rozdzielona przecinkami lista środowisk, które chcesz uwzględnić w danych wyjściowych.

-e, --excluded_envs &lt;items&gt;

Rozdzielona przecinkami lista środowisk, które chcesz uwzględnić w danych wyjściowych.

-o, --output &lt;path&gt;

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

-s, --time_range_start &lt;time_range_start&gt;

Początek zakresu czasu, w którym mają być wysyłane zapytania o statystyki natężenia ruchu, w formacie: „03/01/2016 00:00”.

Jeśli wybierzesz opcję -d, nie dodawaj również -s ani -z, aby ustawić zakres czasu.

-z, --time_range_end &lt;time_range_end&gt;

Koniec zakresu czasu na potrzeby zapytań o statystyki ruchu w formacie: „04/01/2016 24:00”.

Jeśli wybierzesz opcję -d, nie dodawaj również -s ani -z, aby ustawić zakres czasu.

-t, --time_unit &lt;time_unit&gt;

Jednostka czasu 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

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. Prześlij zgłoszenie do zespołu pomocy Apigee do uzyskać.

-r, --apigee_analytics_secret &lt;apigee_analytics_secret&gt;

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

-R, --include_curl_commands

W danych wyjściowych umieść wygenerowane polecenia cURL na potrzeby debugowania.

-v, --wyczerpująco

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

Ręczne przesyłanie danych do Apigee

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

Jeśli jednak komputer nie ma zewnętrznego dostępu do internetu, użyj interfejsu Edge Management API, aby zbierać dane o ruchu, a następnie za pomocą poleceń cURL przesłać je do Apigee z komputera dostęp do internetu. Musisz powtórzyć ten proces dla każdej organizacji produkcyjnej w środowisku Edge.

Użyj poniższego polecenia cURL, aby zebrać dane dotyczące ruchu w określonej organizacji i środowiska 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 API liczby wiadomości interfejsu Edge Get 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.
  • &lt;ms_IP&gt; to adres IP lub nazwa DNS urządzenia Edge Serwer zarządzania.
  • {org_name} i {org_name} określają organizacji i środowiska.
  • apiproxy to wymiar, który grupuje wskaźniki według serwerów proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&amp;timeUnit=hour zawiera informacje zakresu czasu podzielonego na jednostki czasowe danych do zebrania. Zwróć uwagę, że polecenie cURL używa kodu szesnastkowego %20 dla spacji w zakresie czasowym.

Aby na przykład zbierać informacje o liczbie komunikatów serwera proxy interfejsu API co godzinę w okresie 24 godzin, użyj funkcji obserwowane: do interfejsu Management API. Parametr timeRange zawiera znaki zakodowane w adresie 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 mieć następujący format:

{
  "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 maszyny z dostępem do internetu, użyj tego polecenia cURL polecenie:

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śl Twój dane logowania na potrzeby przesyłania danych do Apigee uzyskane od zespołu pomocy Apigee.
  • {org_name} określa organizację.
  • {"environments"...} zawiera wyniki polecenia cURL, które zebranych w ramach powyższych statystyk.