ElasticSearch之Java Api聚合分组实战

本文介绍如何使用Java API进行Elasticsearch的日志收集监控项目的聚合分组实战,通过创建查询请求,设置过滤条件,进行日期和状态的多级分组,以获取不同维度的统计信息。
摘要由CSDN通过智能技术生成


最近有个日志收集监控的项目采用的技术栈是ELK+JAVA+Spring,客户端语言使用的是Java,以后有机会的话可以试一下JavaScript+Nodejs的方式,非常轻量级的组合,只不过不太适合服务化的工程,Kibana充当可视化层,功能虽然非常强大和灵活,但是需要业务人员懂Lucene的查询语法和Kibana的Dashboard仪表盘自定义功能才能玩的转,所以Kibana面向专业的开发人员和运维人员比较良好,但面向业务人员则稍微有点难度,我们这边就使用Java进行二次开发,然后前端定义几个业务人员关注的图表,然后把后端查询的数据,按照一定的维度放进去即可。 


基础环境: 
(1)ElasticSearch1.7.2 
(2)Logstash2.2.2 
(3)Kibana4.1.2 
(3)JDK7 
(4)Spring4.2 


使用到的技术点: 
(1)ElasticSearch的查询 
(2)ElasticSearch的过滤 
(3)ElasticSearch的日期聚合 
(4)ElasticSearch的Terms聚合 
(5)ElasticSearch的多级分组 
(6)ElasticSearch+Logstash的时区问题 

直接上代码: 

Java代码   收藏代码
  1. package cn.bizbook.product.elk.dao.impl;  
  2.   
  3. import cn.bizbook.product.elk.config.ESConf;  
  4. import cn.bizbook.product.elk.dao.ESDao;  
  5. import cn.bizbook.product.elk.utils.TimeTools;  
  6. import cn.bizbook.product.elk.vo.count.Condition;  
  7. import cn.bizbook.product.elk.vo.count.CountType;  
  8. import cn.bizbook.product.elk.vo.count.search.GroupCount;  
  9. import cn.bizbook.product.elk.vo.count.search.MonitorCount;  
  10. import org.apache.commons.lang.StringUtils;  
  11. import org.apache.lucene.queryparser.classic.QueryParserBase;  
  12. import org.elasticsearch.action.search.SearchRequestBuilder;  
  13. import org.elasticsearch.action.search.SearchResponse;  
  14. import org.elasticsearch.client.Client;  
  15. import org.elasticsearch.index.query.FilterBuilders;  
  16. import org.elasticsearch.index.query.QueryBuilder;  
  17. import org.elasticsearch.index.query.QueryBuilders;  
  18. import org.elasticsearch.index.query.QueryStringQueryBuilder;  
  19. import org.elasticsearch.search.aggregations.AggregationBuilders;  
  20. import org.elasticsearch.search.aggregations.Aggregations;  
  21. import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogram;  
  22. import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramBuilder;  
  23. import org.elasticsearch.search.aggregations.bucket.histogram.Histogram;  
  24. import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;  
  25. import org.slf4j.Logger;  
  26. import org.slf4j.LoggerFactory;  
  27. import org.springframework.beans.factory.annotation.Autowired;  
  28. import org.springframework.stereotype.Repository;  
  29.   
  30. import javax.annotation.Resource;  
  31. import java.util.ArrayList;  
  32. import java.util.List;  
  33.   
  34. /** 
  35.  * Created by qindongliang on 2016/4/6. 
  36.  */  
  37. @Repository("esDaoImpl")  
  38. public class ESDaoImpl 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值