Oracle Cloud Infrastructureデータ・アップロード・エンドポイントへのリアル・ユーザー・モニタリング・データの転送

様々なデプロイメント・シナリオに基づいて、リアル・ユーザー・モニタリング・データをOracle Cloud Infrastructureデータ・アップロード・エンドポイントに転送できます。

デプロイメントの構成シナリオの決定

  • シナリオ1: 会社がすべてのユーザーに対して完全なインターネット・アクセスを許可している場合は、特別な構成やプロキシ設定なしで、リアル・ユーザー・モニタリング・データがApplication Performance Monitoringに送信されます。
  • シナリオ2: 会社がインターネット・アクセスを制限しているが、それでもリアル・ユーザー・モニタリング・データ全部をApplication Performance Monitoringに送信する必要がある場合は、リクエストがApplication Performance Monitoringに送信されるように既存のファイアウォールまたはプロキシを構成する必要があります。プロキシを介したリアル・ユーザー・モニタリング・データの転送を参照してください。
  • シナリオ3: セキュリティまたは管理に関する特殊な要件がある場合は、より制御された方法でトラフィックをApplication Performance Monitoringに転送するリバース・プロキシをネットワーク内に構成できます。リバース・プロキシを介したリアル・ユーザー・モニタリング・データの転送を参照してください。

プロキシを介したリアル・ユーザー・モニタリング・データの転送

エンタープライズ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をスキップします。
  1. http://www.oracle.com/technetwork/middleware/webtier/downloads/index.htmlに移動します。

  2. ライセンス契約に同意します。

  3. 「Oracle WebTier 12cR2」および「Oracle HTTP Server 12.2.1.1」までスクロールします。

  4. 「Linux-64 bit」を選択し、インストーラをダウンロードします。

  5. Oracle HTTP Serverをインストールします。詳細は、『Oracle HTTP Serverのインストールと構成』Oracle HTTP Serverのインストールに関する項を参照してください。

    ノート

    前述のドキュメントでは、OHSが/Oracleにインストールされていることを想定しています。
  6. 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&
  7. HTTPサーバー証明書をウォレットに追加します。

    1. ウォレットを準備します:

      # 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
    2. 証明書を取得して、ウォレットに追加します:

      方法1:

      # echo -n | openssl s_client -connect <Data Upload Endpoint>:<port> | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/proxy_certificate.cert

      方法2:

      1. CA証明書をインストール(または更新)します:

        # yum update ca-certificates
      2. すべての証明書が含まれるバンドルCAルート・ファイルを個別のファイルに分割します。(orapkiではバンドルを処理できません。)

        # awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < /etc/pki/tls/certs/ca-bundle.crt
      3. 個々の証明書を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
  8. ociDataUploadEndpointを取得します。詳細は、ブラウザ・エージェントの手動インジェクトを参照してください。

  9. Oracle HTTP ServerでHTTPSリバース・プロキシを構成します。

    1. エディタで、フォルダ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
    2. 既存の仮想ホスト定義セクションで、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>
      ...
    3. URL https://datauploadendpointurl.com/20200630/observations/public-spanを実際のデータ・アップロード・エンドポイントに置き換えます。

      ノート

      ブラウザとリバース・プロキシの間でHTTP通信を使用するには、SSLEngine on行をコメント・アウトします。
    4. 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