kibana自动补全功能失效的几个原因

不能自动补全index?

当用户在 kibana 的 Dev Tools 页面手写查询时,理应可以自动补全 index 的名称,如下图:
在这里插入图片描述
如果不能自动补全,则点击 Settings ,看自动补全功能是否勾选上了:
在这里插入图片描述
如果勾选上了,却依然不能自动补全,则开浏览器的 F12 窗口,重新加载 kibana 网页,查看 HTTP 请求是否成功。如下图:
在这里插入图片描述
原理:kibana 的 Dev Tools 页面第一次加载时,会自动从 ES 获取所有 index 及 alias 名称列表、所有 index mappings、所有 _template 名称列表。这样才能在用户手写查询语句时,自动补全。
如果 HTTP 请求请求失败,大概率是当前用户的权限不足。
例如 kibana v7 版本重新划分了权限策略,对于 _template 没有只读策略,只有写策略。因此用户没有写权限,就不能获取 _template 名称列表,导致不能自动补全。用户需要提升权限,或者在 Settings 中取消自动补全 _template ,避免阻碍自动补全 _alias 。

不能自动补全field?

当用户在 kibana 的 Dev Tools 页面手写查询时,理应可以自动补全 field 字段名称(字段的值不能自动补全),如下图:
请添加图片描述
如果不能自动补全field,则开浏览器的 F12 窗口,重新加载 kibana 网页,查看 HTTP 请求是否成功。如下图:
请添加图片描述
本文再列举其它几个可能的原因:

  • kibana v7.0 版本破坏了 autocomplete 功能,直到 v7.10 才修复。参考:https://github.com/elastic/kibana/pull/85509

  • kibana v7.x 版本限制了全部 index mappings 的体积不能超过 10MB ,否则不会处理。源代码如下:

    https://github.com/elastic/kibana/blob/1796b5ec8fa1e60ccea63f2e5c25ccc665b92fdc/src/plugins/console/public/lib/mappings/mappings.js#L312
    在这里插入图片描述
    如果超过 10MB ,在浏览器的 F12 控制台可以看到报错:
    Mapping size is larger than 10MB
    如下图:
    请添加图片描述
    直到 kibana v8.5 才删除了这段前端代码:
    https://github.com/elastic/kibana/commit/3db77af5d7066697635ad3e1eeeae81a92ae9711

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值