Logstash/Elasticsearch保持将大地水准面自动映射到对象,而不是geo_point



我有一些日志,格式如下(我将IP从公共更改为私有,但你已经明白了(:

192.168.0.1 [20/Nov/2019:16:09:28 +0000] GET /some_path HTTP/1.1 200 2 2
192.168.0.2  [20/Nov/2019:16:09:28 +0000] GET /some_path HTTP/1.1 200 2 2

然后我使用以下模式查找这些日志:

grok { match => { "message" => "%{IPORHOST:clientip} [%{HTTPDATE:timestamp}] %{WORD:method} %{URIPATHPARAM:request} %{DATA:httpversion} %{NUMBER:response} %{NUMBER:duration}" } }
geoip { source => "clientip" }

在我的输出部分,我有以下代码:

else  if "host.name" in [host][name]{ #if statement with the hostname
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "mms18-%{+YYYY.MM.dd}"
user => "admin-user"
password => "admin-password"
}
}

问题是,当我去Kibana时,大地水准面位置被映射为一个对象,我不能在地图面板上使用它。由于索引的名称每天都在更改,我无法手动绘制正确的大地水准面图,因为我必须每天都这样做。

我认为部分解决问题的一个解决方案是从Logstash输出中的索引中删除日期,因此它有一个恒定的索引"mms18",然后在Kibana管理控制台上使用它:

PUT mms18
{
"mappings": {
"properties": {
"geoip": {
"properties": {
"location": { "type": "geo_point" }
}
}
}
}
}

然而,这并不理想,因为我希望可以选择显示所有索引及其尊重日期,然后选择删除什么和不删除什么。有没有什么方法可以在保留索引及其日期的同时实现正确的映射?

如有任何帮助,我们将不胜感激。

使用索引模板(index_patterns的值为"mms-*"(将大地水准面映射为地理点。

相关内容

  • 没有找到相关文章

最新更新