不要急,总有办法的

log4j输出到logstash+redis引发应用线程堵塞

Logstash三斗室 回复了问题 • 2 人关注 • 1 个回复 • 5690 次浏览 • 2016-03-28 11:08 • 来自相关话题

从mysql同步数据到es方法大讨论

Elasticsearchsunyizhen 回复了问题 • 5 人关注 • 3 个回复 • 13518 次浏览 • 2016-08-04 17:23 • 来自相关话题

kibana放在公网上需要注意什么问题

Kibanacoolloves 回复了问题 • 3 人关注 • 2 个回复 • 6268 次浏览 • 2016-03-27 15:16 • 来自相关话题

kibana主页setting下objects中的Visuaizations图数量最大值为100

回复

Kibanamadman 发起了问题 • 1 人关注 • 0 个回复 • 5752 次浏览 • 2016-03-26 15:05 • 来自相关话题

Elastic线下交流活动走起来!

资讯动态medcl 发表了文章 • 2 个评论 • 4404 次浏览 • 2016-03-24 10:50 • 来自相关话题

线上交流不过瘾?那就参加线下交流活动吧!
这里是搜罗的最新的线下交流活动预告:

 
大家分别找到组织报名参加吧,貌似有些还需要场地支持,大家一起出谋划策,把活动办起来吧。

ElasticsearchTimeoutException问题

Elasticsearchhelloes 回复了问题 • 2 人关注 • 1 个回复 • 9393 次浏览 • 2016-03-24 02:10 • 来自相关话题

如何使用自定义的 Similarity插件

Elasticsearchsmile_sunshine 回复了问题 • 2 人关注 • 2 个回复 • 6157 次浏览 • 2016-03-24 21:04 • 来自相关话题

【招聘 ES】手机厂商移动互联网 诚求搜索引擎工程师

求职招聘medcl 回复了问题 • 3 人关注 • 1 个回复 • 5405 次浏览 • 2016-03-24 10:58 • 来自相关话题

elasticsearch 如何计算 TP50 TP95 TP99 这样的值?

Elasticsearchmedcl 回复了问题 • 3 人关注 • 2 个回复 • 8687 次浏览 • 2016-03-24 10:38 • 来自相关话题

使用spark向elasticsearch中写入数据异常

Elasticsearchjoe23_2006 回复了问题 • 6 人关注 • 6 个回复 • 20638 次浏览 • 2018-01-31 13:36 • 来自相关话题

Elasticsearch 2.2 集群配置

ElasticsearchJea 回复了问题 • 6 人关注 • 9 个回复 • 5185 次浏览 • 2017-04-14 13:45 • 来自相关话题

aggregation 统计用户一天之内登录次数大于n次的用户列表, 这个应该怎么写聚合json

Elasticsearchggchangan 回复了问题 • 4 人关注 • 2 个回复 • 6025 次浏览 • 2016-03-22 15:32 • 来自相关话题

es多字段匹配 按字段匹配情况自定义得分

ElasticsearchJea 回复了问题 • 1 人关注 • 3 个回复 • 6022 次浏览 • 2016-03-24 08:01 • 来自相关话题

elasticsearch 文件句柄问题

Elasticsearchelastic 回复了问题 • 3 人关注 • 2 个回复 • 4992 次浏览 • 2016-03-24 10:31 • 来自相关话题

es索引模版配置不当导致的aggs聚合查询字段显示错误的问题

ElasticsearchMax 发表了文章 • 0 个评论 • 8678 次浏览 • 2016-03-18 16:51 • 来自相关话题

今天在es中对http日志的状态码status进行aggs搜索出现字段内容显示不正常的问题,记录过程:

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类型也是可以的,这里影响的是存储空间占用的大小。)