Edge の構成方法

インストール後に Edge を構成するには、.properties ファイルと Edge ユーティリティを組み合わせて使用します。たとえば、Edge UI の TLS または SSL を構成するには、.properties ファイルを編集して必要なプロパティを設定します。.properties ファイルの変更を適用するには、対象の Edge コンポーネントを再起動する必要があります。

.properties ファイルを編集する手法のことを「code with config」と呼びます(CwC と略されることもあります)。本質的に、code with config は .properties ファイル内の設定に基づく Key-Value 検索ツールです。code with config では、キーはトークンと呼ばれます。したがって、Edge を構成するには .properties ファイル内でトークンを設定します。

code with config の場合、Edge コンポーネントの出荷時デフォルト値が設定されていますが、インストール チームはインストール トポロジに基づいてその設定をオーバーライドでき、その後、お客様は任意のプロパティをオーバーライドできます。

これを階層と考えると、設定の優先度は次のようになります。お客様の優先度が最も高く、インストール チームや Apigee による設定をすべてオーバーライドします。

  1. 顧客
  2. インストーラ
  3. コンポーネント

トークンの現在の値を確認する

.properties ファイルでトークンの新しい値を設定する前に、まず次のコマンドを使用してそのトークンの現在の値を確認してください。

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

ここで、component_name はコンポーネントの名前、token は検査するトークンです。

このコマンドは、コンポーネントの .properties ファイルの階層を検索してトークンの現在の値を判断します。

次の例では、Router の 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
Classic UI(新しい Edge UI には影響しません) edge-ui /opt/apigee/customer/application/ui.properties
Edge UI(新しい Edge UI のみ。Classic UI には影響しません) apigee-management-ui なし(インストール構成ファイルを使用)
OpenLDAP apigee-openldap /opt/apigee/customer/application/openldap.properties
Postgres Server edge-postgres-server /opt/apigee/customer/application/postgres-server.properties
PostgreSQL データベース apigee-postgresql /opt/apigee/customer/application/postgresql.properties
Qpid Server 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
Zookeeper 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(Management Server)
  • edge-management-ui(新しい Edge UI)
  • edge-message-processor(Message Processor)
  • edge-postgres-server(Postgres Server)
  • edge-qpid-server(Qpid Server)
  • edge-router(Edge Router)
  • edge-ui(Classic UI)

トークンの値を設定する

/opt/apigee/customer/application ディレクトリ内の .properties ファイルのみを変更できます。このディレクトリには、コンポーネントごとに固有の .properties ファイルが存在します。たとえば、router.propertiesmanagement-server.properties などです。プロパティ ファイルの一覧については、.properties ファイルの場所をご覧ください。

.properties ファイルを作成するには:

  1. エディタで新しいテキスト ファイルを作成します。ファイル名は上記の編集可能ファイルの表に記載された名前と一致させる必要があります。
  2. 次の例のように、ファイルの所有者を「apigee:apigee」に変更します。
    chown apigee:apigee /opt/apigee/customer/application/router.properties

    Edge サービスを実行するユーザーを「apigee」から変更した場合は、chown を使用して、Edge サービスを実行しているユーザーをファイルの所有者にします。

Edge をアップグレードするときは、/opt/apigee/customer/application ディレクトリにある .properties ファイルが読み取られます。つまり、コンポーネントに設定したプロパティはアップグレード後も保持されます。

トークンの値を設定するには:

  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(Management Server)
    • edge-management-ui(新しい Edge UI)
    • edge-message-processor(Message Processor)
    • edge-postgres-server(Postgres Server)
    • edge-qpid-server(Qpid Server)
    • edge-router(Edge Router)
    • edge-ui(Classic UI)

    たとえば、router.properties を編集した後は Router を再起動します。

    /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 プロパティを設定した場合、その設定に使用したトークン値を確認するには、/opt/apigee/edge-ui/source ディレクトリ内のプロパティに対して grep を次のように実行します。

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

結果は次の形式で表示されます。

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

次の例は、UI の session.maxAge トークンの値を示します。

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

{T}{/T} タグで囲まれた文字列が、UI の .properties ファイルで設定できるトークンの名前です。

現在コメントアウトされているトークンを設定する

Edge 構成ファイルでは、一部のトークンがコメントアウトされています。インストール構成ファイルまたはコンポーネント構成ファイルでコメントアウトされているトークンを設定しようとしても、その設定は無視されます。

Edge 構成ファイル内のコメントアウトされているトークンを設定するには、次の形式の特殊な構文を使用します。

conf/filename+propertyName=propertyValue

たとえば、Message Processor で 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

Trace UI の [Send Requests] セクションからのリクエスト用に転送プロキシを構成する

このセクションでは、オプションのプロキシ認証情報を使用して、Trace UI の [リクエストの送信] セクションからのリクエスト用に転送プロキシを構成する方法について説明します。転送プロキシを構成するには:

  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. 従来の UI を保存して再起動します。

Apigee Router/Nginx にカスタムログ形式を追加する

場合によっては、デフォルトの Apigee Router/Nginx ログ形式を変更するか、変数を追加する必要があります。デフォルトの Apigee Router/Nginx ログ形式の構成を更新するには:

  1. router.properties ファイルが存在しない場合は、次のパスで作成します。
    /opt/apigee/customer/application/router.properties
  2. 次の内容を router.properties ファイルに追加して、router_new という名前の新しい log_format 構成を作成します。
    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. Router を再起動して新しい構成を適用します。
    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
    で新しいログ形式を確認します。