geoip.location 不适用于通过 logstash 发送的修改后的索引名称
geoip.location doesnot work with modified indexnames sent via logstash
geoip.location
是 geo_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
是否与您的旧索引名称匹配并更新设置,以便它也应用到新的。
geoip.location
是 geo_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
是否与您的旧索引名称匹配并更新设置,以便它也应用到新的。