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

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

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

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

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

Geo サーバホストの要件

  • 2 GB のメモリ
  • Java 8

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

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

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

 ├── 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
   └── ...
TEXT

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

Geoサーバーの場所の設定

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

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

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

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

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

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

<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範囲ベースのマッピングも使用できます。

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

Browser Snapshots

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

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

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

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

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

ログの場所の変更

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

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

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

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

<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>
XML

(info)以前のバージョンの 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リクエストのリモートアドレス

デバッグ

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

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

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

Configuration tab

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


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

<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> 
XML

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

Test tab

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

デバッグの無効化

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

<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> 
XML