公司一直在用Amazon AWS的ElasticSearch service, 最近因为AWS提供从5.6到6.5的升级,就在上周日尝试着升级了一下。结果升级之后产生了一堆问题,一边在AWS support开ticket一边自己研究怎么修复。最终幸运的修复了一些,下面介绍一下问题和心得
1. ES 6.0之后不再支持string type:
这里的type指的是index和indice里面的属性type,我所用的之前是下面这样的格式
"request" : {
"type" : "string",
"fields" : {
"raw" : {
"index" : "not_analyzed",
"type" : "string"
}
}
}
升级之后的现象是无法在ES cluster上创建当天的日志indice。后来发现是因为ES从6.0开始不再支持string。于是用Dev Tools将模板升级成下面的样子
"request" : {
"type" : "text",
"fields" : {
"raw" : {
"type" : "keyword"
}
}
}
之所以把"index" : "not_analyzed" 也去掉是因为ES6.5也不支持这种属性了……查了下资料好像只支持true和false。一开始type我改的是text,但是如果raw设置为text好像不能用来搜索。现在模板这样设置之后,我们的属性是只能用来进行模糊搜索的,就像下图一样,我用logtype来搜索会搜索出来很多不相干的结果

而如果用了logtype.raw就会精准匹配。我个人猜测这就是keyword的功效,不是很确定,本人也不是专门研究ES的,所以有错误欢迎指正

修改了模板之后,就可以成功创建当天的log indice了,问题1成功解决
2. visualization和dashboard的修改
这个也是猜测的,升级之后我们保存的search、visualization还有dashboard几乎都失效了。当时只能说是崩溃,后来慢慢排查发现问题主要出在search上
visualization是基于search的,然后dashboard又是基于visualization的,所以修复了search就修复了一切
问题是每次进入都提示下图
Saved object is missing
Could not locate that index-pattern (id:****)
click here to re-create it

这个问题其实以前从5.2升级到5.6的时候遇到过一次,当时的解决方案是把index删掉重新创建一个就恢复了
这次删了N次问题依旧
后来慢慢研究发现问题出在search的设置里
设置里有一条是"index": "logstash-*"
尝试了一下贴index的ID进去,问题顺利解决
怀疑是之前的版本可以用index的名字来链接search和index,6.5不支持这样了。当然更可能是底层有哪个API存了index的一些东西,但是因为我没找到,所以只能用这个笨方法来解决了
一键修复的话只需要导出所有的东西,然后find and replace
3 Kibana白屏
在苦等AWS support的帮助几天无果后,我尝试自己修复了这个问题
首先diss一下AWS support的制度,我的帖子被一个同胞给pick了,然后大概是出于这种帖子看起来就比较麻烦,所以以至于这位同胞没在线的时候我通过电话或者online来排队一个小时也没人理我
描述一下问题,升级6.5之后,另一个cluster无法显示内容,点击discover之后白屏,无任何显示,然后进入Management里的Index Pattern,也是白屏,无任何显示
在苦等几天无果之后,今天早上自己尝试着处理了一下,发现遇到这个问题的真的很少,几乎搜不到同病相怜的朋友。
大部分的问题通过Chorme的debug然后进入Dev Tools大概就能解决掉
后来搜中文发现了一条情况很相似的帖子
https://elasticsearch.cn/question/1744
按照评论里的方法,把.kibana删掉,然后重新创建了一个(我不知道如果不备份会怎样,反正我是把原来的.kibana原封不动的贴回去了)
切记如果使用此方法一定要先在Saved Objects 里备份所有的东西!
我就是没备份,损失了一些search,visualization和dashboard
创建之后没有立刻生效,直到我用Dev Tools试了一下_search api
GET logstash-2019.05.31/_search
我也不知道是不是因为这个,反正我是这样之后Discover就可以进去了。。。
如果不是的话就当成是东方魔术好了……
至此,bug应该算是完美解决了
浙公网安备 33010602011771号