インストール後に Edge を構成するには、.properties ファイルと Edge ユーティリティを組み合わせて使用します。たとえば、New Edge UI で TLS/SSL を構成するには、.properties ファイルを編集して必要なプロパティを設定します。.properties ファイルを変更した場合は、影響を受ける Edge コンポーネントを再起動する必要があります。
Apigee では、.properties ファイルを編集する手法を「構成を含むコード」(CwC と略されることもあります)と呼びます。基本的に、構成を含むコードは、.properties ファイルの設定に基づく Key-Value ルックアップ ツールです。構成を含むコードでは、キーはトークンと呼ばれます。したがって、Edge を構成するには、.properties ファイルにトークンを設定します。
code with config の場合、Edge コンポーネントの出荷時デフォルト値が設定されていますが、インストール チームはインストール トポロジに基づいてその設定をオーバーライドでき、その後、お客様は任意のプロパティをオーバーライドできます。
階層として考えると、設定は次のように配置され、お客様の設定が最も優先度が高く、インストーラ チームまたは Apigee の設定をオーバーライドします。
- お客様
- インストーラ
- コンポーネント
トークンの現在の値を特定する
.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 |
| 管理サーバー | 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 UI | edge-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 |
| 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 はコンポーネントを表します。有効な値は次のとおりです。
|
トークン値を設定する
変更できるのは、/opt/apigee/customer/application ディレクトリ内の .properties ファイルのみです。各コンポーネントには、そのディレクトリに独自の .properties ファイルがあります。たとえば、router.properties や management-server.properties です。プロパティ ファイルの完全なリストについては、.properties ファイルの場所をご覧ください。
.properties ファイルを作成するには:
- エディタで新しいテキスト ファイルを作成します。ファイル名は、上記の表に記載されている顧客ファイルのリストと一致している必要があります。
- 次の例に示すように、ファイルの所有者を「apigee:apigee」に変更します。
chown apigee:apigee /opt/apigee/customer/application/router.properties
Edge サービスを実行するユーザーを「apigee」ユーザーから変更した場合は、
chownを使用して、Edge サービスを実行しているユーザーに所有権を変更します。
Edge をアップグレードすると、/opt/apigee/customer/application ディレクトリ内の .properties ファイルが読み取られます。つまり、アップグレードでは、コンポーネントに設定したプロパティが保持されます。
トークンの値を設定するには:
- コンポーネントの
.propertiesファイルを編集します。 - トークンの値を追加または変更します。次の例では、
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/*
このようなリストに新しい値を追加するには、通常、新しい値をリストの末尾に追加します。
- コンポーネントを再起動します。
/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-zookeeper(ZooKeeper)edge-management-server(管理サーバー)edge-management-ui(新しい Edge UI)edge-message-processor(Message Processor)edge-postgres-server(Postgres サーバー)edge-qpid-server(Qpid サーバー)edge-router(エッジルーター)
たとえば、
router.propertiesを編集した後にルーターを再起動します。/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- (省略可)
configure -searchオプションを使用して、トークン値が新しい値に設定されていることを確認します。次に例を示します。/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit
configure -searchの詳細については、トークンの現在の値を特定するをご覧ください。
トークンを見つける
ほとんどの場合、設定する必要があるトークンはこのガイドで特定されています。ただし、フルネームや場所が不明な既存のトークンの値をオーバーライドする必要がある場合は、grep を使用してコンポーネントの source ディレクトリを検索します。
たとえば、HTTPRequest.line.limit プロパティを設定する必要があり、その設定に使用するトークン値を知りたい場合は、/opt/apigee/edge-management-server/source ディレクトリ内のプロパティに対して grep を実行します。
grep -ri "HTTPRequest.line.limit" /opt/apigee/edge-management-server/source
次のような結果が表示されます。
/opt/apigee/component_name/source/conf/http.properties:property_name={T}token_name{/T}次の例は、管理サーバーの HTTPRequest.line.limit トークンの値を示しています。
/opt/apigee/edge-management-server/source/conf/http.properties:HTTPRequest.line.limit={T}conf_http_HTTPRequest.line.limit{/T}{T}{/T} タグの間の文字列は、コンポーネントの .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
新しい Edge UI で HTTP/2 プロトコルを有効または無効にする
このセクションでは、新しい Edge UI(edge-management-ui)で HTTP/2 プロトコルを有効または無効にする方法について説明します。
/opt/apigee/customer/application/management-ui.propertiesを作成または編集し、ファイルのオーナーをapigee:apigeeにします。- 次のオーバーライドを追加して、HTTP/2 プロトコルを有効または無効にします。
conf_uebe_disable_http2={true or false} - 新しい Edge UI(
edge-management-ui)を保存して再起動します。
Apigee Router/Nginx にカスタムログ形式を追加する
場合によっては、デフォルトの Apigee Router/Nginx ログ形式を変更するか、変数を追加する必要があります。デフォルトの Apigee Router/Nginx ログ形式の構成を更新するには:
router.propertiesファイルが存在しない場合は、次のパスで作成します。/opt/apigee/customer/application/router.properties
- 次のコンテンツを
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 にあります。
- Router を再起動して、新しい構成を適用します。
apigee-service edge-router restart
- 新しい
log_format構成(router_new)がファイル/opt/nginx/conf.d/0-default.confに追加されているかどうかを確認します。cat /opt/nginx/conf.d/0-default.conf | grep router_new -A 10
- API プロキシに API リクエストを送信し、ファイルで新しいログ形式を確認します。
/opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file