如何實(shí)現(xiàn)IP地址分布地圖可視化

首先我們實(shí)現(xiàn)IP地址分布地圖可視化需要用到的技術(shù)是Elasticsearch?+?kibana,下面IP數(shù)據(jù)云的小編具體講解一下操作,另外如果需要現(xiàn)成的IP地址數(shù)據(jù),也可以通過IP數(shù)據(jù)云的IP數(shù)據(jù)庫進(jìn)行查詢。

第一步:IP?地址轉(zhuǎn)經(jīng)緯度坐標(biāo)。
第二步:經(jīng)緯度坐標(biāo)借助可視化工具(如:echarts)渲染展示。
整體架構(gòu)圖如下圖所示:

GeoIp?processor?根據(jù)來自?Maxmind?數(shù)據(jù)庫的數(shù)據(jù)添加有關(guān)IP地址地理位置的信息。默認(rèn)情況下,GeoIp?processor?將此信息添加到?geoip?字段下。GeoIp?processor?可以解析?IPv4?和?IPv6?地址。?
實(shí)操步驟如下:
步驟?1:創(chuàng)建預(yù)處理管道
該預(yù)處理的目的就是:將輸入的?IP?字段轉(zhuǎn)換為:Geoip?類型。
步驟?2:創(chuàng)建索引
考慮到后面要批量導(dǎo)入數(shù)千條+數(shù)據(jù),我們采用了取巧的方式。
使用了在創(chuàng)建索引的時(shí)候指定缺省管道(index.default_pipeline)的方式。
這樣的好處是:
靈活:用戶只關(guān)心?bulk?批量寫入數(shù)據(jù)。
零寫入代碼修改:甚至寫入數(shù)據(jù)的代碼一行都不需要改就可以。
步驟?3:寫入一條數(shù)據(jù)
這時(shí)候,我們查看一下完整的?Mapping?張什么樣?
寫入后的數(shù)據(jù),查看返回如下:
第一:geoip?是?object?類型,它有幾個(gè)子字段,含義如下:
geoip.city_name:城市
geoip.continent_name:大陸名稱
geoip.country_iso_code:國家編碼
geoip.location:經(jīng)緯度坐標(biāo),必須是:geo_point?類型
geoip.region_iso_code:地域編碼
geoip.region_name:地域名稱
第二:為節(jié)省存儲,Mapping?可以優(yōu)化。比如:所有的默認(rèn)字符串類型改成:keyword?類型。
第三:為了后面的作圖必須將?location?設(shè)置為?geo_point?類型。
以上三個(gè)步驟:就完成了單條數(shù)據(jù)的寫入。
步驟?4:kibana?可視化展示
創(chuàng)建關(guān)聯(lián)索引模板,目的是創(chuàng)建可視化需要關(guān)聯(lián)的索引數(shù)據(jù)。
創(chuàng)建坐標(biāo)圖,選擇左側(cè)導(dǎo)航欄的?Visualize,然后選擇右側(cè)?Create?new?visualization,然后再選擇:Coordinate?Map?即可。可視化基礎(chǔ)設(shè)置,執(zhí)行后,就能看到可視化結(jié)果。
