GIS マップは、Pandora FMS のエージェントの場所を視覚的に表現したものです。このマップで、エージェントの現在の位置と、これまでの位置の履歴を見ることができます。
GIS マップを利用できるようにするには、エージェント、サーバ、コンソールの設定が必要です。
ソフトウエアエージェント の pandora_agent.conf
ファイルには、デバイスの位置をするパラメータがあります。
gis_exec
で別途パラメータを設定するスクリプトを指定することもできます。これには、“緯度,経度,高度” というフォーマットの文字列を返すスクリプトのパスを指定します。
例:
# Agent position parameters # Those parameters define the agent's geographical position. # gis_exec: Calls a script that returns a string with '[latitude],[longitude],[altitude]' # i.e.: 41.377,-5.105,2.365 #gis_exec /tmp/gis.sh # latitude latitude 42.70456 # longitude longitude -3.897187 # altitude altitude 600 # Position description position_description Madrid, centro
GIS 機能は、サーバで有効にする必要があります。activate_gis
フラグを 1 に設定することにより、サーバが、エージェントから受け取った GIS 情報を処理するようになります。
位置情報により、Pandora FMS にエージェントの位置を保存することができます。しかし、このデータには高い正確性はありません。重要な違いを考慮することなく、近い位置の多くの異なるデータが保存されます。これを避けるために、location_error
パラメータに 同じ位置であると認識する距離を設定します。これは位置が変わったと認識する閾値です。エージェントから新たに受け取った位置データが、この距離 (メートル単位) 内であれば同じ位置であると認識し、指定した距離よりも離れていれば、位置が変わったと認識します。
自動検出サーバと位置情報
IP アドレスの位置情報データベースとその検索アルゴリズムを利用することにより、自動検出サーバは、検出したエージェントの位置を推測することができます。このために、MaxMind GeoIP GeoLiteCity フォーマットや、データベースのテーブルの組み合わせを利用します。
自動検出サーバの動作を定義する、2つのパラメータがあります。recon_reverse_geolocation_file
は、MaxMind GeoLiteCity.dat
を用いた逆ジオロケーションを含むファイルを指し示すのみに使われます。recon_location_scatter_radius
は、検出したエージェントを、逆ジオロケーションアルゴリズムおよび recon_location_scatter_radius
のパラメータによって定義される範囲(メートル単位)に従い、指定された場所の周辺にランダムに配置するために利用されます。
また、Google API® および OpenStreetMaps® により提供される位置情報変換 (リバースジオロケーション) を利用することもできます。
google_maps_description
を 1
に設定します。openstreetmaps_description
を 1
に設定します。設定例:
# Flag to activate GIS (positional information for agents and maps). It's deactivated by default. activate_gis 1 # Radius of the Error in meters to consider two GIS locations as the same location. location_error 10 # Recon reverse geolocation file (databases containing the reverse geolocation information using # the 'MaxMind GPL GeoLiteCity.dat' format). # Comment it to disable the IP geolocation on agent creation. recon_reverse_geolocation_file /usr/local/share/GeoIP/GeoLiteCity.dat # Radius (in meters) of the circle in which the agents will be place randomly when found by a recon task. # The center of the cycle is guessed by geolocating the IP. recon_location_scatter_radius 1000 # This enables real time reverse geocoding using the Google Maps public API. # This requires internet access and could have performance penalties because of having to process GIS # information due the connection required to resolve all GIS input. google_maps_description 1 # This enables real time reverse geocoding using OpenStreetMaps public API. # This requires internet access and could have performance penalties because of having to process GIS # information due the connection required to resolve all GIS input. # You may alter the code to use a local or your own OpenStreetMaps server. openstreetmaps_description 1
エージェントの GIS 位置情報を再計算するプラグインがあります。 プラグインのパスは、デフォルトで /usr/share/pandora_server/util/agent_gis_update.pl
ですが、任意の場所に置きなおすことができます。
例:
/usr/share/pandora_server/util/agent_gis_update.pl /etc/pandora/pandora_server.conf
コンソールで GIS 機能を利用するには、最初にメインの設定で有効にする必要があります。セットアップ(Setup) > セットアップ(Setup) > 基本設定(General Setup) へ行きます。
GIS 機能を有効化し更新をクリックします。すると、ユーザインタフェースに新たなメニューが追加されます。
セットアップ(Setup) > 利用 GIS マップ(GIS map connection) にて、GIS で利用するマップを提供する地図サーバへの接続を定義する必要があります。
接続はいくつかの基本的なパラメータで設定します。
基本パラメータを設定したら、利用マップのタイプを選択する必要があります。タイプによりオプションが異なります。以下に、それぞれのタイプとオプションを示します。
Pandora FMS のデフォルトインストール状態では、Open Street マップ を利用するようになっています。これを使って直接 GIS 機能を確認することができます。
マップに、Open Street マップを利用するには、以下に示すように、画像サーバの URL のみをパラメータとして設定する必要があります。
例:
http://tiles.example.com/${z}/${x}/${y}.png http://tile.example.com/${z}/${x}/${y}.png
OpenStreetMap® の公式サーバ一覧サイトを確認し、名前と識別に関して確認し、それに従ってください。
Pandora FMS はまた、Google Maps® もサポートしています。これを利用するには、Pandora コンソールで利用する正しい password を Google から取得し、入力フィールドに設定する必要があります。(詳細は、Google マップ API ポリシー を参照)
このパスワードで、ベースのマップの種類 (航空写真、地形、地図) を設定することができます。
このキーは、取得してから利用できるまでに数分かかる場合があります。
ほかには、マップとして静的画像の利用をサポートしています。この種類のマップを利用するには、画像ファイルは、EPSG:4326 である必要があります。
マップの定義に必要なパラメータは、画像の URL、高さ、幅 および、マップ画像の位置情報 (経度、緯度) と座標 (右、左、上、下) です。
Pandora FMS サーバが直接インターネットに接続されていない場所にある場合、オンラインマップサービスを使用することはできません。また、その他の場合においても、ユーザは独自のマップサーバを使用して柔軟性を高めたり、作業を高速化したり、独自のモザイクタイプを定義したい場合があります。
バージョン 723 から、GeoServer のような WMS サーバ(Web マップサービス)への接続を追加できるようになりました。それには、サービスが提供されているアドレスを入力し、そこから取得したいレイヤの名前を入力する必要があります。
GeoServer サーバの最小限のインストールと設定は、こちら を参照してください。
マップ接続の最後は、位置情報を持っていないエージェントに対するマップの中心とデフォルトの位置の定義です。それらを定義するには、マップをプレビューし、マップをクリックして、'Change in the Map' セレクタで選択されているパラメータに応じて、このパラメータを設定します。
このプレビューマップでは、左上の緑色の矢印を使用して移動したり、+ または - アイコンでズームレベルを変更したり、ズームインオプションを使用したりすることができます。
入力ボックスに値(小数点はドットです)を入れることによって、位置を設定することもできます。
すべての接続パラメータを設定したら、'保存(Save)' ボタンをクリックすることにより、マップビルダから利用できるように接続を保存できます。
接続の設定を行うと、GIS マップ(GIS Map) で利用することができるようになります。
定義済のマップを含む画面が表示されます。ここでは、マップの編集、マップの表示、デフォルトマップの定義、マップの削除ができます。
サンプルレイヤ:
新たなマップを作成するボタン(作成(Create)ボタン)もあります。
デフォルトマップ を設定します。これは、エージェント表示でその位置を表示するために使用されます。
マップ作成ページで最初に行うことは、マップ名 の設定と、定義されている 利用マップの指定 (後述するベースのレイヤとして、一つ以上を設定することができますが、同時には一つのみが有効です) です。
利用マップを選択すると (デフォルトのマップを変更すると) 、Pandora FMS コンソールが、利用マップのデフォルトデータを利用したいかどうかを尋ねてきます。それを'受け入れる'と、コンソールは全ての位置データを利用マップに設定されている値に設定 (更新) します。ユーザは デフォルトの拡大率 のみ設定する必要があります。キャンセルすると、これらのフィールドの変更は行われず、利用マップの設定のみが追加されます。
基本的なマップのパラメータを設定したら、どのエレメントをマップに表示するかを選択するためのマップのレイヤを定義します。(ただし、デフォルトマップではレイヤを定義する必要がありません。なぜならエージェントビューにおいて、エージェントの位置を表示するのに利用されるためです。)
それぞれのマップは、エージェントを表示するための 一つ以上のレイヤ を持っています。それぞれのレイヤは、グループに属するエージェント や、エージェント一覧 を表示することができます。これにより、それぞれのレイヤに表示するエージェントの設定は簡単です。
レイヤは、'表示' または '非表示' を定義できます。
代表エージェントを持つレイヤにグループを作成したら、他のエージェントで同じグループは生成できません。
レイヤが定義されると(マップの保存をクリックまで、完全には保存されません)、定義されたレイヤーの左の列に移動し、レイヤの削除、または編集が再度可能になります。 レイヤはマップ全体が保存されるまで完全に保存されません。
マップのレイヤ定義が完了したら、マップの保存(Save Map) ボタンにて全てを保存することができます。マップを編集する場合は、マップの更新(Update Map) ボタンが表示されます。
少なくとも一つのマップを定義すると、GIS 機能を使い始めることができます。
左上にマップ操作のための、4つの緑の矢印があります。それぞれの方向の矢印をクリックすることにより、マップを動かすことができます。'+' と '-' は、拡大率を増減させるアイコンです。また、'ズームバー' で直接設定したい拡大率を選択することができます。
マップをドラッグすることによっても、動かすことができます。
マップ上に表示されているエージェントをクリックすると、そのエージェントに関する詳細情報を表示できます。追加情報画面が表示され、エージェントの名前はエージェント表示へのリンクになっています。
右側の緑の背景に白の '+' をクリックすると、レイヤの操作パネルが開きます。緑色のボックスが表示され、ベースのレイヤ (利用マップが一つ以上定義されている場合) および、表示するレイヤを選択することができます。
エージェントの階層(Hierarchy of Agents) と呼ばれる特別なシステム定義レイヤもあります。 このレイヤーが表示されている場合は、赤い点線が表示され、両方が表示されている場合はエージェントがその親要素に接続されます。
フィルタボタンの隣に、マップの更新間隔を設定する 更新(Refresh) というコンボボックスがあります。マップは、指定した間隔でエージェントを更新するために、http://ja.wikipedia.org/wiki/AJAX AJAX を呼び出します。
Pandora FMS コンソールのエージェント表示にもまた GIS 機能があります。メイン画面でエージェントの 経度、緯度、高度 を表示します。
トップバーに、エージェントの GISビュー を表示するためのボタンがあります。(GIS が有効な場合)
ここで、デフォルトマップでのエージェントの現在の位置が表示されます。また、エージェントの過去の位置の履歴およびマップ上に位置のパスが表示されます。
マップにおけるそれぞれの位置は、ドット で表現されます(現在の位置は、エージェントアイコンもしくは、エージェントのアイコンが定義されていない場合はグループアイコンで表されます)。ドットをクリックすることによって、その位置にあった時の情報を表示することができます。また、エージェントアイコンをクリックすると、エージェントの現在の情報が表示されます。以下の画像では、Android デバイス向け Pandora FMS エージェントによって通知されたパスを表示しています。
また、エージェントから通知された全ての情報を表形式で表示することができます。位置情報変換 (reverse geolocation) システムにより、Pandora FMS エージェントがいる場所が、国、都市、通りの名前と共に表示されます。
エージェント管理メニューの中に、新たにエージェントの位置を手動で設定する項目があります。また、GIS 機能に関連するいくつかのパラメータがあります。
エージェント管理 メニューに、新たな GIS データを更新(Update new GIS data) という選択があります。これを無効にすると、エージェントから受け取る位置情報をサーバが無視し、最後に設定された位置を維持するようになります。エージェントが間違った位置情報を送信してくる場合や、位置が固定されている場合に便利です。
デフォルトのマップで、クリックすることによりエージェントの新たな位置を設定することができます。また、位置情報を入力ボックスから入力することもできます。
エージェントの位置を定義すると、新たな GIS データを更新(Update new GIS data) と逆にGISデータを無視オプションが有効になります。このオプションは、エージェントから次の位置情報データが来ても、エージェントの位置情報を再度リセットします。
これが望む動作でない場合は、更新(Update) をクリックする前に GISデータを無視する オプションを無効にすることをお勧めします。
以下に、独自のマップサーバの設定および、現在のコードの機能をより理解するために参考になるリンクを示します。