返回介绍

filter配置 - geoip

发布于 2020-06-28 10:03:41 字数 4103 浏览 1075 评论 0 收藏 0

GeoIP 是最常见的免费 IP 地址归类查询库,同时也有收费版可以采购。GeoIP 库可以根据 IP 地址提供对应的地域信息,包括国别,省市,经纬度等,对于可视化地图和区域统计非常有用。

配置示例

  1. filter {
  2. geoip {
  3. source => "message"
  4. }
  5. }

运行结果

  1. {
  2. "message" => "183.60.92.253",
  3. "@version" => "1",
  4. "@timestamp" => "2014-08-07T10:32:55.610Z",
  5. "host" => "raochenlindeMacBook-Air.local",
  6. "geoip" => {
  7. "ip" => "183.60.92.253",
  8. "country_code2" => "CN",
  9. "country_code3" => "CHN",
  10. "country_name" => "China",
  11. "continent_code" => "AS",
  12. "region_name" => "30",
  13. "city_name" => "Guangzhou",
  14. "latitude" => 23.11670000000001,
  15. "longitude" => 113.25,
  16. "timezone" => "Asia/Chongqing",
  17. "real_region_name" => "Guangdong",
  18. "location" => [
  19. [0] 113.25,
  20. [1] 23.11670000000001
  21. ]
  22. }
  23. }

配置说明

GeoIP 库数据较多,如果你不需要这么多内容,可以通过 fields 选项指定自己所需要的。下例为全部可选内容:

  1. filter {
  2. geoip {
  3. fields => ["city_name", "continent_code", "country_code2", "country_code3", "country_name", "dma_code", "ip", "latitude", "longitude", "postal_code", "region_name", "timezone"]
  4. }
  5. }

需要注意的是:geoip.location 是 logstash 通过 latitudelongitude 额外生成的数据。所以,如果你是想要经纬度又不想重复数据的话,应该像下面这样做:

filter {
geoip {
fields => [“city_name”, “country_code2”, “country_name”, “latitude”, “longitude”, “region_name”]
remove_field => [“[geoip][latitude]”, “[geoip][longitude]”]
}
}
```

小贴士

geoip 插件的 “source” 字段可以是任一处理后的字段,比如 “client_ip”,但是字段内容却需要小心!geoip 库内只存有公共网络上的 IP 信息,查询不到结果的,会直接返回 null,而 logstash 的 geoip 插件对 null 结果的处理是:不生成对应的 geoip.字段。

所以读者在测试时,如果使用了诸如 127.0.0.1, 172.16.0.1, 192.168.0.1, 10.0.0.1 等内网地址,会发现没有对应输出!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文