连接到 Elastic Maps Service
编辑连接到 Elastic Maps Service编辑
Elastic Maps Service (EMS) 是一项托管行政边界图层和平铺矢量形状的服务。如果您使用的是 Kibana 的开箱即用设置,则地图已配置为使用 EMS。
如果您处于受限或完全隔离的环境中,则可能需要配置防火墙以允许访问 EMS 资源。请在下方查找有关 Elastic Maps Service 使用的域和 HTTP 标头的详细信息。或者,可以禁用 或在本地安装Elastic Maps Service。
域编辑
EMS 请求发送到以下域
- 图块服务:
tiles.maps.elastic.co
- 文件服务:
vector.maps.elastic.co
标头编辑
在下方查找来自 Kibana 的请求和响应标头示例,以及一个最小的 curl
请求示例,其中显示了每个服务发送的响应标头。
这些标头可能会随时更改,恕不另行通知,并且仅供参考。
EMS 图块服务编辑
EMS 图块服务以三种不同的样式提供底图,作为地图可视化的默认背景。底图使用遵循 OpenMapTiles 架构的 OpenStreetMap 数据,并可在 maps.elastic.co 上进行浏览。
描述可用底图的图块服务 JSON 清单的标头。
详情
curl -I 'https://tiles.maps.elastic.co/v8.14/manifest?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=8.14.3' \ -H 'User-Agent: curl/7.81.0' \ -H 'Accept: */*' \ -H 'Accept-Encoding: gzip, deflate, br'
服务器响应
HTTP/2 200 server: BaseHTTP/0.6 Python/3.11.4 date: Mon, 20 Nov 2023 15:08:46 GMT content-type: application/json; charset=utf-8 elastic-api-version: 2023-10-31 access-control-allow-origin: * access-control-allow-methods: GET, OPTIONS, HEAD access-control-allow-headers: Origin, Accept, Content-Type, kbn-version, elastic-api-version access-control-expose-headers: etag content-encoding: gzip vary: Accept-Encoding x-varnish: 844076 5416505 accept-ranges: bytes varnish-age: 85285 cache-control: private, max-age=86400 via: 1.1 varnish (Varnish/7.0), 1.1 google alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Host: tiles.maps.elastic.co User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Referer: https://deployment-host/app/maps/map Origin: https://deployment-host Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site Pragma: no-cache Cache-Control: no-cache TE: trailers
server: BaseHTTP/0.6 Python/3.11.4 date: Mon, 20 Nov 2023 17:53:10 GMT content-type: application/json; charset=utf-8 elastic-api-version: 2023-10-31 access-control-allow-origin: * access-control-allow-methods: GET, OPTIONS, HEAD access-control-allow-headers: Origin, Accept, Content-Type, kbn-version, elastic-api-version access-control-expose-headers: etag content-encoding: gzip vary: Accept-Encoding x-varnish: 8848609 1142291 accept-ranges: bytes varnish-age: 65725 cache-control: private, max-age=86400 content-length: 341 via: 1.1 varnish (Varnish/7.0), 1.1 google alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
来自图块服务的 _protobuffer_ 格式的矢量图块资产的标头。
详情
$ curl -I 'https://tiles.maps.elastic.co/data/v3/1/1/0.pbf?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=8.14.3' \ -H 'User-Agent: curl/7.81.0' \ -H 'Accept: */*' \ -H 'Accept-Encoding: gzip, deflate, br'
服务器响应
HTTP/2 200 content-encoding: gzip content-length: 144075 access-control-allow-origin: * access-control-allow-methods: GET, OPTIONS, HEAD access-control-allow-headers: Origin, Accept, Content-Type, kbn-version, elastic-api-version access-control-expose-headers: etag x-varnish: 3269455 5976667 accept-ranges: bytes varnish-age: 9045 via: 1.1 varnish (Varnish/7.0), 1.1 google date: Mon, 20 Nov 2023 15:08:19 GMT age: 78827 last-modified: Thu, 16 Sep 2021 17:14:41 GMT etag: W/"232cb-zYEfNgd8rzHusLotRFzgRDSDDGA" content-type: application/x-protobuf vary: Accept-Encoding cache-control: public,max-age=3600 alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Host: tiles.maps.elastic.co User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Referer: https://deployment-host/app/maps/map Origin: https://deployment-host Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site TE: trailers
content-encoding: gzip content-length: 101691 access-control-allow-origin: * access-control-allow-methods: GET, OPTIONS, HEAD access-control-allow-headers: Origin, Accept, Content-Type, kbn-version, elastic-api-version access-control-expose-headers: etag x-varnish: 4698676 3660338 accept-ranges: bytes varnish-age: 9206 via: 1.1 varnish (Varnish/7.0), 1.1 google date: Mon, 20 Nov 2023 15:05:29 GMT age: 75788 last-modified: Thu, 16 Sep 2021 17:14:41 GMT etag: W/"18d3b-ot9ckSsdpH7n+yJz4BXXQp6Zs08" content-type: application/x-protobuf vary: Accept-Encoding cache-control: public,max-age=3600 alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
来自图块服务的精灵图像资产的标头
详情
curl -I 'https://tiles.maps.elastic.co/styles/osm-bright-desaturated/sprite.png' \ -H 'User-Agent: curl/7.81.0' \ -H 'Accept: image/avif,image/webp,*/*' \ -H 'Accept-Encoding: gzip, deflate, br'
服务器响应
HTTP/2 200 content-length: 17181 access-control-allow-origin: * access-control-allow-methods: GET, OPTIONS, HEAD access-control-allow-headers: Origin, Accept, Content-Type, kbn-version, elastic-api-version access-control-expose-headers: etag x-varnish: 8769943 4865354 accept-ranges: bytes varnish-age: 250 via: 1.1 varnish (Varnish/7.0), 1.1 google date: Tue, 21 Nov 2023 14:44:36 GMT age: 592 etag: W/"431d-/dqE/W5Q3FqkHikyDQtCuQqAdlY" content-type: image/png cache-control: public,max-age=3600 alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Host: tiles.maps.elastic.co User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: image/avif,image/webp,*/* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Referer: https://deployment-host/app/maps/map Origin: https://deployment-host Connection: keep-alive Sec-Fetch-Dest: image Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site Pragma: no-cache Cache-Control: no-cache TE: trailers
content-length: 17181 access-control-allow-origin: * access-control-allow-methods: GET, OPTIONS, HEAD access-control-allow-headers: Origin, Accept, Content-Type, kbn-version, elastic-api-version access-control-expose-headers: etag x-varnish: 3530683 3764574 accept-ranges: bytes varnish-age: 833 via: 1.1 varnish (Varnish/7.0), 1.1 google date: Mon, 20 Nov 2023 14:44:29 GMT age: 77048 etag: W/"431d-/dqE/W5Q3FqkHikyDQtCuQqAdlY" content-type: image/png cache-control: public,max-age=3600 alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
EMS 文件服务编辑
EMS 文件服务提供用于 等值区域地图绘制 的行政边界,作为 GeoJSON 或 TopoJSON 格式的静态资产,并可在 maps.elastic.co 上进行浏览。
声明所有可用数据集的文件服务 JSON 清单的标头。
详情
curl -I 'https://vector.maps.elastic.co/v8.14/manifest?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=8.14.3' \ -H 'User-Agent: curl/7.81.0' \ -H 'Accept: */*' \ -H 'Accept-Encoding: gzip, deflate, br'
服务器响应
HTTP/2 200 x-guploader-uploadid: ABPtcPp_BvMdBDO5jVlutETVHmvpOachwjilw4AkIKwMrOQJ4exR9Eln4g0LkW3V_LLSEpvjYLtUtFmO0Uwr61XXUhoP_A x-goog-generation: 1689593295246576 x-goog-metageneration: 1 x-goog-stored-content-encoding: gzip x-goog-stored-content-length: 108029 content-encoding: gzip x-goog-hash: crc32c=T5gVpw== x-goog-hash: md5=6F8KWV8VTdx8FsN2iFehow== x-goog-storage-class: MULTI_REGIONAL accept-ranges: bytes content-length: 108029 access-control-allow-origin: * access-control-expose-headers: Authorization, Content-Length, Content-Type, Date, Server, Transfer-Encoding, X-GUploader-UploadID, X-Google-Trace, accept, elastic-api-version, kbn-name, kbn-version, origin server: UploadServer date: Tue, 21 Nov 2023 14:25:07 GMT expires: Tue, 21 Nov 2023 15:25:07 GMT cache-control: public, max-age=3600,no-transform age: 2170 last-modified: Mon, 17 Jul 2023 11:28:15 GMT etag: "e85f0a595f154ddc7c16c3768857a1a3" content-type: application/json alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Host: vector.maps.elastic.co User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Referer: https://deployment-host/app/maps/map Origin: https://deployment-host Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site Pragma: no-cache Cache-Control: no-cache
x-guploader-uploadid: ABPtcPoUFrCmjBeebnfRxSZp44ZHsZ-_iQg7794RU1Z7Lb2cNNxXsMRkIDa5s7VBEfyehvo-_9rcm1A3HfYW8geguUxKrw x-goog-generation: 1689593295246576 x-goog-metageneration: 1 x-goog-stored-content-encoding: gzip x-goog-stored-content-length: 108029 content-encoding: gzip x-goog-hash: crc32c=T5gVpw== x-goog-hash: md5=6F8KWV8VTdx8FsN2iFehow== x-goog-storage-class: MULTI_REGIONAL accept-ranges: bytes content-length: 108029 access-control-allow-origin: * access-control-expose-headers: Authorization, Content-Length, Content-Type, Date, Server, Transfer-Encoding, X-GUploader-UploadID, X-Google-Trace, accept, elastic-api-version, kbn-name, kbn-version, origin server: UploadServer date: Tue, 21 Nov 2023 11:24:45 GMT expires: Tue, 21 Nov 2023 12:24:45 GMT cache-control: public, max-age=3600,no-transform age: 3101 last-modified: Mon, 17 Jul 2023 11:28:15 GMT etag: "e85f0a595f154ddc7c16c3768857a1a3" content-type: application/json alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 X-Firefox-Spdy: h2
文件服务中 TopoJSON 格式的示例数据集的标头。
详情
curl -I 'https://vector.maps.elastic.co/files/world_countries_v7.topo.json?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=8.14.3' \ -H 'User-Agent: curl/7.81.0' \ -H 'Accept: */*' \ -H 'Accept-Encoding: gzip, deflate, br'
服务器响应
HTTP/2 200 x-guploader-uploadid: ABPtcPpmMffchVgfHIr-SSC00WORo145oV-1q0asjqRvjLV_7cIgyfLRfofXV-BG7huMYABFypblcgdgXRBARhpo2c88ow x-goog-generation: 1689593325442971 x-goog-metageneration: 1 x-goog-stored-content-encoding: gzip x-goog-stored-content-length: 587241 content-encoding: gzip x-goog-hash: crc32c=OcROeg== x-goog-hash: md5=8KKIwD6wbKa3YYXTnnFcZw== x-goog-storage-class: MULTI_REGIONAL accept-ranges: bytes content-length: 587241 access-control-allow-origin: * access-control-expose-headers: Authorization, Content-Length, Content-Type, Date, Server, Transfer-Encoding, X-GUploader-UploadID, X-Google-Trace, accept, elastic-api-version, kbn-name, kbn-version, origin server: UploadServer date: Tue, 21 Nov 2023 14:22:16 GMT expires: Tue, 21 Nov 2023 15:22:16 GMT cache-control: public, max-age=3600,no-transform age: 2202 last-modified: Mon, 17 Jul 2023 11:28:45 GMT etag: "f0a288c03eb06ca6b76185d39e715c67" content-type: application/json alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Host: vector.maps.elastic.co User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Referer: https://deployment-host/app/maps/map Origin: https://deployment-host Connection: keep-alive Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site Pragma: no-cache Cache-Control: no-cache
x-guploader-uploadid: ABPtcPqIDSg5tyavvwwtJQa8a8iycoXOCkHBp_2YJbJJnQgb5XMD7nFwRUogg00Ou27VFIs95v7L99OMnvXR1bcb9RW-xQ x-goog-generation: 1689593325442971 x-goog-metageneration: 1 x-goog-stored-content-encoding: gzip x-goog-stored-content-length: 587241 content-encoding: gzip x-goog-hash: crc32c=OcROeg== x-goog-hash: md5=8KKIwD6wbKa3YYXTnnFcZw== x-goog-storage-class: MULTI_REGIONAL accept-ranges: bytes content-length: 587241 access-control-allow-origin: * access-control-expose-headers: Authorization, Content-Length, Content-Type, Date, Server, Transfer-Encoding, X-GUploader-UploadID, X-Google-Trace, accept, elastic-api-version, kbn-name, kbn-version, origin server: UploadServer date: Tue, 21 Nov 2023 12:16:01 GMT expires: Tue, 21 Nov 2023 13:16:01 GMT cache-control: public, max-age=3600,no-transform age: 29 last-modified: Mon, 17 Jul 2023 11:28:45 GMT etag: "f0a288c03eb06ca6b76185d39e715c67" content-type: application/json alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 X-Firefox-Spdy: h2
禁用 Elastic Maps Service编辑
如果您的 Kibana 服务器或浏览器位于专用网络上或防火墙后面,则可能会遇到 EMS 连接问题。如果发生这种情况,您可以禁用 EMS 连接以避免不必要的 EMS 请求。
要禁用 EMS,请更改您的 kibana.yml 文件。
- 将
map.includeElasticMapsService
设置为false
以关闭 EMS 连接。 - 将
map.tilemap.url
设置为您的图块服务器的 URL。这将配置地图的默认图块层。
在本地托管 Elastic Maps Service编辑
在 Elastic Stack 文档 中查找有关在隔离环境中安装 Elastic 组件的更多详细信息。
如果无法从 Kibana 服务器或浏览器客户端连接到 Elastic Maps Service,并且您的集群具有适当的许可证级别,则可以选择在您自己的基础架构上托管该服务。
Elastic Maps Server 是 Elastic Maps Service 的自管理版本,作为 Docker 映像提供,提供 EMS 底图和 EMS 边界。该映像捆绑了最高缩放级别为 8 的底图。将其连接到您的 Elasticsearch 集群以进行许可证验证后,您可以选择下载和配置更详细的底图数据库。
您可以使用 docker pull
从 Elastic Docker 注册表下载 Elastic Maps Server 映像。
docker pull docker.elastic.co/elastic-maps-service/elastic-maps-server-ubi8:8.14.3
启动 Elastic Maps Server 并公开默认端口 8080
docker run --rm --init --publish 8080:8080 \ docker.elastic.co/elastic-maps-service/elastic-maps-server-ubi8:8.14.3
Elastic Maps Server 运行后,请按照 localhost:8080
网页上的说明定义配置文件并选择下载更详细的底图数据库。
配置编辑
Elastic Maps Server 从 YAML 格式的配置文件中读取属性,该文件在启动时进行验证。此文件的位置由 EMS_PATH_CONF
容器环境变量提供,默认为 /usr/src/app/server/config/elastic-maps-server.yml
。可以使用 start 命令的 -e
docker 标志更改此环境变量。
常规设置
指定后端服务器的主机。要允许远程用户连接,请将值设置为 Elastic Maps Server 容器的 IP 地址或 DNS 名称。 默认值:_您的主机名_。 等效的 Kibana 设置。 |
|
|
指定后端服务器使用的端口。默认值: |
|
如果您在代理后面运行,请指定要挂载服务器的路径。此设置不能以斜杠 ( |
|
控制状态页面和图层预览的显示。 默认值: |
|
Elastic Maps Server 日志的详细程度。有效值为 |
|
底图数据库的路径。 默认值: |
Elasticsearch 连接和安全设置
|
用于许可证验证的 Elasticsearch 实例的 URL。 |
|
至少具有 |
|
构成 Elastic Maps Server 受信任证书链的一个或多个 PEM 编码的 X.509 证书颁发机构 (CA) 证书的路径。Elastic Maps Server 使用此链在连接到您的 Elasticsearch 集群时建立信任。 等效的 Kibana 设置。 |
|
可选设置,提供 PEM 格式 SSL 证书和密钥文件的路径以及密钥密码。这些文件用于验证 Elastic Maps Server 到 Elasticsearch 的身份,并且在 Elasticsearch 中的 |
|
控制 Elastic Maps Server 在建立到 Elasticsearch 的出站 SSL/TLS 连接时收到的服务器证书的验证。有效值为“ |
服务器安全设置
|
为到 Elastic Maps Server 的入站连接启用 SSL/TLS。设置为 |
|
构成 Elastic Maps Server 受信任证书链的一个或多个 PEM 编码的 X.509 证书颁发机构 (CA) 证书的路径。Elastic Maps Server 使用此链在从最终用户接收入站 SSL/TLS 连接时建立信任。 等效的 Kibana 设置。 |
|
您的 SSL 密钥和证书文件的位置,以及解密通过 |
|
支持的协议和版本的数组。有效协议: |
|
有关格式和有效选项的详细信息,请参阅 OpenSSL 密码列表格式文档。 默认值: |
绑定挂载配置编辑
配置 Elastic Maps Server 的一种方法是通过绑定挂载提供 elastic-maps-server.yml
。使用 docker-compose
,可以像这样指定绑定挂载
version: '2' services: Elastic Maps Server: image: docker.elastic.co/elastic-maps-service/elastic-maps-server-ubi8:8.14.3 volumes: - ./elastic-maps-server.yml:/usr/src/app/server/config/elastic-maps-server.yml
环境变量配置编辑
所有配置设置都可以通过环境变量覆盖,这些变量的命名方式为:所有字母都大写,并将 YAML 句点替换为下划线。例如,elasticsearch.ssl.certificate
可以被环境变量 ELASTICSEARCH_SSL_CERTIFICATE
覆盖。布尔变量必须使用 true
或 false
字符串。
您在环境变量中包含的所有信息都可以通过 ps
命令查看,包括敏感信息。
可以使用以下方式使用 docker-compose
设置这些变量
version: '2' services: Elastic Maps Server: image: docker.elastic.co/elastic-maps-service/elastic-maps-server-ubi8:8.14.3 environment: ELASTICSEARCH_HOST: http://elasticsearch.example.org ELASTICSEARCH_USERNAME: 'ems' ELASTICSEARCH_PASSWORD: 'changeme'
数据编辑
Elastic Maps Server 为整个星球托管矢量图层边界和矢量切片底图。边界包括世界各国、全球行政区域和特定国家/地区。缩放级别高达 8 的底图捆绑在 Docker 映像中。这些底图足以用于国家/地区级别的地图和仪表板。要呈现更详细的地图,请按照首页上的说明下载并配置适当的底图数据库。缩放级别为 14 的最详细底图适用于街道级别的地图,但需要约 90GB 的磁盘空间。
可以从 /maps
端点(相当于您自管的 https://maps.elastic.co 的网页)中浏览可用的底图和边界。
Kibana 配置编辑
在 Elastic Maps Server 运行的情况下,在 kibana.yml 文件中添加 map.emsUrl
配置键,指向服务的根目录。此设置将指示 Kibana 从 Elastic Maps Server 请求 EMS 底图和边界。通常,这将是 Elastic Maps Server 的 主机和端口 的 URL。例如,map.emsUrl: https://my-ems-server:8080
。
状态检查编辑
Elastic Maps Server 定期运行状态检查,该检查以三种不同的形式公开
- 在 Elastic Maps Server 的根目录下,一个网页将呈现不同服务的状态。
- Elastic Maps Server 状态的 JSON 表示形式可在
/status
端点获得。 - Docker
HEALTHCHECK
指令默认运行,并将通知服务的运行状况,运行与/status
端点等效的进程。
如果未完成许可证验证,Elastic Maps Server 将不会响应任何数据请求。
日志记录编辑
日志以 ECS JSON 格式 生成,并发送到标准输出和 /var/log/elastic-maps-server/elastic-maps-server.log
。服务器不会自动轮换日志,但映像中安装了 logrotate
工具。如果要禁用对该文件的输出,请将 /dev/null
挂载到默认日志路径。