配置 GeoIP 数据库管理编辑

要配置 GeoIP 数据库管理

  1. 请确认您正在使用包含 GeoIP 数据库管理功能的许可证。

    有关更多信息,请参阅 https://elastic.ac.cn/subscriptions许可证管理

  2. logstash.yml 文件中指定 geoip 数据库管理设置 以根据需要调整配置。

Logstash 中的 GeoIP 数据库管理设置编辑

您可以在 logstash.yml 中设置以下 xpack.geoip 设置以配置 geoip 数据库管理器。有关配置 Logstash 的更多信息,请参阅 logstash.yml

xpack.geoip.downloader.enabled
(布尔值) 如果为 true,Logstash 会自动从 xpack.geoip.downloader.endpoint 下载 GeoIP2 数据库并管理更新。如果为 false,Logstash 不会管理 GeoIP2 数据库,需要 GeoIP2 数据库的插件必须配置为提供自己的数据库。
xpack.geoip.downloader.endpoint
(字符串) 用于下载 GeoIP2 数据库更新的端点 URL。例如,https://mydomain.com/overview.json。默认值为 https://geoip.elastic.co/v1/database。请注意,Logstash 会定期向 ${xpack.geoip.downloader.endpoint}?elastic_geoip_service_tos=agree 发送 GET 请求,期望得到通常在 overview.json 中找到的关于数据库的元数据列表。
xpack.geoip.downloader.poll.interval
(时间值) Logstash 在 xpack.geoip.downloader.endpoint 上检查 GeoIP2 数据库更新的频率。例如,6h 表示每六小时检查一次。默认值为 24h(24 小时)。

离线和隔离环境编辑

如果 Logstash 无法访问互联网,或者您想禁用数据库管理器,请在 logstash.yml 中将 xpack.geoip.downloader.enabled 值设置为 false。禁用数据库管理器后,需要 GeoIP 查询的插件必须配置自己的 GeoIP 数据库来源。

使用 HTTP 代理编辑

如果您无法直接连接到 Elastic GeoIP 端点,请考虑设置 HTTP 代理服务器。然后,您可以使用 http_proxy 环境变量指定代理。

export http_proxy="http://PROXY_IP:PROXY_PORT"

使用自定义端点编辑

如果您在隔离环境中工作,无法从 Elastic 端点更新数据库,您可以从 MaxMind 下载数据库并引导服务。

  1. MaxMind 网站 下载 GeoLite2-ASN.mmdbGeoLite2-City.mmdb 数据库文件。
  2. 将两个数据库文件复制到同一个目录中。
  3. 下载 Elasticsearch.
  4. 从您的 Elasticsearch 目录运行

    ./bin/elasticsearch-geoip -s my/database/dir
  5. 从您的目录提供静态数据库文件。例如,您可以使用 Docker 从 nginx 服务器提供文件

    docker run -p 8080:80 -v my/database/dir:/usr/share/nginx/html:ro nginx
  6. 在 Logstash 中使用 xpack.geoip.download.endpoint=https://127.0.0.1:8080/overview.json 设置在 logstash.yml 中指定服务的端点 URL。

Logstash 会从该服务自动获取更新。