log4j输出到logstash+redis引发应用线程堵塞
Logstash • 三斗室 回复了问题 • 2 人关注 • 1 个回复 • 5690 次浏览 • 2016-03-28 11:08
从mysql同步数据到es方法大讨论
Elasticsearch • sunyizhen 回复了问题 • 5 人关注 • 3 个回复 • 13518 次浏览 • 2016-08-04 17:23
kibana放在公网上需要注意什么问题
Kibana • coolloves 回复了问题 • 3 人关注 • 2 个回复 • 6268 次浏览 • 2016-03-27 15:16
kibana主页setting下objects中的Visuaizations图数量最大值为100
回复Kibana • madman 发起了问题 • 1 人关注 • 0 个回复 • 5752 次浏览 • 2016-03-26 15:05
Elastic线下交流活动走起来!
资讯动态 • medcl 发表了文章 • 2 个评论 • 4404 次浏览 • 2016-03-24 10:50
这里是搜罗的最新的线下交流活动预告:
- 广州:http://www.meetup.com/guangzhou-Elastic-Meetup/
- 上海:http://www.meetup.com/shanghai-Elastic-Meetup/
- 北京:http://www.meetup.com/beijing-Elastic-Meetup/
大家分别找到组织报名参加吧,貌似有些还需要场地支持,大家一起出谋划策,把活动办起来吧。
ElasticsearchTimeoutException问题
Elasticsearch • helloes 回复了问题 • 2 人关注 • 1 个回复 • 9393 次浏览 • 2016-03-24 02:10
如何使用自定义的 Similarity插件
Elasticsearch • smile_sunshine 回复了问题 • 2 人关注 • 2 个回复 • 6157 次浏览 • 2016-03-24 21:04
【招聘 ES】手机厂商移动互联网 诚求搜索引擎工程师
求职招聘 • medcl 回复了问题 • 3 人关注 • 1 个回复 • 5405 次浏览 • 2016-03-24 10:58
elasticsearch 如何计算 TP50 TP95 TP99 这样的值?
Elasticsearch • medcl 回复了问题 • 3 人关注 • 2 个回复 • 8687 次浏览 • 2016-03-24 10:38
使用spark向elasticsearch中写入数据异常
Elasticsearch • joe23_2006 回复了问题 • 6 人关注 • 6 个回复 • 20638 次浏览 • 2018-01-31 13:36
Elasticsearch 2.2 集群配置
Elasticsearch • Jea 回复了问题 • 6 人关注 • 9 个回复 • 5185 次浏览 • 2017-04-14 13:45
aggregation 统计用户一天之内登录次数大于n次的用户列表, 这个应该怎么写聚合json
Elasticsearch • ggchangan 回复了问题 • 4 人关注 • 2 个回复 • 6025 次浏览 • 2016-03-22 15:32
es多字段匹配 按字段匹配情况自定义得分
Elasticsearch • Jea 回复了问题 • 1 人关注 • 3 个回复 • 6022 次浏览 • 2016-03-24 08:01
elasticsearch 文件句柄问题
Elasticsearch • elastic 回复了问题 • 3 人关注 • 2 个回复 • 4992 次浏览 • 2016-03-24 10:31
es索引模版配置不当导致的aggs聚合查询字段显示错误的问题
Elasticsearch • Max 发表了文章 • 0 个评论 • 8678 次浏览 • 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类型也是可以的,这里影响的是存储空间占用的大小。)