geoip.location 不适用于通过 logstash 发送的修改后的索引名称

geoip.location doesnot work with modified indexnames sent via logstash

geoip.locationgeo_point 数据类型,当事件从 logstash 发送到具有默认索引名称的 elasticsearch 时。由于 geoip.location 具有 geo_point 数据类型,因此当 kibana 查找地图的 geo_point 数据类型时,我可以在 kibana 中查看地图中的位置绘图。

geoip.location 变成 geoip.location.lat, geoip.location.lon with number 数据类型,当一个事件从 logstash 发送到 elasticsearch 并修改了 indexName。因此,我无法在 kibana 的地图中查看位置图。

我不明白为什么当我尝试将数据添加到修改后的索引名称时,elasticsearch 的行为会有所不同。这是 elasticsearch 的错误吗?

对于我的用例,我需要使用修改后的索引名,因为我每天都需要新索引。计划是将特定日期的日志存储在单个索引中。所以,如果有 7 天,那么我需要有 7 个包含每天日志的索引(新索引应该基于当前日期创建)。

我四处寻找解决方案,但我无法理解并让它为我工作。请帮我解决这个问题

更新(看完xeraa的回答我做了什么?)

在kibana的devtools中,

GET _template/logstash - 显示 index_patterns 属性 中允许的模式以及其他属性

我在 index_patterns 中包含了我的模式 (dave*) 并触发了 PUT 请求。您必须在 PUT 请求中传递整个现有 body 内容(您将在 GET 请求中收到)以及您所需的 index_patterns,否则默认设置将消失因为 PUT api 将替换您在 PUT body

中传递的任何数据
PUT _template/logstash
{
  ...
  "index_patterns": [
    "logstash-*","dave*"
   ],
  ...
}

我猜想默认名称有一个模板集,如果您重命名它就不会发生这种情况。

检查 GET _template 是否与您的旧索引名称匹配并更新设置,以便它也应用到新的。