elasticsearch 文件句柄问题
elastic 回复了问题 • 3 人关注 • 2 个回复 • 5074 次浏览 • 2016-03-24 10:31
es索引模版配置不当导致的aggs聚合查询字段显示错误的问题
Max 发表了文章 • 0 个评论 • 8776 次浏览 • 2016-03-18 16:51
http日志的情况:
1、http日志从logstash写入es时,状态码配置为status,其内容为 200 ,302 ,400 ,404等。
2、使用kibana对该日志的索引进行查询,在discover页面中显示的status内容跟logstash的内容一致,是正常的。
出现问题的场景:
(我这里使用的是kibana的sense插件进行的查询,如果直接使用curl python-ES也是一样的)
查询该索引:
POST http-2016.03.18/_search
{
"fields": ["status"],
"query":{
"bool":{
"must": [
{
"range" : {
"@timestamp" : {"gte" : "now-5m"}
}
}
]
}
},
"_source": "false",
"size": 0,
"aggs": {
"status_type": {
"terms":{"field":"status"}
}
}
}
查询返回的结果中aggregations部分的内容:
"aggregations" : {
"status_type" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [ {
"key" : -56,
"doc_count" : 376341
}, {
"key" : 46,
"doc_count" : 51439
}, {
"key" : 45,
"doc_count" : 5543
}, {
"key" : 48,
"doc_count" : 1669
}, {
"key" : -108,
"doc_count" : 1068
}, {
"key" : -50,
"doc_count" : 11
}, {
"key" : -109,
"doc_count" : 8
}, {
"key" : -112,
"doc_count" : 4
}
寻找原因:
起先先去掉了查询的aggs部分,单独查询query的内容:
POST http-2016.03.18/_search
{
"fields": ["status"],
"query":{
"bool":{
"must": [
{
"range" : {
"@timestamp" : {"gte" : "now-5m"}
}
}
]
}
}
}
返回的结果中,hits显示的status字段内容是正常的:
"hits": {
"total": 1242104,
"max_score": 1,
"hits": [
{
"_index": "http-2016.03.18",
"_type": "log",
"_id": "AVOI3EiwidwPAhB1e7gQ",
"_score": 1,
"fields": {
"status": [
"200"
]
}
}
......
然后查询了http索引的索引信息和模版配置:
GET /http-2016.03.18/
GET /_template/http
发现其中http的status的属性type类型的内容是byte :
"properties": {
"@timestamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
......
......
"status": {
"type": "byte"
},
......
......
原因:
在aggs查询中发现了status字段显示错误的情况,status的type类型在es模版中定义成了byte类型,当status的值超过127后将出现溢出的情况,因此修改为short后,恢复了正常。
(对于http的状态码status,其type类型使用short已经足够了,如果使用integer,long或默认的string类型也是可以的,这里影响的是存储空间占用的大小。)
elasticsearch nested 会增加doc数目吗? 原理是什么
helloes 回复了问题 • 2 人关注 • 1 个回复 • 6154 次浏览 • 2016-03-18 11:42
请教各位,能否指导下,索引模板如何设置,可以让索引按时间命名,多谢!
stab 回复了问题 • 2 人关注 • 2 个回复 • 5644 次浏览 • 2016-03-22 10:19
Elasticsearch自定义索引模板一段时间后消失的问题
stab 回复了问题 • 2 人关注 • 1 个回复 • 4833 次浏览 • 2016-03-22 10:20
请教索引按时间命名的问题!
stab 回复了问题 • 2 人关注 • 1 个回复 • 5693 次浏览 • 2016-03-16 16:38
关于es集群入口,请教一下@!
coolloves 回复了问题 • 2 人关注 • 3 个回复 • 6226 次浏览 • 2016-03-24 09:49
ES 两节点集群,数据不一致
alexzhang 回复了问题 • 3 人关注 • 4 个回复 • 8594 次浏览 • 2016-03-23 13:24
JDBC importer for Elasticsearch导入没有任何反应
Xargin 回复了问题 • 2 人关注 • 1 个回复 • 6046 次浏览 • 2016-03-12 20:42
elasticsearch的实时搜索性能为什么比solr好
Xargin 回复了问题 • 3 人关注 • 2 个回复 • 10020 次浏览 • 2016-03-12 20:46
用elasticsearch做可靠性存储靠谱吗?
helloes 回复了问题 • 4 人关注 • 2 个回复 • 8503 次浏览 • 2016-03-24 10:47
percolator接口里的agg怎么用?
medcl 回复了问题 • 2 人关注 • 1 个回复 • 4873 次浏览 • 2016-03-11 13:36
es2.2在ssd上的index性能问题
helloes 回复了问题 • 3 人关注 • 2 个回复 • 5399 次浏览 • 2016-03-11 00:54
JestClient连接elasticserach cluster,遇到节点宕机,怎么自动避开
linepole 回复了问题 • 4 人关注 • 2 个回复 • 6255 次浏览 • 2017-11-17 18:08