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

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 Wiersz 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.

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

Aby móc przesyłać dane do Apigee, musisz skontaktować się z zespołem pomocy Apigee Edge w celu dokończenia wprowadzenia. proces tworzenia konta.

Instalowanie apigee-analytics-collector

apigee-analytics-collector to RPM instalowany 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 przesyłać dane 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 i dostępu do zewnętrznego internetu, możesz użyć interfejsu Edge Management API, aby zapisać 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 używać apigee-analytics-collector za media. Zobacz Ręczne przesyłanie danych do Apigee

Instalacja

Aby zainstalować narzędzie apigee-analytics-collector, użyj poniższego polecenia. 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 opisano, jak uruchomić narzędzie apigee-analytics-collector.

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

Musisz uruchomić aplikację apigee-analytics-collector jako użytkownik inny 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 biegu 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ędzie 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, potrzebujesz tych informacji i przekazywanie danych do Apigee:

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API w zarządzaniu Serwer Adres URL ma zwykle następującą postać:

    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 Interfejsy API Edge /stats. 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 z konta określone 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 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 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 funkcji -i (lub --include_orgs) i -n (lub --include_envs) – opcje:

/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 zbadania ich przed wysłaniem do Apigee, użyj funkcji -S opcja:

/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 uruchomić polecenie ponownie bez opcji -S, aby wysłać do Apigee.

Jednym z powodów, dla których warto korzystać z narzędzia -S pozwala wyświetlać lokalnie różne typy danych. Apigee wymaga tylko przesyła dane o ruchu w interfejsie API, ale opcja -D umożliwia wyświetlanie danych o tym interfejsie usług, deweloperów, aplikacji ani serwerów proxy interfejsów API. W przykładzie poniżej użyto atrybutów -D i Opcje wyświetlania danych dewelopera za pomocą -S 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ółowe dane wyjściowe oraz opcja -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

Poniższa tabela zawiera pełny zestaw opcji Narzędzie apigee-analytics-collector:

Polecenie Opis
-h, --help

Wyjściowe informacje o wykorzystaniu

-D, --dimension dimension

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

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

Liczba danych, które należy zebrać w minionych dniach, począwszy od bieżącej daty. domyślna wartość to 3.

Jeśli podasz -d, nie określaj też dodatkowo -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. Jest to zwykle Adres e-mail administratora systemu brzegowego lub adres e-mail administratora organizacji dla 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

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, które mają zostać uwzględnione w danych wyjściowych.

-e, --exclude_envs items

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

Początek zakresu czasu, w którym należy przesyłać zapytania o statystyki natężenia ruchu, w formacie „MM/DD/YYYY HH:MM”.

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

-z, --time_range_end time_range_end

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

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

-t, --time_unit time_unit

Jednostka czasu 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 pogrupowanych na 52 osobne wpisów (po jednym na tydzień).

-S, --standard_output

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

-c, --apigee_analytics_client_id apigee_analytics_client_id

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

-r, --apigee_analytics_secret apigee_analytics_secret

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

-R, --include_curl_commands

W danych wyjściowych umieść wygenerowane polecenia curl 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 komputer 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, użyj interfejsu Edge Management API, aby zbierać dane o ruchu, a potem za pomocą poleceń curl przesłać je do Apigee z maszyna z dostęp do internetu. Musisz powtórzyć ten proces w przypadku każdej organizacji produkcyjnej w środowisku Edge.

Aby zebrać dane o ruchu w określonej organizacji – użyj tego polecenia curl ś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.
  • ms_IP to adres IP lub nazwa DNS urządzenia Edge Serwer zarządzania.
  • org_name i env_name określają organizacji i środowiska.
  • apiproxy to wymiar grupujący wskaźniki według serwerów proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour określa zakresu czasu podzielonego na jednostki czasowe danych do zebrania. Zwróć uwagę, że Polecenie curl używa kodu szesnastkowego %20 dla spacji w czasie zakres dat.

Aby na przykład zbierać informacje o liczbie komunikatów serwera proxy interfejsu API co godzinę w okresie 24 godzin, użyj funkcji obserwowane: Wywołanie 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"

(Pamiętaj, że timeRange zawiera znaki zakodowane w adresie URL).

Odpowiedź powinna mieć następujący format:

{
  "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 Polecenie 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śl dane logowania na potrzeby przesyłania danych do Apigee uzyskane z Apigee.
  • org_name określa nazwę organizacji.
  • "environments"... zawiera wyniki polecenia curl, które zebranych w ramach powyższych statystyk.