前言
我们在使用graylog进行日志收集的过程中,不难发现有一个展示地理位置的“World Map”可供使用。如果你仅仅只是在下图中的位置点击一下,百分之九十九不会给你展示想要的地图并且会弹出一串红色报错信息(剩下的百分之一其实也不会成功^_^)。那么如何开启这个“World Map”呢?本文以下内容将做详细介绍。
配置Geolocation
下载MaxMind City databases
GeoIP2 City Database和 GeoLite2 City Database可以任选一种下载,本次下载GeoLite2 City
数据库,如下图:
配置数据库
-
解压下载的压缩包。
-
根据你不同的安装方式,将
默认文件放置位置GeoLite2-City.mmdb
文件放在合适的位置。本人是采用RPM形式安装的graylog,graylog web界面点击“System->Configurations”,能够看到默认文件的放置位置如下图:
因此将GeoLite2-City.mmdb
放到/etc/graylog/server/
目录下。 -
更新Geo-Location Processor。graylog web界面点击“System->Configurations”,点击下图中的“Update”按钮:
勾选启用复选框,检查文件放置位置,点击“Save”按钮保存配置。
启用Geo-Location Processor
配置GeoIP Resolver Processors
点击“Update”按钮,更新配置:
移动GeoIP Resolver行,将GeoIP解析器设置为要运行的最后一个消息处理器,并启用GeoIP Resolver,然后点击“Save”按钮保存设置:
配置消息处理器测试
至此,配置完成。Graylog将开始寻找仅包含IPv4或IPv6地址的字段,并将其地理位置提取到<field>_geolocation字段中。简单来讲,就是如果你有一个字段field1
的内容仅是ip地址的话,graylog将会根据这个字段的ip将地理位置保存在field1_geolocation
中。
下面我们来测试一下:
-
点击“System->Inputs”,新建Raw/Plaintext TCP类型的input。
新建input -
发送测试消息。
[vagrant@graylogTest1 graylog]$ nc -w2 192.168.2.124 5555 <<< '8.8.8.8'
可看到如下图所示的效果:
示例1
上图message字段仅包含ip地址,然后graylog就会根据此ip延伸出message_city_name
、message_country_code
、message_geolocation
三个字段。
倘若你的ip地址并没有单独存在在任何一个字段中,那么你可以使用Extractor将ip给提取出来存为一个字段,然后graylog就可以确定地理位置了。如下图中的情况,message字段内容包含9.9.9.9地址,此时就可以创建一个Extractor进行提取。
创建Extractor提取ip
ip地址的格式比较固定,我们可以使用Grok pattern去匹配,Grok pattern已经有现成的匹配ip规则,就省去写正则了。
提取ip 填写提取规则 保存提取器
完成之后,当我们收到上述消息的时候,出现的效果就是这样的:
image.png
展示地图
当出现<field>_geolocation
字段后,点击“World Map”字段即可看到在地图中的位置。
添加到Dashboard
Graylog官方文档针对Geolocation有详细的介绍,本文仅是将跟随官方文档进行配置的过程做一个记录,仅供参考。
网友评论