GeoIP 数据库管理

编辑

Logstash 提供了一种用于配置和维护 GeoIP 数据库的机制,插件可以使用该机制来确保它们能够访问始终保持最新且符合 EULA(最终用户许可协议)的数据库,以进行地理位置丰富化。此机制需要互联网访问或到 Elastic GeoIP 数据库服务的网络路由。

如果数据库管理器在 logstash.yml 中启用(默认情况下是启用的),插件可以订阅数据库,如果有效的数据库尚未可用,则会触发下载。Logstash 每天检查更新。当发现更新的数据库时,它会在后台下载并使其可供依赖它的插件使用。

GeoIP 数据库是根据最终用户许可协议从 MaxMind 单独许可的,该协议禁止在更新可用超过 30 天后使用数据库。当 Logstash 30 天或更长时间无法访问数据库服务以验证托管数据库是否为最新时,该数据库将被删除并使其无法供订阅它的插件使用。

GeoIP 数据库管理是 Logstash 的一项许可功能,仅在 Elastic 许可的完整 Logstash 发行版中可用。

数据库指标

编辑

您可以通过 节点统计 API 监控托管数据库的状态。

以下请求返回一个 JSON 文档,其中包含数据库管理器统计信息,包括:

  • 数据库状态和新鲜度

    • geoip_download_manager.database.*.status

      • init:初始 CC 数据库状态
      • up_to_date:使用最新的 EULA 数据库
      • to_be_expired:25 天没有调用服务
      • expired:30 天没有调用服务
    • fail_check_in_days:自上次成功以来 Logstash 未能调用服务的天数
  • 有关下载成功和失败的信息

    • geoip_download_manager.download_stats.successes:成功检查和下载的次数
    • geoip_download_manager.download_stats.failures:失败的检查或下载次数
    • geoip_download_manager.download_stats.status

      • updating:当前正在检查和下载
      • succeeded:上次下载成功
      • failed:上次下载失败
curl -XGET 'localhost:9600/_node/stats/geoip_download_manager?pretty'

示例响应

{
  "geoip_download_manager" : {
    "database" : {
      "ASN" : {
        "status" : "up_to_date",
        "fail_check_in_days" : 0,
        "last_updated_at": "2021-06-21T16:06:54+02:00"
      },
      "City" : {
        "status" : "up_to_date",
        "fail_check_in_days" : 0,
        "last_updated_at": "2021-06-21T16:06:54+02:00"
      }
    },
    "download_stats" : {
      "successes" : 15,
      "failures" : 1,
      "last_checked_at" : "2021-06-21T16:07:03+02:00",
      "status" : "succeeded"
    }
  }
}