Quantcast
Channel: 容器云计算,Devops,DBA,网络安全。
Viewing all articles
Browse latest Browse all 780

ES7+kibana7解决geoip的location不为geo_point格式,无法建可视化地图

$
0
0

ES7+kibana7解决geoip的location不为geo_point格式,无法建可视化地图

by: 铁乐猫

 

环境

ELK各组件均为7.0版本

出现问题的索引名称为tielemao_web_log*

问题

使用了geoip插件,入库的索引中location仍不是geo_point格式,以致想做地图经纬度的展示时做不了。


原因:

默认的log_template模板中没有任何匹配。

解决办法

新建索引模板,设置匹配成geo_point,且优先度调高。

另外为防以后新项目入log重新碰到这个问题,将默认的log_template模板也加上geo_point的相关设置。


以下方法索引模板是旧版本的,可以直接在kibana中建新版本的索引模板。

默认索引模板添加geoip映射

打开kibana的Dev Tools,本次操作索引模板在web界面下操作比较方便。

log_template会默认就匹配上我们的索引:

在kibana的Dev Tools里的Console中输入

GET /_template/log_template

点击三角形图标执行,右边会出现结果:

{  "log_template" : {    
"order" : 0,   
 "index_patterns" : [      "*log*"    ],    
"settings" : {      
"index" : {        
"number_of_replicas" : "0"      
}   
 },    
"mappings" : { },    
"aliases" : { }  
}
}

index_patterns中可以看到匹配索引名称中带log的:

"index_patterns" : [  "*log*"],

所以以防万一,在这个默认优先级0的模板中也加上:

PUT /_template/log_template
{
  "order": 0,
  "index_patterns": [
    "*log*"
  ],
  "settings": {
    "index": {
      "number_of_replicas": "0"
    }
  },
  "mappings": {
    "properties": {
      "client_ip": {
        "type": "ip"
      },
      "geoip": {
        "dynamic": true,
        "type": "object",
        "properties": {
          "location": {
            "type": "geo_point"
          }
        }
      }
    }
  },
  "aliases": {
    
  }
}
        

这里主要是看:

"mappings": {
  "properties": {
    "client_ip": {
      "type": "ip"
    },
    "geoip": {
      "dynamic": true,
      "type": "object",
      "properties": {
        "location": {
          "type": "geo_point"
        }
      }
    }
  }
},


其中生效的是geoip的那一段,mappings的properties中添加了geoip这个字段,并且使用dynamic,
允许Logstash的geoip插件将解析后的详细字段也保存到ES索引中。

geoip插件解析出来会带有一个location字段,这个字段就是经纬度的坐标点,所以重点是这里要设置geoip.location字段的类型是geo_point。

Geo-point表示为一个object,具有lat和lon两个key。

改完可以GET再去看一下生效没有。

新建匹配的索引模板

我这里按照自己的情况新建了一个优先度为10且一定匹配得上的模板,例:

PUT /_template/template_
tielemao_weblog{
  "index_patterns": [
    "tielemao_web_log*"
  ],
  "order": 10,
  "mappings": {
    "properties": {
      "client_ip": {
        "type": "ip"
      },
      "geoip": {
        "dynamic": true,
        "type": "object",
        "properties": {
          "location": {
            "type": "geo_point"
          }
        }
      }
    }
  },
  "aliases": {
    "tielemao_weblog": {
      
    }
  }
}
        

其中匹配em_web_log*名字的索引,且order优先度为10,比默认的模板都高:

  "index_patterns" : [      "em_web_log*"  ],   "order" : 10,

另外还起了个别名,方便以后零停机时间实现重新索引。

效果

新建完索引后,前面入库的索引及索引模式我都删除掉了,防止新索引模板不生效。

删除后,等待新的索引生成,再在索引管理中查看,己经生效了:

之后再在可视化中做展示就可以了,不会在选择Geohash的时候提示你没有geo_point,例:

【End】



Viewing all articles
Browse latest Browse all 780

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes