Все клиенты Edge for Private Cloud обязаны отправлять в Apigee статистику о трафике прокси-сервера API. Apigee рекомендует клиентам загружать эту информацию один раз в день, возможно, создав задание cron.
Вы должны предоставить данные для своих производственных развертываний API, но не для API, находящихся в стадии разработки или тестирования. В большинстве установок Edge вы определяете конкретные организации или среды для своих рабочих API. Данные, которые вы отправляете, предназначены только для этих производственных организаций и сред.
Чтобы помочь в загрузке этих данных, Apigee предоставляет бета-версию утилиты командной строки apigee-analytics-collector
. Эта утилита отправляет отчет об объеме вызовов API обратно в Apigee. Каждая установка Edge для частного облака может использовать эту утилиту для получения и передачи данных о трафике в Apigee.
Обязательно: перед загрузкой данных обратитесь в службу поддержки Apigee.
Прежде чем вы сможете загрузить данные в Apigee, вам необходимо обратиться в службу поддержки Apigee Edge , чтобы завершить процесс регистрации.
Установите сборщик apigee-analytics-collector.
Утилита apigee-analytics-collector
— это пакет RPM, который вы устанавливаете с помощью утилиты apigee-service
.
Где установить
Узел, на котором вы устанавливаете утилиту apigee-analytics-collector
может быть любым узлом, который имеет доступ к API управления Edge на Edge Management Server. Вы можете установить его непосредственно на сервере управления, на другом узле установки Edge или на отдельном узле, если этот узел может отправлять запросы API к серверу управления.
Требования к доступу в Интернет
Установите утилиту apigee-analytics-collector
на машину с внешним доступом в Интернет. Затем утилита apigee-analytics-collector
сможет загрузить данные непосредственно в Apigee.
Если нет узла с доступом к API управления Edge на сервере Edge Management и доступом к внешнему Интернету, вы можете использовать API управления Edge для локального сохранения данных трафика. Затем вам необходимо перенести данные на компьютер с доступом в Интернет для загрузки в Apigee. В этом сценарии вам не нужно использовать утилиту apigee-analytics-collector
. Дополнительную информацию см. в разделе «Загрузка данных в Apigee вручную» .
Установка
Используйте следующую команду для установки утилиты apigee-analytics-collector
. Поскольку вы устанавливаете файл RPM, эту команду должен запускать пользователь root или пользователь, имеющий полный доступ к sudo. Полный доступ к sudo означает, что у пользователя есть доступ к sudo для выполнения тех же операций, что и у пользователя root.
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install
Запуск сборщика apigee-analytics-collector
В этом разделе описывается, как запустить утилиту apigee-analytics-collector
.
Настройка пользователя для запуска apigee-analytics-collector
Вы должны запустить apigee-analytics-collector
от имени пользователя без полномочий root. Этот пользователь должен иметь полный доступ sudo к пользователю «apigee».
Чтобы настроить пользователя на полный доступ sudo к пользователю «apigee», используйте команду «visudo» для редактирования файла sudoers, добавив:
analyticsUser ALL=(apigee) NOPASSWD: ALL
analyticsUser — это имя пользователя, запускающего утилиту apigee-analytics-collector
.
После установки утилиты apigee-analytics-collector
и настройки пользователя вы можете протестировать утилиту, запустив команду help для утилиты apigee-analytics-collector
:
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic --help
Информация, необходимая для запуска apigee-analytics-collector
Для запуска команды apigee-analytics-collector
и пересылки данных в Apigee вам потребуется следующая информация:
apigee_mgmt_api_uri
: базовый URL-адрес Edge API на вашем сервере управления. Этот URL-адрес обычно имеет следующую форму:http://ms_IP:8080/v1
Где ms_IP — это IP-адрес вашего сервера управления, а 8080 — это порт, используемый Edge API. Если вы создали запись DNS для Edge API, URL-адрес будет иметь вид:
http://ms_DNS/v1
Если вы включите TLS в API управления Edge, он будет иметь вид:
https://ms_IP:8080/v1 https://ms_DNS/v1
-
apigee_mgmt_api_email
: адрес электронной почты учетной записи с доступом к API Edge/stats
. Часто это адрес электронной почты системного администратора Edge или адрес электронной почты администратора вашей производственной организации. -
apigee_mgmt_api_password
: пароль Edge для учетной записи, указанной вapigee_mgmt_api_email
. -
apigee_analytics_client_id
и apigee_analytics_secret : ваши учетные данные для загрузки данных в Apigee. Отправьте заявку в службу поддержки Apigee Edge , чтобы получитьapigee_analytics_client_id
иapigee_analytics_secret
.
Примеры команд
Ниже показан пример команды для получения данных о трафике для всех организаций и сред в установке Edge и загрузки этих данных в Apigee. Обратите внимание, как вы используете apigee-service
для запуска команды 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
Обратите внимание, что команда содержит всю необходимую информацию, такую как ваш apigee_analytics_client_id и apigee_analytics_secret .
Вы должны увидеть результаты в виде:
[ { "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 } ] } ]
Используйте параметры командной строки для команды, чтобы управлять ее действиями. Используйте следующие параметры, чтобы указать организации и среды, которые необходимо включить в сгенерированные данные:
-
-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
Например, чтобы указать только производственные организации и среды, используйте параметры -i
(или --include_orgs
) и -n
(или --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
В этом примере вы собираете данные только из рабочей среды myOrg
.
Чтобы выгрузить данные на экран и просмотреть их перед отправкой в Apigee, используйте опцию -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
Опция -S
исключает загрузку данных в Apigee. Затем вы можете повторно запустить команду без опции -S
, чтобы отправить данные в Apigee.
Одна из причин использования опции -S
заключается в том, что вы можете локально отображать различные типы данных. Apigee требует только загрузки данных о трафике API, но опция -D
позволяет отображать данные о продуктах API, разработчиках, приложениях или прокси-серверах API. В приведенном ниже примере используются параметры -D
и -S
для локального отображения данных разработчика:
/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
Включите параметр -v
, чтобы получить подробный вывод, и параметр -R
, чтобы просмотреть команды curl, сгенерированные 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
Следующий раздел содержит полный список параметров командной строки.
Параметры команды
В следующей таблице приведен полный набор параметров утилиты apigee-analytics-collector
:
Команда | Описание |
---|---|
-h, --help | Вывод информации об использовании |
-D, --dimension dimension | Измерение трафика, которое необходимо собрать. Допустимые значения:
|
-d, --days days | Количество данных за прошлые дни, которые необходимо собрать, начиная с текущей даты. Значение по умолчанию — 3. Если вы укажете |
-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri | URL-адрес API управления Edge. |
-u, --apigee_mgmt_api_email apigee_mgmt_api_email | Адрес электронной почты учетной записи с доступом к API Edge |
-p, --apigee_mgmt_api_password apigee_mgmt_api_password | Пароль, связанный с учетной записью электронной почты API управления Edge, указанной с помощью |
-i, --include_orgs items | Список организаций, разделенных запятыми, которые будут включены в выходные данные. |
-x, --exclude_orgs items | Список организаций, разделенных запятыми, которые необходимо исключить из выходных данных. |
-n, --include_envs items | Список сред, разделенных запятыми, которые будут включены в выходные данные. |
-e, --exclude_envs items | Список сред, разделенных запятыми, которые необходимо включить в выходные данные. |
-o, --output path | Путь и имя файла для сохранения вывода. |
-s, --time_range_start time_range_start | Диапазон времени начала запроса статистики трафика в форме: « MM/DD/YYYY HH:MM ». Если вы укажете |
-z, --time_range_end time_range_end | Конец временного диапазона для запроса статистики трафика в виде: «01.04.2016 24:00». Если вы укажете |
-t, --time_unit time_unit | Единица времени для данных о дорожном движении. Значение по умолчанию —
Если вы установите |
-S, --standard_output | Запишите вывод на терминал (stdout), вместо того, чтобы загружать его в Apigee. |
-c, --apigee_analytics_client_id apigee_analytics_client_id | Ваш идентификатор для загрузки данных в Apigee. Для получения отправьте заявку в службу поддержки Apigee Edge . |
-r, --apigee_analytics_secret apigee_analytics_secret | Ваш секрет загрузки данных в Apigee. Для получения отправьте заявку в службу поддержки Apigee Edge . |
-R, --include_curl_commands | Включите сгенерированные команды |
-v, --verbose | Отображение подробного вывода. |
Ручная загрузка данных в Apigee
Apigee рекомендует установить утилиту apigee-analytics-collector
на компьютер с внешним доступом в Интернет. Затем утилита apigee-analytics-collector
сможет загрузить данные непосредственно в Apigee.
Однако, если у компьютера нет внешнего доступа к Интернету, используйте API управления Edge для сбора данных о трафике, а затем используйте команды curl
для загрузки их в Apigee с компьютера с доступом в Интернет. Вы должны повторить этот процесс для каждой производственной организации и среды в вашей установке Edge.
Используйте следующую команду 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/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"
Эта команда использует API подсчета сообщений Edge Get API. В этой команде:
- apigee_mgmt_api_email:apigee_mgmt_api_password указывает адрес электронной почты учетной записи с доступом к API Edge/stats.
- ms_IP — это IP-адрес или DNS-имя пограничного сервера управления.
- org_name и env_name определяют организацию и среду.
- apiproxy — это параметр, который группирует метрики по прокси-серверам API.
-
MM/DD/YYYY %20 HH:MM~MM/DD/YYYY %20 HH:MM &timeUnit=hour
указывает диапазон времени, разделенный на единицы времени для собираемых показателей. Обратите внимание, что командаcurl
использует шестнадцатеричный код%20
для пробелов в диапазоне времени.
Например, чтобы собирать количество сообщений прокси-сервера API по часам в течение 24 часов, используйте следующий вызов 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"
(Обратите внимание, что timeRange
содержит символы в кодировке URL.)
Вы должны увидеть ответ в виде:
{ "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" ] } }
Чтобы затем загрузить эти данные в Apigee с компьютера с доступом в Интернет, используйте следующую команду 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"...'
Где:
- apigee_analytics_client_id:apigee_analytics_secret укажите свои учетные данные для загрузки данных в Apigee, которые вы получили от Apigee.
- org_name указывает название организации.
- "environments"... содержит результаты команды
curl
, которую вы использовали для сбора статистики выше.