Elasticsearch、Logstash、Kibana 8中GeoIP配置及数据库IP使用咨询
ELK 8+ 配置GeoIP功能及客户端IP地理分析实现步骤
1. Logstash 配置GeoIP过滤
Logstash负责从数据库读取客户端IP并完成地理信息解析:
- 确认GeoIP插件状态:ELK 8+ 默认内置
logstash-filter-geoip插件,若缺失可执行命令安装:bin/logstash-plugin install logstash-filter-geoip - 修改Logstash配置文件(如
logstash.conf),在filter段添加GeoIP处理逻辑:
解析后会生成filter { # 替换client_ip为你从数据库读取的客户端IP字段名 geoip { source => "client_ip" target => "geoip" # 可选:自定义GeoIP数据库路径,默认使用内置的GeoLite2-City库 # database => "/opt/logstash/vendor/GeoLite2-City.mmdb" } }geoip字段,包含纬度、经度、城市、国家等地理信息。
2. Elasticsearch 映射配置
需提前配置索引映射,让Elasticsearch正确识别地理坐标字段:
- 手动创建索引映射(适用于固定索引):
PUT /your_index_name { "mappings": { "properties": { "client_ip": { "type": "ip" }, "geoip": { "properties": { "location": { "type": "geo_point" }, "city_name": { "type": "keyword" }, "country_name": { "type": "keyword" } } } } } } - 或创建索引模板(适用于自动生成的批量索引):
PUT /_index_template/geoip_template { "index_patterns": ["your_index_prefix*"], "template": { "mappings": { "properties": { "client_ip": {"type": "ip"}, "geoip": { "properties": { "location": {"type": "geo_point"}, "city_name": {"type": "keyword"}, "country_name": {"type": "keyword"} } } } } } }
3. Kibana 实现GeoIP分析可视化
- 创建索引模式:进入
Stack Management > Index Patterns,创建匹配你索引的模式,确保geoip.location被识别为Geo Point类型。 - 制作地图可视化:
- 进入
Visualize Library,选择Maps类型 - 添加
Documents图层,关联你的索引模式 - 选择
Geo Coordinates,字段指定为geoip.location,可设置聚合规则(如按国家计数)生成标记图或热力图
- 进入
- 搭建分析仪表盘:将地图可视化添加到仪表盘,同时可搭配柱状图、饼图等面板,分析不同地区的访问量分布、Top访问城市等数据。
注意事项
- 仅公网IP可解析出有效地理信息,内网IP无法返回数据
- 如需更精准的地理数据,可前往MaxMind官网注册下载GeoLite2付费版数据库,替换Logstash内置库
geoip字段包含丰富衍生信息,如geoip.country_code2(两位国家码)、geoip.region_name(地区名),可按需在Kibana中使用
内容的提问来源于stack exchange,提问作者sandesh Jadhav
相关产品推荐
相关产品推荐

