ブラウザRUM用カスタムGeoサーバーのインストールおよびホスト
デフォルトでは、エンドユーザーの位置は公開地理データベースを使用して解決されます。Splunk AppDynamics がホストしているデフォルトの Geo サーバーの代わりに、ユーザーの国、地域、都市用の別の Geo サーバーをホストすることもできます。
以下の場合は、独自のGeoサーバーをホスティングすることをお勧めします。
- 意味のある位置情報が、パブリックIPアドレスからではなくユーザーのプライベートIPアドレスから得られるようなイントラネットアプリケーションがある場合。
- プライベートな場所からアクセスするユーザーと、パブリックな場所からアクセスするユーザーが混在するハイブリッドアプリケーションがある場合。カスタムGeoサーバーでマップされている特定のプライベートIP範囲以外からユーザーがアクセスしているときに、デフォルトで公開Geoサーバーが使用されるようにシステムを設定できます。
カスタムGeoサーバーをホストするには
Geo サーバホストの要件
- 2 GB のメモリ
- Java 8.x
Geoサーバーファイルのダウンロードとインストール
Splunk 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
└── ...
Geo サーバーをインストールするには、Tomcat サーバーの TOMCAT_HOME/webapps に geo フォルダをコピーします。コントローラと同じコンテナにサーバをデプロイしないでください。
Set the Location of the Geo Server
Enter the URL, including the context root, of your hosted geo server in the Geo Server URL field in the Browser RUM configuration screen in the Controller UI as shown below.
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> の値が地理データベースですでに定義されている実際の地理的場所と一致しない場合、その場所のマップサポートはマップパネルでは利用できませんが、地理的分布、エンドユーザー応答時間パネル、トレンドグラフ、ブラウザ分布パネルのグリッドビュー、およびメトリックブラウザでは、ブラウザ 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 プロパティを編集します。
<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 の値を変更します。
<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>
<context-param> タグが使用されていました。これは <init-param> に変更されました。オンプレミスのEUMサーバーの場合のみ:geo-ip-mappings.xmlを使用
オンプレミスの EUM サーバーを使用していて、かつ識別するサーバーと同じネットワークからの社内ブラウザがある場合は、個別のカスタム Geo サーバーをセットアップするのではなく、EUM サーバーの geo-ip-mappings.xml ファイルを前述のように変更することを選択できます。EUM サーバーの bin ディレクトリにサンプルがあります。EUM サーバーは、Neustar IP データベースを使う前に、まずこのファイルを自動的に読み取り、その内容を使用して場所の解決を試みます。
場所の解決での優先順位
カスタムGeoサーバーは以下の優先順位(降順)に基づいて場所を解決します。
- JavaScriptエージェントをカスタマイズして設定されているIPアドレス。詳細については、「リクエストの送信元の場所の設定No Content found for /db/organizations/splunk/repositories/portal-production/content/documents/AppDynamics/c_saas_migration_set_the_origin_location_of_the_request.dita」を参照してください。
- 明示的なクエリパラメータ:
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 リクエストのリモートアドレス。
Debugging
To aid in debugging, the geo server ships with a debugging web interface enabled. You can reach this interface by navigating to http://<host>:<port>/geo/debug with a web browser.
The first tab, Configuration, displays the contents of the mapping file currently in use.
The second tab, History, shows the last few geo resolutions that have been performed.
By default, the last 20 resolutions are shown, but this can be configured in 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>The third tab, Test, can be used to test the mapping file by trying to resolve an arbitrary IP address.
When you first navigate to this tab, it shows the geo resolution for your browser's IP address. The form in this tab can be used to try the resolution of another IP address.
Disabling debug
Open TOMCAT_HOME/webapps/geo/WEB-INF/web.xml and set DEBUG_ENABLED to false.
<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>