ELK6.0如何通过命令行设置Kibana默认索引模式
我刚好在ELK 6.x版本中处理过相同的需求,旧的4.5.0版本方案确实因为Kibana的内部文档结构变更失效了,给你提供两种可行的方法,重点说你需要的命令行方式:
方法一:通过Elasticsearch API(命令行curl)设置
在6.x版本中,Kibana的默认索引模式配置存储在.kibana索引的config类型文档里,不再是旧版本单独的default-index-pattern文档。具体操作步骤如下:
确认目标索引模式已创建(你已经完成这一步,这里再提一下确保前置条件):
你的创建命令没问题,确保oauth-message-*索引模式已经存在:curl -XGET "http://${host}:9200/.kibana/_search?q=index-pattern.title:oauth-message-*"查询现有Kibana配置文档ID
6.x版本中,config文档的ID格式为config:{你的Kibana版本号},比如6.0.0就是config:6.0.0。你可以先查询确认:curl -XGET "http://${host}:9200/.kibana/_search?q=type:config"响应结果里会显示对应的文档ID,记下来。
设置默认索引模式
使用PUT请求更新config文档,将defaultIndex字段设为你的索引模式标题:curl -XPUT "http://${host}:9200/.kibana/doc/config:6.0.0" -H 'Content-Type: application/json' -d' { "type": "config", "config": { "defaultIndex": "oauth-message-*" } }'注意替换命令中的
config:6.0.0为你实际查到的文档ID。验证设置结果
可以通过查询config文档确认:curl -XGET "http://${host}:9200/.kibana/doc/config:6.0.0"或者打开Kibana的Discover页面,会自动加载你设置的默认索引模式。
方法二:通过Kibana UI设置(可选)
如果你有Kibana的管理权限,也可以通过可视化界面操作:
- 进入Kibana的Management → Index Patterns页面
- 找到
oauth-message-*索引模式,点击右上角的Set as default按钮即可
为什么旧方案失效?
ELK 4.5.0版本中,默认索引模式是存储在.kibana索引的default-index-pattern类型文档中,但从5.x版本开始,Kibana重构了内部配置存储结构,将默认索引模式整合到了config类型的文档里,所以旧的API调用路径不再生效。
内容的提问来源于stack exchange,提问作者richard

