elasticsearch6.3.1准备升级到6.4.0,先启动一个新的es6.4.0集群,然后将数据从es6.3.1集群中同步过来。同步完成后,也使用elasticsearch6.4.0对应的kibana6.4.0去查看数据,但是打开discover之后,查看case数据,报错:“bad way”,具体如下:
The stacktrace of error:
Fatal Error
Courier fetch: Unable to connect to the server.
Version: 6.4.0
Build: 17929
Error: Bad Gateway
at respond (https://SNIP/bundles/vendors.bundle.js:313:149378)
at checkRespForFailure (https://SNIP/bundles/vendors.bundle.js:313:148589)
at https://SNIP/bundles/vendors.bundle.js:313:157823
at processQueue (https://SNIP/bundles/vendors.bundle.js:197:199684)
at https://SNIP/bundles/vendors.bundle.js:197:200647
at Scope.$digest (https://SNIP/bundles/vendors.bundle.js:197:210409)
at Scope.$apply (https://SNIP/bundles/vendors.bundle.js:197:213216)
at done (https://SNIP/bundles/vendors.bundle.js:197:132715)
at completeRequest (https://SNIP/bundles/vendors.bundle.js:197:136327)
at XMLHttpRequest.requestLoaded (https://SNIP/bundles/vendors.bundle.js:197:135223)
打开其他的index-name数据,却又是好的,完全正常。
于是尝试:
- kibana6.3.1连接到elasticsearch6.4.0,discover界面查看case索引数据,同样的报错;
- kibana6.4.3连接到elasticsearch6.4.0,discover界面查看case索引数据,正常。
使用curl的形式,直接http方法查询数据,OK。
找为什么会这样的原因,然后对比查看kibana6.3.1和kibana6.4.0的request请求,发现了请求_msearch
的Request Payload
一点不同,kibana6.4.0的_msearch
中多了一个“docvalue_fields”。
google发现,es 6.4.0开始 增加了一个可选参数 format, 但kibana6.4.0的discover没带format,github地址
怀疑是kibana6.4.0的版本的问题,于是在官网上 Kibana Release Notes » Kibana 6.4.1
上面明确写着:
Discover
docvalue_fields
这里,的确有fix bug,确定了是kibana的问题。
至此,确定了问题所在。这是由于kibana6.4.0引起的问题,直接升级到6.4.1及以上版本,即可。我这里直接用的6.4.3版本。