ブラウザRUM用カスタムGeoサーバーのインストールおよびホスト

デフォルトでは、エンドユーザーの位置は公開地理データベースを使用して解決されます。Splunk AppDynamics がホストしているデフォルトの Geo サーバーの代わりに、ユーザーの国、地域、都市用の別の Geo サーバーをホストすることもできます。

以下の場合は、独自のGeoサーバーをホスティングすることをお勧めします。

  • 意味のある位置情報が、パブリックIPアドレスからではなくユーザーのプライベートIPアドレスから得られるようなイントラネットアプリケーションがある場合。
  • プライベートな場所からアクセスするユーザーと、パブリックな場所からアクセスするユーザーが混在するハイブリッドアプリケーションがある場合。カスタムGeoサーバーでマップされている特定のプライベートIP範囲以外からユーザーがアクセスしているときに、デフォルトで公開Geoサーバーが使用されるようにシステムを設定できます。

カスタムGeoサーバーをホストするには

  1. Geoサーバーファイルのダウンロード
  2. Geoサーバーの場所の設定
  3. IPマッピングファイルの作成

Geo サーバホストの要件

  • 2 GB のメモリ
  • Java 8.x

Geoサーバーファイルのダウンロードとインストール

Splunk AppDynamics(https://download.appdynamics.com/download)から GeoServer.zip ファイルをダウンロードします。

その zip ファイルを GeoServer フォルダに以下の構成で解凍します。

CODE
├── GeoServer
   ├── schema.xsd                    <-- schema for geo-ip-mapping.xml configuration
   ├── geo
   │   ├── WEB-INF
   │   │   ├── classes
   │   │   │   ├── logback.xml       <-- configure logging in here
   │   │   │   └── ...
   │   │   ├── web.xml               <-- other configurations here
   │   │   └── ...
   |   ├── geo-ip-mappings.xml       <-- configure geo ip mapping here
   └── ...

Geo サーバーをインストールするには、Tomcat サーバーの TOMCAT_HOME/webappsgeo フォルダをコピーします。コントローラと同じコンテナにサーバをデプロイしないでください。

Geoサーバーの場所の設定

コントローラ UI の [Browser RUM] 構成画面にある [Geo Server URL] フィールドに、ホストされている Geo サーバーの URL(コンテキストルートを含む)を入力します(下図を参照)。

警告: JavaScript エージェントに対して手動インジェクションを使用している場合、使用しているスクリプトのコピーは、この URL が設定されたにダウンロードしたスクリプトである必要があります。

IPマッピングファイルの作成

IP マッピングファイル geo-ip-mappings.xml では、ブラウザ RUM が地理データを提供する場所が指定されています。IP アドレスが地理的な場所にマップされています。

geo サブディレクトリにあるサンプルファイルをテンプレートとして使用します。実行時の変更は再起動しなくても再ロードされます。

このファイルには、モニタリング対象となる各場所に対して 1 つの <mapping> 要素があります。このファイルの形式は次のとおりです。

CODE
<mappings>
	<mapping>
		<subnet from="192.168.1.1" mask="255.255.255.0"/>
		<location country="United States" region="California" city="San Francisco"/>
	</mapping>

	<default country="United States" region="California" city="San Francisco"/>
</mappings>

サブネットベースではなくIP範囲ベースのマッピングも使用できます。

CODE
<mapping> 
    <ip-range from="10.240.1.1" to="10.240.1.254" /> 
    <location country="France" region="Nord-Pas-de-Calais" city="ENGLOS" /> 
</mapping>

このデータはブラウザスナップショットに表示され、特定の場所のブラウザスナップショットをフィルタするのに使用できます。<country><region><city> 要素は必須です。<country> と <region> の値が地理データベースですでに定義されている実際の地理的場所と一致しない場合、その場所のマップサポートはマップパネルでは利用できませんが、地理的分布、エンドユーザー応答時間パネル、トレンドグラフ、ブラウザ分布パネルのグリッドビュー、およびメトリックブラウザでは、ブラウザ RUM メトリックがその位置に対して表示されます。<city> 要素はエンドユーザーの静的な場所を表す文字列である場合があります。 <default> 要素もあります。IP マッピングファイルでカバーされていない IP アドレスがある場合は、この値が使用されます。カバーされていない IP アドレスに対して公開 Geo サーバーを使うには、「ハイブリッド(カスタム公開)Geo サーバーセットアップの使用」を参照してください。

ブラウザスナップショット

有効な国名と地域名は、Geoダッシュボードの地図で使用されている名前です。このダッシュボードで地域にカーソルを合わせると、その地域の正確な名前(スペルや大文字と小文字の区別など)が表示されます。「ブラウザ Geo ダッシュボードビュー」を参照してください。

ハイブリッド(カスタム公開)Geoサーバーセットアップの使用

ブラウザ RUM で公開 Geo サーバーを使用して、マップされていない IP アドレスを評価する場合は、<default> 要素を削除します。その場合、マップされていない IP アドレスの検出はローカルではなく EUM クラウドで行われます。

ファイルの場所のカスタマイズ

特定のファイルをGeoServerディレクトリ内のどこに保存するかをカスタマイズできます。

ログの場所の変更

デフォルトでは、ログは TOMCAT_HOME/logs に書き込まれますが、これを設定するには TOMCAT_HOME/webapps/geo/WEB-INF/classes/logback.xml を使用できます。このファイルをテキストエディタで開いて LOG_HOME プロパティを編集します。

CODE
<property name="LOG_HOME" value="{path-to-file}/logs"/>

マッピングファイルの場所の変更

デフォルトでは、Geo サーバーは TOMCAT_HOME/webapps/geo/ 内の geo-ip-mappings.xml を検索します。場所を変更するには、TOMCAT_HOME/webapps/geo/WEB-INF/web.xml をテキストエディタで開き、AD_GEO_CONFIG_FILE の値を変更します。

CODE
<web-app ...>
    <!-- ... -->
    <servlet>
        <servlet-name>FrontControllerServlet</servlet-name>
        <servlet-class>com.appdynamics.eum.geo.web.FrontControllerServlet</servlet-class>
        <context-param>
            <param-name>AD_GEO_CONFIG_FILE</param-name>
            <param-value>{path-to-file}/geo-ip-mappings.xml</param-value>
        </context-param>
        <!-- ... -->
    </servlet>
    <!-- ... -->
</web-app>
注: 以前のバージョンの Geo サーバーでは <context-param> タグが使用されていました。これは、<init-param> に変更されました。

オンプレミスのEUMサーバーの場合のみ:geo-ip-mappings.xmlを使用

オンプレミスの EUM サーバーを使用していて、かつ識別するサーバーと同じネットワークからの社内ブラウザがある場合は、個別のカスタム Geo サーバーを設定するのではなく、EUM サーバーの geo-ip-mappings.xml ファイルを前述のように変更することを選択できます。EUM サーバーの bin ディレクトリにサンプルがあります。EUM サーバーは、Neustar IP データベースを使う前に、まずこのファイルを自動的に読み取り、その内容を使用して場所の解決を試みます。

場所の解決での優先順位

カスタムGeoサーバーは以下の優先順位(降順)に基づいて場所を解決します。

  • JavaScriptエージェントをカスタマイズして設定されているIPアドレス。詳細については、「リクエストの送信元の場所の設定」を参照してください。
  • 明示的なクエリパラメータ(例:http://mycompany.com/geo/resolve.js?ip=196.166.2.1)。
  • AD-X-Forwarded-For ヘッダーを使用して指定されている IP アドレス。
  • X-Real-IP ヘッダーを使用して指定されている IP アドレス。
  • X-Forwarded-For ヘッダーを使用して指定されている IP アドレス。
  • HTTP リクエストのリモートアドレス。

デバッグ

注: このデバッグ機能はパフォーマンスに少し影響があるため、Geo サーバーを実稼働に移す前にオフにしておきます。

デバッグを行いやすいように、Geoサーバーはデバッグ用Webインターフェースが有効な状態で提供されています。このインターフェイスにアクセスするには、Web ブラウザで http://<host>:<port>/geo/debug にアクセスします。

最初のタブである [Configuration] タブには、現在使用しているマッピングファイルの内容が表示されます。

設定タブ

2 番目にある [History] タブには、直近に実行した地理的解決が数件表示されます。

[履歴(History)] タブ

デフォルトでは、最後の 20 件の解決が表示されますが、これは次で構成できます。 TOMCAT_HOME/webapps/geo/WEB-INF/web.xml

CODE
<web-app ..>
    <!-- ... -->
    <servlet>
        <servlet-name>FrontControllerServlet</servlet-name>
        <servlet-class>com.appdynamics.eum.geo.web.FrontControllerServlet</servlet-class>
        <!-- ... -->
        <init-param>
            <param-name>HISTORY_MAX_COUNT</param-name>
            <param-value>20</param-value>
        </init-param>
    </servlet>
    <!-- ... -->
</web-app>

3 番目にある [Test] タブでは、任意の IP アドレスの解決を試すことで、マッピングファイルをテストできます。

テストタブ

このタブに移動すると、初回はお使いのブラウザのIPアドレスの地理的解決が表示されます。このタブのフォームを使用して、別のIPアドレスの解決を試すことができます。

デバッグの無効化

TOMCAT_HOME/webapps/geo/WEB-INF/web.xml を開き、DEBUG_ENABLEDfalse に設定します。

CODE
<web-app ..>
    <!-- ... -->
    <servlet>
        <servlet-name>FrontControllerServlet</servlet-name>
        <servlet-class>com.appdynamics.eum.geo.web.FrontControllerServlet</servlet-class>
        <!-- ... -->
        <init-param>
            <param-name>DEBUG_ENABLED</param-name>
            <param-value>false</param-value>
        </init-param>
    </servlet>
    <!-- ... -->
</web-app>