计算机系统应用教程网站

网站首页 > 技术文章 正文

一个意外操作导致kibana查询缓慢 微信建一个新群怎么操作

btikc 2024-10-29 13:13:10 技术文章 3 ℃ 0 评论



今天发现kibana查询及操作都很慢,优化es内存,调整kibana请求超时时间均无太大改观。

说下业务场景,主要是通过filebeat收集个平台的log日志,存储到es中在通过kibana进行日志分析。

但今天查询特慢,频繁出现查询超时。尝试进行了如下操作:

1.加大kibana查询超时时间。

2.es加大虚拟机内存。

3.优化es索引,删除无用索引等。

通过上述操作后还是无法解决。kibana一直查询超时。


之后检查sentinl时发现了错误,sentinl中有这么一段查询es中ERROR级别错误日志的脚本。

sentinl是kibana中实现预警的一款插件。

"query" : {
 "bool" : {
 "must" : [
 {
 "match" : {
 "level" : {
 "query" : "ERROR",
 "operator" : "OR",
 "prefix_length" : 0,
 "max_expansions" : 50,
 "fuzzy_transpositions" : true,
 "lenient" : false,
 "zero_terms_query" : "NONE",
 "boost" : 1.0
 }
 }
 },
 {
 "range" : {
 "@timestamp" : {
 "from" : "now-80S",
 "to" : "now",
 "include_lower" : true,
 "include_upper" : true,
 "format" : "epoch_millis",
 "boost" : 1.0
 }
 }
 }
 ],
 "adjust_pure_negative" : true,
 "boost" : 1.0
 }
 }
}}]

当定位到es中的log发现了如下错误信息:

org.elasticsearch.transport.RemoteTransportException: [node-1][10.180.14.115:9300][indices:data/read/search[can_match]]
Caused by: org.elasticsearch.ElasticsearchParseException: unit [S] not supported for date math [-80S]
 at org.elasticsearch.common.joda.DateMathParser.parseMath(DateMathParser.java:174) ~[elasticsearch-6.0.1.jar:6.0.1]
 at org.elasticsearch.common.joda.DateMathParser.parse(DateMathParser.java:72) ~[elasticsearch-6.0.1.jar:6.0.1]
 at org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.parseToMilliseconds(DateFieldMapper.java:312) ~[elasticsearch-6.0.1.jar:6.0.1]

问题点在这:unit [S] not supported for date math [-80S],原来es查询语句中时间单位秒写成了大写,导致全表查询。

es中时间单位是区分大小写的S大写的情况相当于该查询进行了全索引查询,肯定是很慢的。

所以日常编码还是要慎重,否则真的只能跑路了。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表