Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Tích hợp Third-Party Map Tiles trong Kibana cho Geospatial Visualization nâng cao

Out of the box, Kibana hỗ trợ hiển thị geo-data trên map do Elastic's tile service cung cấp. Đây là intro tuyệt vời cho Kibana, nhưng maximum zoom level bị giới hạn nếu không có X-Pack license. Ví dụ, max zoom cho trụ sở ObjectRocket tại Austin, Texas như bên dưới:

Tin tốt là dễ dàng config Kibana dùng tile service khác hoặc WMS-compliant mapping server.

Tại sao dùng Mapping Service khác?

Elastic tile service là benefit lớn cho tất cả user, nhưng có lúc bạn muốn tách khỏi default service. Một vài lý do:

  • Muốn zoom sâu hơn đến street-level data
  • Muốn add new layers hoặc cung cấp map style khác
  • Muốn fully custom map, ví dụ như inside của một building

Tất cả归结为: tìm server cung cấp data bạn muốn và config Kibana dùng server đó.

Thật không may, Kibana gây nhầm lẫn vì có thể leverage hai loại map service hoàn toàn khác nhau. Tôi giới thiệu cả hai trước khi đi vào cách dùng. Mặc định, Kibana vẽ map từ Tile Map Service (TMS). Tile services cắt map thành square tiles truy cập bằng coordinates và zoom level. Elastic cung cấp service này và config globally trong file kibana.yml. Cách thay thế hiển thị map trong Kibana là dùng WMS-compliant Map Service (WMS). Web map service hoạt động bằng protocol khác và generate map từ data trong GIS database. Cái này set từ trong Kibana UI.

Sử dụng Third Party Map Services

Có nhiều commercial map services, cũng như free data sources tạo map như OpenStreetMap. Cho testing, có free tile services based on OpenStreetMap như Stamen. Về WMS, cũng có free map servers test như National Map tại US. Cuối cùng, có option setup own mapping service, tôi sẽ cover sau.

Setup Kibana dùng Tile Service khác

Lại một lần, mặc định mapping Kibana dựa trên tile service. Stamen (đề cập trên) là free test service yêu thích của tôi, cung cấp nhiều map style sharp, nên test với nó.

Bạn cần truy cập file kibana.yml để thay đổi, nên nếu dùng hosted service như ObjectRocket for Elasticsearch, có thể dùng local kibana install test trước. Khi đã locate kibana.yml, thêm các entry sau:

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).'

Setting đầu là url tile service, theo format endpoint/{z}/{x}/{y}.jpg/png chuẩn. Stamen có nhiều style cool như 'toner' và 'watercolor' - thay 'terrain' trong url. Setting thứ 2 là max zoom settings. Một số service không advertise nên cần trial and error. Cuối cùng, rất quan trọng: properly attribute maps cho creator. Attribution markdown hiển thị ở góc dưới bên phải map visualization.

Sau khi set và restart Kibana, bạn sẽ zoom sâu hơn nhiều và có stylized maps cool. So sánh ảnh dưới với ảnh trên:

Kết nối WMS Map từ Kibana

Config cho WMS map khác một chút và phải set trong Kibana UI, không phải config file. Ví dụ này dùng United States Geological Services' Nationalmap, cụ thể transportation maps để chơi với các layer. Đầu tiên, load coordinate map visualization trong Kibana, click nút "options". Chọn "WMS compliant map server".

Sau khi chọn, nhiều setting mới hiển thị. Cần fill: URL cho WMS server, layers dùng, version WMS standard, image type load, styles dùng. Các setting này mô tả trong Kibana documentation.

Hơi phức tạp hơn tile service chỉ lấy vài coordinates, nhưng may mắn map service chúng ta dùng có built-in tools. Đầu tiên, vào Nationalmap page sẽ có description page đẹp về map và features. Page mô tả map và tất cả layers. Muốn chi tiết capabilities, click link WMS nhỏ ở trên, sẽ thấy detailed XML của server capabilities: version, image formats supported, v.v. Dựa trên info và WMS link, dùng settings sau cho map này:

  • 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

Lưu ý về layers: map có hierarchy layers nhưng không tìm thấy shorthand gọi tất cả nên list từng layer.

Nếu setup xong, bạn sẽ thấy view như sau:

WMS settings cũng có thể set as default cho tất cả visualizations trong Kibana Advanced Settings screen.

Setup Own Map hoặc Tile Server

Cuối cùng, khi muốn production, chạy own tile/map server có thể là đường đi. Có thể làm fully custom maps như NHL rink, hoặc tạo street/topographical maps từ OpenStreetMap và apply own layers. Có great open source tools như geoserver (đề cập trong Elastic blog), hoặc TileCache cung cấp tutorials và detailed docs. OpenStreetMap cung cấp tons info trong wiki giúp bắt đầu, cùng site SWITCH2OSM cung cấp resources serving OpenStreetMap data.

Quan tâm Elasticsearch làm gì cho app? Chúng tôi cung cấp fully managed và hosted Elasticsearch instances kèm DBA experts giúp bạn tận dụng Elasticsearch và Kibana tối đa mà không tốn dev resources. Liên hệ để consult.