Kibana not able to load Map tiles from maptiler

I've set up a Maptiler server with a world map as my environment is airgapped.

In my Kibana.yml config i have:

map.includeElasticMapsService: false
map.tilemap.url: "localhost:3650/api/maps/streets/{z}/{x}/{y}.png"
map.proxyElasticMapsServiceInMaps: true
map.tilemap.options.attributions: "[OpenMapTiles](http://www.openmaptiles.org/)"
map.tilemap.options.maxZoom: 18

When i go to view a map in Kibana i have 2 issues:

  • Where do i replace the default map layer to use my map layer instead of the default elastic.co map service? It would be a long day at the office if im to manually replace all the layers.

  • Kibana queries my Maptiler server seemingly correct and gets a URL for the tiles like: "http://server.ip.address:3650/api/maps/streets/3/3/1.png"
    The server returns OK, and if you went to the URL above you will see the tile as below. Which suggests maptiler is returning the tiles correctly:

But in kibana i just see a blank map:

And the networking request looks to fail:

I can see that Kibana requests the same URL as i showed in the example above, and maptiler serves the tile correctly. Is there anything i'm missing? The custom mapping documentation is a bit lacking.

I used this blogpost as an example:

Where do i replace the default map layer to use my map layer instead of the default elastic.co map service? It would be a long day at the office if im to manually replace all the layers.

There is no automated way to update existing saved objects with new base map layers. However, once map.tilemap.url is set in your kibana.yml, then any newly created map will use this basemap layer.

I can see that Kibana requests the same URL as i showed in the example above, and maptiler serves the tile correctly. Is there anything i'm missing?

Ensure your tile server has configured Cross-Origin Resource Sharing (CORS) so tile requests from your Kibana domain have permission to access your tile server domain. More help can be found at Troubleshoot Maps | Kibana Guide [7.10] | Elastic

Also, once 7.11 is released, there is now an option to host Elastic Map Service locally as a docker image. Connect to Elastic Maps Service | Kibana Guide [7.11] | Elastic