データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

Kibanaは、デフォルトでElasticが提供するタイルサービスの地図上に地理データを表示できるようになっています。Kibanaの機能を手軽に試せる優れた入門手段ですが、X-Packライセンスを持っていない場合、ズームレベルには上限があります。例えば、ObjectRocketの本拠地であるテキサス州オースティンの最大ズームは以下の画像のとおりです。

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

朗報なのは、別のタイルサービスやWMS準拠のマッピングサーバーを使うようKibanaを設定するのは、実はとても簡単だということです。

なぜ別のマッピングサービスを使うのか?

Elasticのタイルサービスはすべてのユーザーにとって大きなメリットですが、デフォルト以外のサービスを使いたくなる場面もあります。主な例は以下のとおりです。

  • 街路レベルまでさらにズームインしたい
  • 新しいレイヤーを追加したり、異なる地図スタイルを提供したい
  • 建物内部のような完全にカスタマイズされた地図を作りたい

いずれの場合も、必要なデータを提供するサーバーを見つけ、そのサーバーを使うようにKibanaを設定すればよいだけです。

ただし、Kibanaはまったく異なる2種類のマップサービスを利用できるため、少し混乱を招きがちです。具体的な使い方に入る前に、まずその2種類を紹介します。デフォルトでは、Kibanaはタイルマップサービス(TMS)から地図を描画します。タイルサービスは地図を正方形のタイルに分割し、座標とズームレベルによってアクセスできるようにしたものです。Elasticが提供しているのはこの方式で、kibana.yml設定ファイルでグローバルに設定します。もうひとつの方法は、WMS準拠のマップサービス(WMS)を使うことです。Webマップサービスは異なるプロトコルで動作し、GISデータベース内のデータから地図を生成します。こちらはKibanaのUIから設定できます。

サードパーティのマップサービスを利用する

商用のマップサービスも数多く存在しますし、OpenStreetMapのように無料で地図データを作成できるソースもあります。テスト目的であれば、StamenのようなOpenStreetMapベースの無料タイルサービスを利用できます。WMS側でも、米国のNational Mapなど、テスト用の無料マップサーバーがいくつかあります。さらに、後述するように、自分自身でマッピングサービスを構築するという選択肢もあります。

Kibanaで別のタイルサービスを使う設定

繰り返しになりますが、Kibanaのデフォルトのマッピングはタイルサービスに基づいています。前述のStamenはシャープな地図スタイルを多数提供しているおすすめの無料テストサービスなので、今回はこれを使ってみましょう。

この変更にはkibana.ymlファイルへのアクセスが必要です。ObjectRocket for Elasticsearchのようなホステッドサービスをご利用の場合は、まずローカルのKibanaインストールでテストすることをおすすめします。kibana.ymlファイルを見つけたら、以下のエントリを追加してください。

tilemap.url: "https://stamen-tiles.a.ssl.fastly.net/terrain/{z}/{x}/{y}.jpg"
tilemap.options.maxZoom: 20
tilemap.options.attribution: 'Map tiles by [Stamen Design](https://stamen.com), under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0). Data by [OpenStreetMap](https://openstreetmap.org), under ODbL(https://www.openstreetmap.org/copyright).'

最初の設定はタイルサービスのURLで、標準的なタイルサービスが使う endpoint/{z}/{x}/{y}.jpg/png 形式に従います。Stamenには「toner」や「watercolor」など魅力的なスタイルがいくつかあり、URLの「terrain」部分を置き換えるだけで利用できます。2つ目の設定は最大ズームレベルです。この情報を公開していないサービスもあるため、多少の試行錯誤が必要になるかもしれません。最後に、非常に重要なのが地図の作成者への適切な帰属(アトリビューション)表示です。ここで指定したMarkdownは、地図ビジュアライゼーションの右下に表示されます。

設定を保存してKibanaを再起動すると、ずっと深くズームでき、スタイリッシュな地図が楽しめるようになります。下の画像を冒頭の画像と比較してみてください。

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

KibanaからWMSマップへ接続する

WMSマップの設定方法は少し異なり、設定ファイルではなくKibana自体の中で行う必要があります。この例では、米国地質調査所(USGS)のNationalmap、その中でも交通マップを使用して、利用可能なさまざまなレイヤーを試してみます。まず、Kibanaでコーディネートマップビジュアライゼーションを読み込み、「Options」ボタンをクリックします。そこで「WMS compliant map server」を選択します。

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

選択すると、新しい設定項目がいくつか表示されます。WMSサーバーのURL、使用するレイヤー、サーバーが実行しているWMS標準のバージョン、読み込む画像タイプ、使用するスタイルを入力する必要があります。これらの設定の詳細については、Kibanaの公式ドキュメントを参照してください。

これは座標を指定するだけのタイルサービスより少し複雑ですが、幸い今回使うマップサービスには便利なツールが組み込まれています。まず、Nationalmapのページにアクセスすると、地図とその機能についてのわかりやすい説明ページがあります。このページには地図とすべてのレイヤーの説明が記載されています。地図の機能についてさらに詳しく知りたい場合は、ページ上部にある小さなWMSリンクをクリックすると、バージョンやサポートされる画像フォーマットなど、サーバーの機能に関する詳細なXMLが表示されます。この情報とWMSリンクに基づいて、この地図では以下の設定を使用します。

  • WMS url: https://services.nationalmap.gov/arcgis/services/transportation/MapServer/WMSServer
  • WMS layers: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36
  • WMS version: 1.3.0
  • WMS format: image/png
  • WMS attribution: Provided by the United States Geological Service (Nationalmap.gov)
  • Styles: blank

レイヤーについてひとつ注意点があります。使用する地図にはレイヤーの階層構造があるように見えますが、すべてを一括で呼び出す省略形が見つからなかったため、個々のレイヤーを列挙しています。

以上を設定すると、次のような表示が得られるはずです。

Kibanaでサードパーティ製マップ・タイルサービスを活用する方法

なお、WMSの設定は、KibanaのAdvanced Settings画面ですべてのビジュアライゼーションのデフォルトとして設定することもできます。

独自のマップサーバー/タイルサーバーを構築する

最後に、本番環境での運用を視野に入れたら、独自のタイル/マップサーバーを運用するのが最善策となるかもしれません。NHLのリンクのような完全カスタムの地図を作ったり、OpenStreetMapのようなデータから街路地図や地形図を作成して独自のレイヤーを適用したりできます。Elasticのブログでも紹介されているGeoServerやTileCacheといった優れたオープンソースツールがあり、いずれも導入のためのチュートリアルや詳細なドキュメントを提供しています。また、OpenStreetMapのWikiには開発を始めるための膨大な情報が掲載されており、SWITCH2OSMサイトではOpenStreetMapデータを配信するためのリソースが提供されています。

Elasticsearchがアプリケーションにもたらす可能性に興味がありますか?当社では、DBAの専門家による完全マネージドのホステッドElasticsearchインスタンスを提供しており、開発リソースを占有することなく、ElasticsearchとKibanaを最大限に活用いただけます。お気軽にご相談ください。

  1. FluentdとObjectRocketで実現するハイブリッドクラウドのログ集約

    本記事は Hart Hoover と Ryan Walker による共著です。New RelicアラートをRackspaceサポートへ連携するサービスRackspace の DevOps Automation チームは最近、New Relic から発せられたアラートを Rackspace サポートに通知する新しいサービスを発表しました。このサービスでは、アラートが発生すると自動的にチケットが作成され、DevOps エンジニアが対応します。たとえ深夜3時にアラートが発生しても、お客様は安心して眠ることができるのです。さらに、お客様の環境から収集した他のデータポイントと組み合わせることで、エンジニ

  2. 【Linux入門】systemctlの使い方:サービスの一覧表示・ステータス確認・制御のコツ

    このガイドでは、systemctlコマンドを使ってサービスを一覧表示し、ステータスを確認する方法を詳しく解説します。あわせて、サービスの制御や有効化・無効化など、systemctlのその他の実践的な活用方法についてもご紹介します。 従来のinitスクリプト方式から移行してくると、systemctlはまさに「清々しい」存在です。賛否両論の議論は数多く耳にしましたし、私自身も何度か意見が変わりました。しかし、日々の業務で使い続けた結果、今では完全にsystemctl派です。コマンドの文法は直感的で自然に感じられますし、日常的な運用面でも非常に扱いやすいツールです。私はこの変化を受け入れましたし、古