Elasticsearch索引增量统计及定时邮件实现

Posted springforall

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch索引增量统计及定时邮件实现相关的知识,希望对你有一定的参考价值。

0、需求

随着ELKStack在应用系统中的数据规模的急剧增长,每天千万级别数据量(存储大小:10000000*10k/1024/1024=95.37GB,假设单条数据10kB,实际远大于10KB)的累积成为日常需求。
如何以相对简单的图形化效果展示数据的增量呢?
本文给出思路和实现。

1、问题分解

1.1 ES集群的数据量统计

ES自带的命令行统计举例:

 curl 'localhost:9200/_cat/indices?v'

1.2 如何实现增量?

简化思路:
1)每天的固定时间,如早晨00:00统计一次当天的数据量,形成日志文件存储如:20180228-00:00.log
2)20180228的增量为:20180229-00:00.log的数据值-20180228-00:00.log的数据量。(下一天-前一天)

1.3 如何实现统计

简化思路:
1)shell脚本获取每天统计的数据量
2)Excel公式简单计算增量

1.4 如何实现定时邮件统计

简化思路:
1)java + 邮件程序 + 读取脚本实现。
2)crontab实现定时任务处理。

2、具体实现

2.1 单日数据量统计

技术图片

返回结果如下:
技术图片

2.2 Java读取Shell脚本

技术图片

2.3 增量数据统计

步骤1:单日数据统计。技术图片步骤2:增量数据统计。 技术图片步骤1,步骤2数据可以Excel统计得出。

其中单日数据的拷贝shell脚本如下:

技术图片

步骤3:Excel生成图表。
技术图片

3、难点

4、小结

通过shell脚本+Excel数据统计,简单实现了数据增量可视化。
通过java+邮件处理+定时任务,实现了数据的定时统计以及定时邮件预警功能。
可以,在此基础上,做更多的扩展应用,比如:

  • 1)集群监控状态监控;
  • 2)集群堆内存使用监控;
  • 3)开发中其他相关物理机器内存、CPU、磁盘读写性能等指标的监控等。

推荐阅读:

《深入理解 Java 内存模型》读书笔记

面试-基础篇

Spring Boot 2.0 迁移指南

SpringBoot使用Docker快速部署项目

为什么选择 Spring 作为 Java 框架?

SpringBoot RocketMQ 整合使用和监控

Spring Boot 面试的十个问题

使用 Spring Framework 时常犯的十大错误

SpringBoot Admin 使用指南

SpringBoot Kafka 整合使用

SpringBoot RabbitMQ 整合使用

上篇好文:

使用Arthas 获取Spring ApplicationContext还原问题现场

技术图片

以上是关于Elasticsearch索引增量统计及定时邮件实现的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch 的索引统计信息及索引设置

[Elasticsearch] 部分匹配 - 索引期间优化ngrams及索引期间的即时搜索

Elasticsearch-基础介绍及索引原理分析

「面试必背」Elasticsearch面试题(建议收藏)

Elasticsearch-基础介绍及索引原理分析

Elasticsearch索引定时清理