Oracle Cloud Infrastructureデータ・アップロード・エンドポイントへのリアル・ユーザー・モニタリング・データの転送
様々なデプロイメント・シナリオに基づいて、リアル・ユーザー・モニタリング・データをOracle Cloud Infrastructureデータ・アップロード・エンドポイントに転送できます。
デプロイメントの構成シナリオの決定
- シナリオ1: 会社がすべてのユーザーに対して完全なインターネット・アクセスを許可している場合は、特別な構成やプロキシ設定なしで、リアル・ユーザー・モニタリング・データがApplication Performance Monitoringに送信されます。
- シナリオ2: 会社がインターネット・アクセスを制限しているが、それでもリアル・ユーザー・モニタリング・データ全部をApplication Performance Monitoringに送信する必要がある場合は、リクエストがApplication Performance Monitoringに送信されるように既存のファイアウォールまたはプロキシを構成する必要があります。プロキシを介したリアル・ユーザー・モニタリング・データの転送を参照してください。
- シナリオ3: セキュリティまたは管理に関する特殊な要件がある場合は、より制御された方法でトラフィックをApplication Performance Monitoringに転送するリバース・プロキシをネットワーク内に構成できます。リバース・プロキシを介したリアル・ユーザー・モニタリング・データの転送を参照してください。
- シナリオ4: 特定のリクエスト・ヘッダーを必要とするプロキシ、ゲートウェイまたはカスタマ・ネットワーク・コンポーネントなど、特殊なアップロード要件があるデプロイメントについては、データ・アップロード・リクエストのカスタム・ヘッダーの構成を参照してください。
プロキシを介したリアル・ユーザー・モニタリング・データの転送
エンタープライズWebアプリケーションの内部ユーザーがそのアプリケーションにアクセスできるが、一般のインターネットにはアクセスできない場合、すべてのユーザーに対してデータ・アップロード・エンドポイント(window.apmrum.ociDataUploadEndpoint)へのアクセスを許可するようにプロキシ・ルールを適応する必要があります。この方法では、ユーザーがデータ・アップロード・エンドポイントにアクセスできなくても、リアル・ユーザー・モニタリングのパフォーマンス・データをデータ・アップロード・エンドポイントに送信できます。
データ・アップロード・エンドポイントの詳細は、アプリケーションでのAPMブラウザ・エージェントのデプロイを参照してください。プロキシの構成はベンダーに固有です。構成の詳細は、プロキシ・ベンダーが提供しているドキュメントを参照してください。
リバース・プロキシを介したリアル・ユーザー・モニタリング・データの転送
リバース・プロキシの手法を使用すると、ブラウザはカスタマ・ファイアウォールを通過することができます。リバース・プロキシはエンタープライズ・ネットワーク内部のエンドポイントのように動作し、各リクエストをデータ・アップロード・エンドポイントに転送して、そこから受信したレスポンスを返します。リバース・プロキシを構成するには、次のステップを実行します:
別のデータ・アップロード・エンドポイントを使用するためのAPMブラウザ・エージェントの構成
APMブラウザ・エージェントは、データ・アップロード・エンドポイントをリバース・プロキシのローカル・エンドポイントでオーバーライドする必要があります。これを行うには、window.apmrum.ociDataUploadEndpointのプロパティを構成します。リバース・プロキシを使用するには、有効な証明書と、この項の後半で示されている詳細情報が必要です。
window.apmrum.ociDataUploadEndpoint='https://myproxy.example.com:4443' 上の例のmyproxy.example.comとポート番号4443を、リバース・プロキシがインストールされているマシンのホスト名とポート番号に置き換えます。データ・アップロード・エンドポイントが更新されたら、アプリケーション・サーバーを再起動します。
リバース・プロキシの構成
リバース・プロキシは、NGINX、Squid、WebLogic ProxyPluginなどの任意のリバース・プロキシ構成ツールを使用して構成できますが、次の手順はOracle HTTP Server (OHS)を使用している場合にのみ適用されます。
OHSが設定されている場合は、ステップ1-6をスキップします。信頼できる証明書を使用している場合は、ステップ7をスキップします。
-
http://www.oracle.com/technetwork/middleware/webtier/downloads/index.htmlに移動します。
-
ライセンス契約に同意します。
-
「Oracle WebTier 12cR2」および「Oracle HTTP Server 12.2.1.1」までスクロールします。
-
「Linux-64 bit」を選択し、インストーラをダウンロードします。
-
Oracle HTTP Serverをインストールします。詳細は、『Oracle HTTP Serverのインストールと構成』のOracle HTTP Serverのインストールに関する項を参照してください。
ノート
前述のドキュメントでは、OHSが/Oracleにインストールされていることを想定しています。 -
nodemanagerを起動します。# export DOMAIN_HOME=<WLS Domain home> # cd $DOMAIN_HOME/bin # nohup ./startNodeManager.sh > nm.out&次に例を示します:# export DOMAIN_HOME="/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain" # cd $DOMAIN_HOME/bin # nohup ./startNodeManager.sh > nm.out& -
HTTPサーバー証明書をウォレットに追加します。
-
ウォレットを準備します:
# export DOMAIN_HOME=<WLS Domain home> # cd $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs1/keystores # mkdir proxy # $DOMAIN_HOME/../../../oracle_common/bin/orapki wallet create -wallet . -auto_login_only次に例を示します:
# export DOMAIN_HOME=/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain # cd $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs1/keystores # mkdir proxy # $DOMAIN_HOME/../../../oracle_common/bin/orapki wallet create -wallet . -auto_login_only -
証明書を取得して、ウォレットに追加します:
方法1:
# echo -n | openssl s_client -connect <Data Upload Endpoint>:<port> | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/proxy_certificate.cert方法2:
-
CA証明書をインストール(または更新)します:
# yum update ca-certificates -
すべての証明書が含まれるバンドルCAルート・ファイルを個別のファイルに分割します。(
orapkiではバンドルを処理できません。)# awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < /etc/pki/tls/certs/ca-bundle.crt -
個々の証明書をOHSプロキシ・ウォレットにロードします。
# for i in `ls cert.*.pem`; do / Oracle/Middleware/Oracle_Home/oracle_common/bin/orapki wallet add -wallet . -cert $i -trusted_cert -auto_login_only; done
-
-
-
ociDataUploadEndpointを取得します。詳細は、ブラウザ・エージェントの手動インジェクトを参照してください。 -
Oracle HTTP ServerでHTTPSリバース・プロキシを構成します。
-
エディタで、フォルダ
ohs1にあるssl.confファイルを開きます。# export DOMAIN_HOME=<WLS Domain home> DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs1次に例を示します:
# export DOMAIN_HOME="/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain" # vi $DOMAIN_HOME/config/fmwconfig/components/OHS/instances/ohs1/ssl.conf -
既存の仮想ホスト定義セクションで、SSLリバース・プロキシを構成します。
次に例を示します:... <VirtualHost *:4443> <IfModule ossl_module> # SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on SSLProxyEngine on SSLProxyWallet "${ORACLE_INSTANCE}/config/fmwconfig/components/${COMPONENT_TYPE}/instances/${COMPONENT_NAME}/keystores/proxy" SSLProxyVerify none ProxyPass "/20200630/observations" "https://datauploadendpointurl.com/20200630/observations/public-span" ProxyPassReverse "/20200630/observations" "https://datauploadendpointurl.com/20200630/observations/public-span" ProxyPreserveHost On ProxyRequests off ... </VirtualHost> ... -
URL
https://datauploadendpointurl.com/20200630/observations/public-spanを実際のデータ・アップロード・エンドポイントに置き換えます。ノート
ブラウザとリバース・プロキシの間でHTTP通信を使用するには、SSLEngine on行をコメント・アウトします。 -
ohs1コンポーネントを起動します。# export DOMAIN_HOME=<WLS Domain home> # cd DOMAIN_HOME/bin # ./startComponent.sh ohs1次に例を示します:
# export DOMAIN_HOME=/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain # cd DOMAIN_HOME/bin # ./startComponent.sh ohs1
-
データ・アップロード・リクエストのカスタム・ヘッダーの構成
プロキシ、ゲートウェイまたはその他のネットワーク・コンポーネントに特定のHTTPリクエスト・ヘッダーが必要な場合は、uploadHdrsプロパティを使用して、これらのヘッダーをAPMブラウザ・エージェントのデータ・アップロード・リクエストに追加します。この拡張構成は、特殊なアップロード要件を持つデプロイメントにのみ必要です。
次の設定をブラウザ・エージェント構成に追加し、サンプルのヘッダー名と値をデプロイメントに必要なものに置き換えます。
window.apmrum = window.apmrum || {};
window.apmrum.uploadHdrs = {
'X-Custom-Header': 'custom-value'
};次の要件と制限が適用されます。
-
uploadHdrsを、ヘッダー名および値を含むオブジェクトに設定します。各名前と値は空でない文字列である必要があります。 -
構成されたヘッダーは、APMコレクタに送信されたReal User Monitoringデータ・アップロード・リクエスト、または
ociDataUploadEndpointで指定されたエンドポイントにのみ適用されます。 -
Content-TypeからuploadHdrsはオーバーライドできません。ブラウザ・エージェントは、アップロード・フォーマットに基づいてこのヘッダーを設定します。 -
カスタム・アップロード・ヘッダーが構成されている場合、ブラウザ・エージェントは、
fetchやXMLHttpRequest(XHR)などのリクエスト・ヘッダーをサポートするトランスポートを使用します。カスタム・リクエスト・ヘッダーを設定できないsendBeaconは使用しません。 -
クロスオリジン・コレクタ、プロキシまたはリバース・プロキシ・エンドポイントの場合、エンドポイントのクロスオリジン・リソース共有(CORS)構成でカスタム・ヘッダーが許可されていることを確認します。ブラウザは、
Access-Control-Request-Headersのカスタム・ヘッダー名をリストするCORSプリフライト・リクエストを送信する場合があります。