API-Traffic-Daten in Apigee hochladen – Beta-Release

Edge for Private Cloud Version 4.18.01

Alle Edge for Private Cloud-Kunden müssen Statistiken über API-Proxy-Traffic an Apigee senden. Apigee empfiehlt Kunden, diese Informationen einmal täglich hochzuladen, möglicherweise durch Erstellen eines Cronjobs.

Sie müssen die Daten für Ihre API-Produktionsbereitstellungen einreichen, jedoch nicht für APIs in Entwicklungs- oder Testbereitstellungen. In den meisten Edge-Installationen definieren Sie bestimmte Organisationen oder Umgebungen für Ihre Produktions-APIs. Die von Ihnen eingereichten Daten sind nur für diese Produktionsorganisationen und -umgebungen vorgesehen.

Um das Hochladen dieser Daten zu vereinfachen, stellt Apigee den Betarelease des Befehlszeilendienstprogramms apigee-analytics-collector bereit. Dieses Dienstprogramm sendet den Bericht zum API-Aufrufvolumen zurück an Apigee. Jeder Edge für die Private Cloud-Installation kann dieses Dienstprogramm verwenden, um Verkehrsdaten abzurufen und an Apigee zu melden.

Auf die vom Apigee-Analytics-Collector hochgeladenen Daten zugreifen

Nachdem Sie Daten mit dem Dienstprogramm apigee-analytics-collector hochgeladen haben, können Sie sie in Apigee 360 ansehen.

Melden Sie sich in Apigee 360 an und wählen Sie die Option Nutzung aus. Auf der Seite Nutzung werden ein Nutzungsdiagramm und eine Tabelle mit Nutzungsdaten für jede Ihrer Edge-Organisationen angezeigt.

Apigee-Analytics-Collector installieren

Das Dienstprogramm apigee-analytics-collector ist ein RPM, den Sie mit dem Dienstprogramm apigee-service installieren.

Installationsort

Der Knoten, auf dem Sie das Dienstprogramm apigee-analytics-collector installieren, kann ein beliebiger Knoten sein, der auf die Edge-Verwaltungs-API auf dem Edge-Management-Server zugreifen kann. Sie können es direkt auf dem Verwaltungsserver, auf einem anderen Knoten der Edge-Installation oder auf einem separaten Knoten installieren, solange dieser Knoten API-Anfragen an den Verwaltungsserver senden kann.

Anforderungen an den Internetzugang

Installieren Sie das Dienstprogramm apigee-analytics-collector auf einer Maschine mit externem Internetzugang. Anschließend kann das Dienstprogramm apigee-analytics-collector Daten direkt in Apigee hochladen.

Wenn kein Knoten sowohl Zugriff auf die Edge-Verwaltungs-API auf dem Edge-Verwaltungsserver als auch mit externem Internetzugriff hat, können Sie die Edge-Verwaltungs-API verwenden, um die Traffic-Daten lokal zu speichern. Anschließend müssen Sie die Daten auf einen Rechner mit Internetzugang übertragen, um sie in Apigee hochladen zu können. In diesem Szenario müssen Sie das Dienstprogramm apigee-analytics-collector nicht verwenden. Weitere Informationen finden Sie unten unter Daten manuell auf Apigee hochladen.

Installation

Verwenden Sie den folgenden Befehl, um das Dienstprogramm apigee-analytics-collector zu installieren. Da Sie eine RPM-Datei installieren, muss dieser Befehl vom Root-Nutzer oder von einem Nutzer mit uneingeschränktem sudo-Zugriff ausgeführt werden. Für vollständigen Sudo-Zugriff bedeutet das, dass der Nutzer sudo-Zugriff hat, um dieselben Vorgänge wie Root auszuführen.

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

Apigee-Analytics-Collector ausführen

In diesem Abschnitt wird beschrieben, wie Sie das Dienstprogramm apigee-analytics-collector ausführen.

Nutzer zum Ausführen von Apigee Analytics-Collector konfigurieren

Sie müssen apigee-analytics-collector als Nicht-Root-Benutzer ausführen. Dieser Benutzer muss vollständigen sudo-Zugriff auf den Benutzer „apigee“ haben.

Wenn Sie einen Nutzer so konfigurieren möchten, dass er vollständigen sudo-Zugriff auf den Nutzer „apigee“ hat, verwenden Sie den Befehl „visudo“, um die sudoers-Datei hinzuzufügen und Folgendes hinzuzufügen:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

Dabei ist analyticsUser der Nutzername der Person, die das Dienstprogramm apigee-analytics-collector ausführt.

Nachdem Sie das Dienstprogramm apigee-analytics-collector installiert und den Benutzer konfiguriert haben, können Sie das Dienstprogramm testen. Führen Sie dazu den Hilfebefehl für das Dienstprogramm apigee-analytics-collector aus:

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

Erforderliche Informationen zum Ausführen von Apigee Analytics-Collector

Sie benötigen die folgenden Informationen, um den Befehl apigee-analytics-collector auszuführen und Daten an Apigee weiterzuleiten:

  • apigee_mgmt_api_uri: Basis-URL der Edge API auf Ihrem Verwaltungsserver. Diese URL hat in der Regel das folgende Format:
    http://ms_IP:8080/v1

    Dabei ist ms_IP die IP-Adresse oder Ihr Verwaltungsserver und 8080 der Port, der von der Edge API verwendet wird. Wenn Sie einen DNS-Eintrag für die Edge API erstellt haben, hat die URL das folgende Format:
    http://ms_DNS/v1

    Wenn Sie TLS in der Edge Management API aktivieren, hat sie das folgende Format:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: Die E-Mail-Adresse eines Kontos mit Zugriff auf die Edge /stats APIs. Dies ist häufig die E-Mail-Adresse des Edge-Systemadministrators oder die E-Mail-Adresse des Organisationsadministrators für Ihre Produktionsorganisationen.
  • apigee_mgmt_api_password: Das Edge-Passwort für das von apigee_mgmt_api_email angegebene Konto.
  • apigee_analytics_client_id und apigee_analytics_secret: Ihre Anmeldedaten zum Hochladen von Daten zu Apigee. Senden Sie ein Ticket beim Apigee-Support, um apigee_analytics_client_id und apigee_analytics_secret abzurufen.

Beispiele für Befehle

Unten sehen Sie einen Beispielbefehl zum Abrufen von Verkehrsdaten für alle Organisationen und Umgebungen in der Edge-Installation und zum Hochladen dieser Daten zu Apigee. Beachten Sie, wie Sie apigee-service verwenden, um den Befehl apigee-analytics-collector auszuführen:

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

Beachten Sie, dass der Befehl alle erforderlichen Informationen enthält, wie z. B. apigee_analytics_client_id und apigee_analytics_secret.

Die Ergebnisse sollten im folgenden Format angezeigt werden:

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

Verwenden Sie Befehlszeilenoptionen für den Befehl, um seine Aktionen zu steuern. Verwenden Sie die folgenden Optionen, um die Organisationen und Umgebungen anzugeben, die in den generierten Daten enthalten sein sollen:

  • -i, --include_orgs <durch Kommas getrennte Liste der Elemente>
  • -x, --excluded_orgs <durch Kommas getrennte Liste der Elemente>
  • -n, --include_envs <durch Kommas getrennte Liste der Elemente>
  • -e, --excluded_envs <durch Kommas getrennte Liste der Elemente>

Wenn Sie beispielsweise nur die Produktionsorganisationen und -umgebungen angeben möchten, verwenden Sie die Optionen -i (oder --include_orgs) und -n (oder --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

In diesem Beispiel erfassen Sie nur Daten aus der Produktionsumgebung von myOrg.

Verwenden Sie die Option -S, um die Daten auf einen Bildschirm zu übertragen, um sie zu untersuchen, bevor sie an Apigee gesendet werden:

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

Bei der Option -S wird der Datenupload in Apigee weggelassen. Sie können den Befehl dann noch einmal ohne die Option -S ausführen, um die Daten an Apigee zu senden.

Ein Grund für die Verwendung der Option -S ist die Möglichkeit, verschiedene Datentypen lokal anzuzeigen. Apigee erfordert nur das Hochladen von API-Verkehrsdaten. Mit der Option -D können Sie jedoch Daten zu API-Produkten, Entwicklern, Apps oder API-Proxys anzeigen lassen. Im folgenden Beispiel werden die Optionen -D und -S verwendet, um Entwicklerdaten lokal anzuzeigen:

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

Verwenden Sie die Option -v, um eine ausführliche Ausgabe zu erhalten, und die Option -R, um die von apigee-analytics-collector generierten curl-Befehle anzuzeigen:

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

Der nächste Abschnitt enthält eine vollständige Liste der Befehlszeilenoptionen.

Befehlsparameter

In der folgenden Tabelle sind alle Optionen für das Dienstprogramm apigee-analytics-collector aufgeführt:

Befehl

Verwendung

-h, --help

Informationen zur Ausgabenutzung

-D, --dimension <dimension>

Die zu erfassende Traffic-Dimension. Gültige Dimensionen: apiproducts, devs, apps, apiproxy (Standardeinstellung)

-d, --days <days>

Die vergangene Anzahl von Tagen ab dem aktuellen Datum der zu erfassenden Daten. Der Standardwert ist 3.

Wenn Sie -d angeben, dürfen Sie nicht auch -s und -z angeben, um einen Zeitraum festzulegen.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL zur Edge Management API.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

Die E-Mail-Adresse eines Kontos mit Zugriff auf die Edge /stats APIs. Dies ist häufig die E-Mail-Adresse des Edge-Systemadministrators oder die E-Mail-Adresse des Organisationsadministrators für Ihre Produktionsorganisationen.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Passwort, das mit dem durch -u angegebenen Edge-Management-API-E-Mail-Konto verknüpft ist.

-i, --include_orgs <items>

Durch Kommas getrennte Liste der Organisationen, die in die Ausgabe aufgenommen werden sollen.

-x, --exclude_orgs <items>

Durch Kommas getrennte Liste der Organisationen, die aus der Ausgabe ausgeschlossen werden sollen.

-n, --include_envs <items>

Durch Kommas getrennte Liste der Umgebungen, die in die Ausgabe einbezogen werden sollen.

-e, --excluded_envs <items>

Durch Kommas getrennte Liste der Umgebungen, die in der Ausgabe enthalten sein sollen.

-o, --output <path>

Pfad und Dateiname zum Speichern der Ausgabe.

-s, --time_range_start <time_range_start>

Zeitraum für den Beginn der Abfrage von Zugriffsstatistiken im Format "03/01/2016 00:00".

Wenn Sie „-d“ angeben, müssen Sie nicht auch „-s“ und „-z“ angeben, um einen Zeitraum festzulegen.

-z, --time_range_end <time_range_end>

Ende des Zeitraums für die Abfrage von Zugriffsstatistiken im Format „04/01/2016 24:00“.

Wenn Sie „-d“ angeben, müssen Sie nicht auch „-s“ und „-z“ angeben, um einen Zeitraum festzulegen.

-t, --time_unit <time_unit>

Zeiteinheit für Verkehrsdaten. Standardwoche. Standardeinheiten nach Stunde. Gültige Zeiteinheiten: Sekunde, Minute, Stunde, Tag, Woche.

-S, --standard_output

Schreiben Sie die Ausgabe in das Terminal (stdout), anstatt sie in Apigee hochzuladen.

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

Ihre ID zum Hochladen von Daten zu Apigee. Senden Sie hierfür ein Ticket beim Apigee-Support.

-r, --apigee_analytics_geheimer <apigee_analytics_secret>

Ihr Secret zum Hochladen von Daten zu Apigee. Senden Sie hierfür ein Ticket beim Apigee-Support.

-R, --include_curl_commands

Fügen Sie die generierten cURL-Befehle zur Fehlerbehebung in die Ausgabe ein.

-v, --ausführlich

Ausführliche Ausgabe anzeigen

Daten manuell in Apigee hochladen

Apigee empfiehlt die Installation des Dienstprogramms apigee-analytics-collector auf einer Maschine mit externem Internetzugang. Anschließend kann das Dienstprogramm apigee-analytics-collector Daten direkt in Apigee hochladen.

Wenn der Computer jedoch keinen externen Internetzugang hat, verwenden Sie die Edge Management API, um Verkehrsdaten zu erfassen, und laden Sie diese dann mit cURL-Befehlen von einem Computer mit Internetzugang in Apigee hoch. Sie müssen diesen Vorgang für jede Produktionsorganisation und Umgebung in Ihrer Edge-Installation wiederholen.

Verwenden Sie den folgenden cURL-Befehl, um Trafficdaten für eine bestimmte Organisation und Umgebung für ein bestimmtes Zeitintervall zu erfassen:

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"

Dieser Befehl verwendet die Edge Get API Messagecount API. Dabei gilt:

  • apigee_mgmt_api_email:apigee_mgmt_api_password gibt die E-Mail-Adresse eines Kontos mit Zugriff auf die Edge /stats APIs an.
  • <ms_IP> ist die IP-Adresse oder der DNS-Name des Edge Management Servers.
  • {org_name} und {env_name} geben die Organisation und Umgebung an.
  • apiproxy ist die Dimension, die Metriken nach API-Proxys gruppiert.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour gibt den Zeitraum an, der in Zeiteinheiten der zu erfassenden Messwerte unterteilt ist. Beachten Sie, dass der cURL-Befehl den Hexadezimalcode %20 für die Leerzeichen im Zeitraum verwendet.

Verwenden Sie beispielsweise den folgenden Verwaltungs-API-Aufruf, um die Anzahl der API-Proxy-Nachrichten stündlich über einen Zeitraum von 24 Stunden zu erfassen. „timeRange“ enthält URL-codierte Zeichen.

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"

Es sollte eine Antwort im Formular angezeigt werden:

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

Verwenden Sie den folgenden cURL-Befehl, um diese Daten dann von einem Computer mit Internetzugang in Apigee hochzuladen:

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"...}'

Dabei gilt:

  • apigee_analytics_client_id:apigee_analytics_secret geben Ihre Anmeldedaten zum Hochladen von Daten zu Apigee an, die Sie vom Apigee-Support erhalten haben.
  • {org_name} gibt die Organisation an.
  • {"environments"...} enthält die Ergebnisse des cURL-Befehls, den Sie zum Erfassen der obigen Statistiken verwendet haben.