エンドユーザー監視の設定

インフラストラクチャやアプリケーションデータなどの他の監視データとは対照的に、エンドユーザー監視は常に、グローバルインターネットまたはローカルイントラネット内で動作する信頼できないデバイスから収集される。 このため、エンドユーザーのウェブブラウザやモバイルデバイスが、組織が管理するパブリックドメイン名を使用して安全な接続を確立できるようにするには、追加の設定手順が必要となります。 加えて、エンドユーザーが監視インフラストラクチャの他の部分ではなく、特定のエンドユーザー監視エンドポイントのみにアクセスできるようにしてください。

次のセクションでは、関連するモニタリング・エンドポイント、公開される API、セキュリティーに関する考慮事項、およびモニタリング・エンドポイントをエンド・ユーザーが使用できるようにする方法について説明します。

モニタリング・エンドポイント

Instana のオンプレミス(自社ホスト)型 Instana バックエンドは、エンドユーザー監視エンドポイント HTTP をポート 86HTTP および HTTPS446 で公開します。 これらのポートは、JavaScript エージェントのダウンロードとデータの受け入れを可能にするために、直接またはリバース・プロキシーを介して、インターネットまたはイントラネット上で使用可能にすることができます。 これらのポート数は、攻撃ベクトルの可能性を減らし、監視エンドポイントの簡単な展開を可能にするために、意図的に最小限に抑えられています。

これらのポートは意図的に および として設定 80 されていません。これらのポートは 443Instana のユーザーインターフェースへのアクセス用に予約されているためです。 データ入力とユーザーインターフェースを分離することで、 Instana エンドユーザー監視ソリューションの安全な導入が容易になります。

HTTP 要求は、86 および 446 (プロキシーを介して内部ポート 2999 に接続) 上で、次のパスで受け入れられます。

  • Web サイトのモニタリング・データの受け入れ
    • GET /eum/
    • POST /eum/
  • JavaScript エージェントのダウンロード
    • GET /eum/eum.min.js
    • GET /eum/eum.min.js.map
    • GET /eum/eum.js
    • GET /eum/eum.js.map
    • GET /eum/eum.debug.min.js
    • GET /eum/eum.debug.min.js.map
    • GET /eum/eum.debug.js
    • GET /eum/eum.debug.js.map
  • モバイル・アプリケーションのモニタリング・データの受け入れ
    • POST /eum/mobile

Instana UIでは、監視エンドポイントの URL を. trackingBaseUrlとして使用することを推奨します。 trackingBaseUrl の有効な値は、 https://*instanaServer*:446/eum/です。

エンド・ユーザーへのモニタリング・エンドポイントの公開

NGINX や Apache HTTPd などのリバース・プロキシーを使用して、モニタリング・エンドポイントをエンド・ユーザーに公開することをお勧めします。 これにより、トラフィックがインターネットまたはイントラネットからネットワークを介してモニタリング・エンドポイントに正しくルーティングされるようにすることができます。 さらに、監視エンドポイントを自社ドメイン名で公開できるようになります。ポート 443 番号はTransport-Layer Security( TLS )を使用し、自社発行の証明書とロードバランサー(使用する場合)を設定可能です! ただし、インターネットから直接ポート 86 および 446 へのアクセスを許可することもできます。

モニタリング・エンドポイントのリバース・プロキシーを構成する方法を示すために、実行可能な例が提供されています。 これらの例は、ヘッダーの追加やプロキシが必要な箇所も示しています。例えば、 X-Forwarded-For ヘッダーの必要性が挙げられます。

注: セルフホスト型(オンプレミス)の Instana バックエンド設定の一部として自動的にインストールされる NGINX の再構成は行わないでください。 この NGINX は、 Instana UIおよび API へのアクセスを許可するために使用されるため、異なるセキュリティ要件と更新ライフサイクルの対象となります。 より具体的には、 NGINX の設定は、 Instana のセルフホスト型(オンプレミス) Instana バックエンドの更新時に上書きされる可能性があります。 エンド・ユーザーに Instana のサインイン画面、API、および資産へのアクセス権限を付与する非セキュアな構成に容易にすることができます。

エンドユーザー監視(EUM) 設定に記載されている通り、 Instana 内で監視エンドポイントを必ず設定してください。これにより、 Instana UI が正しい JavaScript エージェントおよびモバイルアプリエージェントのインストール手順を提供できるようになります。

ブラウザとリバースプロキシ間のセキュアな接続の設定

監視エンドポイントを HTTPS ポートで公開することを推奨します。 同じドメイン名の下で、有効な署名付き証明書を使用して、ネットワーク向けにトランスポート層セキュリティ( TLS )を設定できます。

証明書発行機関を持たず、 自己署名証明書を使用する場合、監視対象のウェブサイトと監視エンドポイントの両方にリクエストをプロキシするリバースプロキシまたはロードバランサーを設定し、自己署名証明書でプロキシを構成する必要があります。

たとえば、プロキシを次の2つの場所として設定します: https://proxy-server/websitehttps://proxy-server/eum/。 その後、エンドユーザーが受信した自己署名証明書を承認した場合、この証明書はウェブサイトと https://proxy-server監視エンドポイントの両方で機能します。

自己署名証明書の生成方法については、 インスト ールドキュメントを参照してください。

GeoLite2 データベース

Instana Maxmind の GeoLite2 データベースを利用し、エンドユーザー監視データ向けのIPジオロケーションをサポートします。 Instana バックエンドは、最新の GeoLite2 データベースを自動的にダウンロードし、定期的に更新します。

オンライン向け

Instana バックエンドはデータベースを取得するために必要なすべてのURLと認証情報が事前設定されており、追加の設定なしで動作します。

GeoLite2 データベース URL を設定するには、次の手順 Standard Edition を完了してください。 以下の手順は、顧客がデフォルトの URL および認証情報を上書きすることを選択した場合にのみ必要です。

  1. コアのカスタム値ファイルを編集する。 例えば、$HOME/.stanctl/values/instana-core/custom-values.yaml です。
  2. 以下の例に示すように、 GeoLite2 データベースの認証情報を設定します:
    #-- URL for downloading the GeoLite2 geolocation data file.
    geoDbUrl: ""
    # -- Basic authorization user for downloading the GeoLite2 geolocation data file.
    geoDbUser: ""
    # -- Basic authorization password for downloading the GeoLite2 geolocation data file.
    geoDbPassword: "" 
  3. 次のコマンドを実行してカスタム値を適用します:
    stanctl backend apply
  4. GeoLite2 EULA (EULA)に準拠していることを確認してください。

エアギャップ環境向け

デフォルトの URL および認証情報は、エアギャップ環境では機能しません。 したがって、エアギャップ環境で GeoLite2 データベースを設定するには、次の手順を完了してください:

  1. 以下のいずれかの方法で URL を作成および構成します:
    • GeoLite2 データベースファイルをミラーリングし、以下の URL を GeoLite2 データベースソースとして設定します: https://artifact-public.instana.io/artifactory/rel-generic-instana-virtual/geodb/geolite2-city.tar.gz 詳細については、 リポジトリのミラーリングを参照してください。
    • ファイルをダウンロードし、アクセス可能な内部ホスティングに配置します。その後、 Instana を設定して、内部ホスティング URL : を使用するように <complete-internal url>します。
  2. コアのカスタム値ファイルを編集する。 例えば、$HOME/.stanctl/values/instana-core/custom-values.yaml です。
  3. 以下の例に示すように、 GeoLite2 データベースの認証情報を設定します:
    #-- URL for downloading the GeoLite2 geolocation data file.
    geoDbUrl: ""
    # -- Basic authorization user for downloading the GeoLite2 geolocation data file.
    geoDbUser: ""
    # -- Basic authorization password for downloading the GeoLite2 geolocation data file.
    geoDbPassword: "" 
  4. 次のコマンドを実行してカスタム値を適用します:
    stanctl backend apply
  5. GeoLite2 EULA (EULA)に準拠していることを確認してください。

問題の分析

問題を分析するには、以下のアクションを実行します。

  1. ブラウザーで JavaScript エージェントの URL を手動で開きます。 JavaScript をサーバーからの応答として取得しましたか?

    • 失敗した場合、プロキシを使用しているなら、 JavaScript ファイルへのパスがおそらく変更されていることに留意してください。 前述のプロキシ設定例では、パスは. です /eum.min.js。 サブ eum-acceptor パスでプロキシする場合、末尾のスラッシュを考慮しているか確認してください。つまり、プロキシはパ /eum スを削除しますか?
    • 失敗した場合、かつプロキシを使用しない場合は、 Instana の監視エンドポイントがポート 86 と にのみバインド 446されることに留意してください。
    • それでも動作しない場合は、サポートに連絡し、設定内容を説明してください。プロキシ設定を送信し、スクリプトへのアクセス方法を説明してください。
  2. アプリケーションに Web サイト・モニタリング・スニペットを追加します。

    • ウェブサイトデータが表示されない場合は、ウェブサイトデバッグスクリプトを使用してください。 eum.min.js にアクセスする代わりに eum.debug.js を使用します。 これにより、構成および送信に関する一連の情報がブラウザー・コンソールに記録されます。 コンソールを調べて、他に何か問題があれば解決します。
    • ブラウザーで (開発ツールにある) ネットワーク・エクスプローラーを開きます。 設定済みのレポートサーバー URL に対して、 HTTP の GET リクエストと HTTPPOST の呼び出しが送信されていることが確認できます。 これらの呼び出しがステータスコード 200 または を返すことを確認 204してください。 特に、この呼び出しの結果としてプロキシから HTTP リダイレクト(ステータスコード 302)が返されないことを確認してください。
    • それでも動作しない場合は、サポートに連絡し、設定内容を説明してください。プロキシ設定を送信し、スクリプトへのアクセス方法を説明し、デバッグスクリプトの出力を送信してください。