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

Edge for Private Cloud w wersji 4.18.01

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, na przykład przez utworzenie 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. Przesyłane dane dotyczą tylko tych organizacji i środowisk produkcyjnych.

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 je wyświetlić w Apigee 360.

Aby wyświetlić dane, zaloguj się w Apigee 360 i wybierz opcję Użycie. Na stronie Korzystanie znajdziesz wykres i tabelę z danymi o korzystaniu z usług w przypadku każdej z Twoich organizacji w Edge.

Instalowanie apigee-analytics-collector

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

Gdzie zainstalować

Węzeł, na którym instalujesz narzędzie apigee-analytics-collector, może być dowolnym węzłem, który może uzyskać dostęp do interfejsu Edge Management API na serwerze Edge Management. 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. 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. 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, to polecenie musi być wykonywane przez użytkownika root lub użytkownika, który ma pełny dostęp sudo. W przypadku pełnego dostępu sudo oznacza to, że użytkownik ma dostęp sudo do wykonywania tych samych operacji co użytkownik root.

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

Uruchamianie apigee-analytics-collector

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

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

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 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, oraz przekazanie danych do Apigee:

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API w systemie zarządzania, Serwer 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 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 podano przykładowe polecenie służące do pobierania danych o ruchu w przypadku wszystkich organizacji i środowisk w instalacji Edge oraz przesyłania tych danych 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

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

Powinny się wyświetlić wyniki w postaci:

[
  {
    "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. 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 <comma-separated list of items>
  • -e, --wyklucz_środki <rozdzielana przecinkami lista produktów>

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 zdumpować dane na ekran, aby je sprawdzić 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. 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

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 do zebrania. Prawidłowe wymiary: apiproducts, devs, apps, apiproxy (domyślny).

-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 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 <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, --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 chcesz uwzględnić w danych wyjściowych.

-e, --exclude_envs <items>

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

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

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

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

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 danych o natężeniu ruchu. Domyślny tydzień. Domyślne jednostki według godzin. 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;

Identyfikator służący do 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. Aby uzyskać dostęp, prześlij zgłoszenie do zespołu pomocy Apigee.

-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 na komputerze 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 maszyna nie ma dostępu do internetu, użyj interfejsu Edge management API do zbierania danych o ruchu, a następnie użyj poleceń cURL, aby przesłać je do Apigee z maszyny z dostępem do internetu. Musisz powtórzyć ten proces w przypadku każdej organizacji produkcyjnej i środowiska produkcyjnego w instalacji 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 Edge /stats API.
  • <ms_IP> to adres IP lub nazwa DNS serwera zarządzającego Edge.
  • {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&timeUnit=hour określa zakres czasu podzielony 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 zebrać liczbę wiadomości przez proxy interfejsu API co godzinę przez 24 godziny, użyj tego wywołania interfejsu API zarządzania. 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ę.
  • {&quot;environments&quot;...} zawiera wyniki polecenia cURL, które zebranych w ramach powyższych statystyk.