00 监控体系:
监控体系按功能分,大致分为四大部分:
- 数据采集
- 存储
- 展示
- 告警
监控体系图
涉及到的功能组件如下:
首先对各个组件的功能做个简单的介绍,然后在进行实际搭建。
01 数据采集:
Telegraf
Telegraf v1.17 文档。
数据采集有三种方式:telegraf、jmxtrans、脚本,这里先说一说telegraf。
首先是说明文档,里面提供了很详细的说明
Jmxtrans
Jmxtrans 官方介绍页面
jmxtrans主要用于从jvm中获取jmx格式数据,那想必就是用于java进程的数据监控收集工具啦。
脚本
最后说一下脚本,无论shell还是python或者是前面提到的两个工具,都是为了搜集监控数据并存入数据库。剩下的就是怎么搜集、怎么处理、怎么存数据的方法了。
02 数据存储:
监控数据的存储就需要提到一种数据库:时间序列数据库 Time Series Database (TSDB),简称时序数据库。
对比传统数据库仅仅记录了数据的当前值,时序数据库则记录了所有的历史数据。同时时序数据的查询也总是会带上时间作为过滤条件。
这里用到的是开源时序数据库:InfluxDB
influxDB下载安装页面
03 数据展示:
Chronograf
Chronograf是influxdb的可视化工具(Chronograf is the user interface and complete dashboarding tool for InfluxDB 1.x),相对grafana来说功能比较单一,但是支持TICK stack,也就是后面会提到的kapacitor相关。
grafana
grafana则是另一个开源数据可视化工具,他可以配置的数据源更多,功能也更强大,并且有dashbroad库可以参考使用。
04 数据处理:
kapacitor
kapacitor是时序数据处理工具,他的任务由.tick脚本来定义,可用于检测异常、创建警报、运行ETL作业等。
主要谈谈从InfluxDB查询数据并处理、告警的功能实现。
kapacitor本身支持很多事件处理模块(event handler),例如发邮件、执行本地脚本、发送http请求等,这些在官方的说明文档中有很详细的描述。
关于监控体系的简单介绍就到这里,只是为了让初次接触他的人,有一些初步的了解,下一篇将开始监控组件的安装啦。