Как настроить Edge

Чтобы настроить Edge после установки, используйте сочетание файлов .properties и утилит Edge. Например, чтобы настроить TLS/SSL в интерфейсе Edge, нужно изменить файлы .properties и задать необходимые свойства. Чтобы изменения в файлах .properties вступили в силу, необходимо перезапустить затронутый компонент Edge.

В Apigee редактирование файлов .properties называется кодом с конфигурацией (иногда сокращенно CwC). По сути, код с конфигурацией – это инструмент поиска по ключу и значению, основанный на настройках в файлах .properties. В коде с конфигурацией ключи называются токенами. Поэтому, чтобы настроить Edge, нужно задать токены в файлах .properties.

Код с конфигурацией позволяет компонентам Edge задавать значения по умолчанию, которые поставляются вместе с продуктом, команде по установке – переопределять эти настройки на основе топологии установки, а клиентам – переопределять любые свойства по своему усмотрению.

Если представить настройки в виде иерархии, то настройки клиента будут иметь самый высокий приоритет и переопределять любые настройки команды установщика или Apigee:

  1. Клиент
  2. Установщик
  3. Компонент

Как узнать текущее значение токена

Прежде чем задавать новое значение для токена в файле .properties, сначала определите его текущее значение с помощью следующей команды:

/opt/apigee/apigee-service/bin/apigee-service component_name configure -search token

где component_name – название компонента, а token – токен, который нужно проверить.

Эта команда выполняет поиск в иерархии файлов компонента .properties, чтобы определить текущее значение токена.

В следующем примере проверяется текущее значение токена conf_http_HTTPRequest.line.limit для маршрутизатора:

/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

Вы должны увидеть результат, похожий на приведенный ниже:

Found key conf_http_HTTPRequest.line.limit, with value, 4k, in /opt/apigee/edge-router/token/default.properties

Если значение токена начинается с символа #, оно закомментировано, и для его изменения необходимо использовать специальный синтаксис. Подробнее о том, как задать токен, который в настоящее время закомментирован…

Если вы не знаете полного названия токена, используйте инструмент, например grep, чтобы выполнить поиск по названию свойства или ключевому слову. Подробнее о том, как найти токен…

Файлы свойств

Существуют редактируемые и нередактируемые файлы конфигурации компонентов. В этом разделе описаны эти файлы.

Редактируемые файлы конфигурации компонентов

В таблице ниже перечислены компоненты Apigee и файлы свойств, которые можно изменить, чтобы настроить эти компоненты.

Компонент Название компонента Файл конфигурации, который можно редактировать
Cassandra apigee-cassandra /opt/apigee/customer/application/cassandra.properties
Apigee SSO apigee-sso /opt/apigee/customer/application/sso.properties
Сервер управления edge-management-server /opt/apigee/customer/application/management-server.properties
Message Processor edge-message-processor /opt/apigee/customer/application/message-processor.properties
apigee-monit apigee-monit /opt/apigee/customer/application/monit.properties
Классический интерфейс (не влияет на новый интерфейс Edge) edge-ui /opt/apigee/customer/application/ui.properties
Интерфейс Edge (только новый интерфейс Edge; не влияет на классический интерфейс) apigee-management-ui /opt/apigee/customer/application/management-ui.properties
OpenLDAP apigee-openldap /opt/apigee/customer/application/openldap.properties
Сервер Postgres edge-postgres-server /opt/apigee/customer/application/postgres-server.properties
База данных PostgreSQL apigee-postgresql /opt/apigee/customer/application/postgresql.properties
Сервер Qpid edge-qpid-server /opt/apigee/customer/application/qpid-server.properties
Qpidd apigee-qpidd /opt/apigee/customer/application/qpidd.properties
Маршрутизатор edge-router /opt/apigee/customer/application/router.properties
Смотритель зоопарка apigee-zookeeper /opt/apigee/customer/application/zookeeper.properties

Если вы хотите задать свойство в одном из этих файлов конфигурации компонента, но его нет, вы можете создать его в указанном выше месте.

Кроме того, убедитесь, что файл свойств принадлежит пользователю apigee:

chown apigee:apigee /opt/apigee/customer/application/configuration_file.properties

Файлы конфигурации компонентов, которые нельзя редактировать

Помимо редактируемых файлов конфигурации компонентов, существуют также файлы конфигурации, которые нельзя изменить.

К информационным файлам, которые нельзя редактировать, относятся:

Владелец Название файла или каталога
Установка
/opt/apigee/token
Компонент
/opt/apigee/component_name/conf

где component_name – это компонент. Возможные значения:

  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (база данных PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (Edge SSO)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (сервер управления)
  • edge-management-ui (новый интерфейс Edge)
  • edge-message-processor (процессор сообщений)
  • edge-postgres-server (сервер Postgres)
  • edge-qpid-server (сервер Qpid)
  • edge-router (маршрутизатор Edge)
  • edge-ui (классический интерфейс)

Как задать ценность токена

Изменять файлы .properties можно только в каталоге /opt/apigee/customer/application. У каждого компонента есть собственный файл .properties в этом каталоге. Например, допустимы значения router.properties и management-server.properties. Полный список файлов свойств приведен в разделе Где найти файлы .properties.

Чтобы создать файл .properties:

  1. Создайте новый текстовый файл в редакторе. Название файла должно совпадать с названием в таблице выше.
  2. Измените владельца файла на "apigee:apigee", как показано в следующем примере:
    chown apigee:apigee /opt/apigee/customer/application/router.properties

    Если вы изменили пользователя, который запускает сервис Edge, с пользователя "apigee", используйте команду chown, чтобы передать право собственности пользователю, который запускает сервис Edge.

При обновлении Edge считываются файлы .properties в каталоге /opt/apigee/customer/application. Это означает, что при обновлении будут сохранены все свойства, заданные для компонента.

Чтобы задать значение токена:

  1. Отредактируйте файл .properties компонента.
  2. Добавьте или измените значение токена. В следующем примере для свойства conf_http_HTTPRequest.line.limit задано значение "10k":
    conf_http_HTTPRequest.line.limit=10k

    Если токен принимает несколько значений, разделите их запятыми, как показано в следующем примере:

    conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status,/myuri/*

    Чтобы добавить новое значение в такой список, обычно его добавляют в конец.

  3. Перезапустите компонент:
    /opt/apigee/apigee-service/bin/apigee-service component_name restart

    где component_name – одно из следующих значений:

    • apigee-cassandra (Cassandra)
    • apigee-openldap (OpenLDAP)
    • apigee-postgresql (база данных PostgreSQL)
    • apigee-qpidd (Qpidd)
    • apigee-sso (Edge SSO)
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (сервер управления)
    • edge-management-ui (новый интерфейс Edge)
    • edge-message-processor (процессор сообщений)
    • edge-postgres-server (сервер Postgres)
    • edge-qpid-server (сервер Qpid)
    • edge-router (маршрутизатор Edge)
    • edge-ui (классический интерфейс)

    Например, после изменения router.properties перезапустите маршрутизатор:

    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. При необходимости проверьте, задано ли для токена новое значение, с помощью параметра configure -search. Пример:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

    Подробнее о значении configure -search рассказывается в разделе Как определить текущее значение токена.

Как найти токен

В большинстве случаев токены, которые вам нужно задать, указаны в этом руководстве. Однако если вам нужно переопределить значение существующего токена, полное название или местоположение которого вам неизвестно, используйте grep для поиска в каталоге source компонента.

Например, если вы знаете, что в предыдущей версии Edge задали session.maxAge свойство и хотите узнать значение токена, использованное для его настройки, выполните команду grep для свойства в каталоге /opt/apigee/edge-ui/source:

grep -ri "session.maxAge" /opt/apigee/edge-ui/source

Результат должен выглядеть следующим образом:

/opt/apigee/component_name/source/conf/application.conf:property_name={T}token_name{/T}

В примере ниже показано значение токена session.maxAge в интерфейсе:

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

Строка между тегами {T}{/T} – это название токена, который можно задать в файле .properties интерфейса.

Как задать токен, который сейчас закомментирован

Некоторые токены закомментированы в файлах конфигурации Edge. Если вы попытаетесь задать токен, закомментированный в файле конфигурации установки или компонента, ваша настройка будет проигнорирована.

Чтобы задать значение токена, закомментированного в файле конфигурации Edge, используйте специальный синтаксис в следующем формате:

conf/filename+propertyName=propertyValue

Например, чтобы задать свойство HTTPClient.proxy.host в обработчике сообщений, сначала выполните команду grep для этого свойства, чтобы определить его токен:

grep -ri /opt/apigee/edge-message-processor/ -e "HTTPClient.proxy.host"

Команда grep возвращает результаты, содержащие название токена. Обратите внимание, что название свойства закомментировано (перед ним стоит префикс #):

source/conf/http.properties:#HTTPClient.proxy.host={T}conf_http_HTTPClient.proxy.host{/T}
token/default.properties:conf_http_HTTPClient.proxy.host=
conf/http.properties:#HTTPClient.proxy.host=

Чтобы задать значение этого свойства, измените /opt/apigee/customer/application/message-processor.properties, но используйте специальный синтаксис, как показано в следующем примере:

conf/http.properties+HTTPClient.proxy.host=myhost.name.com

В этом случае перед названием свойства нужно поставить префикс conf/http.properties+. Это путь и название файла конфигурации, содержащего свойство, за которым следует символ "+".

После перезапуска Message Processor проверьте файл /opt/apigee/edge-message-processor/conf/http.properties:

cat /opt/apigee/edge-message-processor/conf/http.properties

В конце файла вы увидите набор свойств в следующем формате:

conf/http.properties:HTTPClient.proxy.host=myhost.name.com

Как настроить прямой прокси-сервер для запросов из раздела "Отправить запросы" интерфейса трассировки

В этом разделе рассказывается, как настроить прямой прокси-сервер для запросов из раздела "Отправить запросы" интерфейса трассировки с необязательными учетными данными прокси-сервера. Чтобы настроить прямой прокси-сервер:

  1. Измените /opt/apigee/customer/application/ui.properties и убедитесь, что файл принадлежит apigee:apigee.
  2. Добавьте следующие переопределения (изменив значения в соответствии с конфигурацией прокси-сервера):
    conf_application_http.proxyhost=proxy.example.com
    conf_application_http.proxyport=8080
    conf_application_http.proxyuser=apigee
    conf_application_http.proxypassword=Apigee123!
  3. Сохраните изменения и перезапустите классический интерфейс.

Как включить или отключить разбиение на страницы и настроить размер пакета для страницы со списком прокси API

В этом разделе рассказывается, как включить или отключить API с разбивкой на страницы для списка прокси API и как настроить размер пакета для таких API. Мы добавили два новых переопределения, которые можно настроить, чтобы включить или отключить разбиение на страницы и задать размер пакета для API с разбиением на страницы.

  1. Создайте или измените файл /opt/apigee/customer/application/ui.properties и убедитесь, что его владельцем является apigee:apigee.
  2. Добавьте следующую переопределенную переменную, чтобы включить или отключить разбиение на страницы для списка прокси API.
    conf_apigee-base_apigee.feature.apiproxypaginationenabled={true or false}
  3. Добавьте следующую переопределенную настройку, чтобы задать размер пакета для API с разбивкой на страницы для страницы со списком прокси-серверов(необязательно).
    conf_apigee-base_apigee.pagination.apiproxypaginationbatchsize={batch_override_value}
  4. Сохранить и перезапустить классический интерфейс.

Как включить или отключить протокол HTTP/2 в новом интерфейсе Edge

В этом разделе рассказывается, как включить или отключить протокол http/2.

  1. Создайте или измените файл /opt/apigee/customer/application/management-ui.properties и убедитесь, что его владельцем является apigee:apigee.
  2. Чтобы включить или отключить протокол http/2, добавьте следующую переопределенную функцию:
    conf_uebe_disable_http2={true or false}
  3. Сохраните изменения и перезапустите новый интерфейс Edge.

Как добавить специальный формат журнала в Apigee Router/Nginx

В некоторых случаях вам может понадобиться изменить формат журнала маршрутизатора Apigee/Nginx по умолчанию или добавить переменные. Чтобы изменить формат журнала маршрутизатора Apigee/Nginx по умолчанию:

  1. Создайте файл router.properties, если его нет, по указанному ниже пути.
    /opt/apigee/customer/application/router.properties
  2. Добавьте в файл router.properties следующий контент, чтобы создать конфигурацию log_format с названием router_new:
    conf_load_balancing_load.balancing.driver.nginx.global.http.parameters.template.extra=log_format router_new 'time_iso8601\\\\thostname\\\\tremote_addr:remote_port\\\\t'\\\\n\\n 'upstream_addr\\\\trequest_time\\\\t-\\\\t-\\\\t'\\\\n\\n 'status\\\\tupstream_status\\\\trequest_length\\\\t'\\\\n\\n 'body_bytes_sent\\\\t'\\\\n\\n 'request\\\\tupstream_http_x_apigee_message_id\\\\t'\\\\n\\n 'http_user_agent\\\\thost\\thostname-pid-connection-connection_requests\\\\tmy_nginx_var_xff\\t'\\\\n\\n 'upstream_http_x_apigee_fault_flag\\\\tupstream_http_x_apigee_fault_source\\\\tupstream_http_x_apigee_fault_code\\\\t'\\\\n\\n 'upstream_http_x_apigee_fault_policy\\tupstream_http_x_apigee_fault_flow\\tupstream_http_x_apigee_fault_revision\\t'\\\\n\\n 'upstream_http_x_apigee_dp_color\\\\tmy_x_apigee_target_latency\\\\t'\\\\n\\n 'upstream_http_x_apigee_proxy\\\\tupstream_http_x_apigee_proxy_basepath\\\\t'\\\\n\\n 'self_region\\\\tself_pod\\\\tself_color\\\\tssl_protocol\\\\tssl_client_verify\\\\tssl_session_id\\\\tssl_session_reused\\\\tupstream_pod\\\\tupstream_region';\\\\n\\n\n
    conf_load_balancing_load.balancing.driver.nginx.access.log={conf_load_balancing_load.balancing.driver.nginx.log.dir}/{org}~{env}.{port}_access_log router_new

    Измените переменные в приведенных выше командах. Значения конфигурации по умолчанию для log_format можно найти в файле ниже:

    /opt/apigee/edge-router/conf/load_balancing.properties

    Список переменных Nginx можно найти на странице http://nginx.org/en/docs/varindex.html.

  3. Чтобы применить новую конфигурацию, перезапустите маршрутизатор:
    apigee-service edge-router restart
  4. Проверьте, добавлена ли новая конфигурация log_format (router_new) в файл /opt/nginx/conf.d/0-default.conf:
        
    cat /opt/nginx/conf.d/0-default.conf | grep router_new -A 10
  5. Отправьте несколько запросов API к прокси-серверу API и проверьте новый формат журнала в файле.
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file