本文通过InfluxDB与Canal实现数据库增量日志分析统计及系统监控架构设计,目标就是为了零侵入现有代码实现数据增量备份处理和实现用户业务数据、接口等操作实时统计功能,这里有点像AOP编程,抽象我们需要修改的地方然后进行日志记录操作。
目录
架构设计
需求设计要求
零侵入编码、架构自动伸缩
Canal:数据或操作日志增量备份,做到代码级别零侵入(InfluxDB也需要基于此方能做到不动源代码伸缩架构处理)
InfluxDB:存储时序操作日志类数据,用于统计分析。
Grafana:Grafana具有统计分析和数据展示能力。
增量备份&统计架构图
架构设计图如下:
为什么要如此设计?
- 数据库备份可靠性(Canal阿里开源产品)
- 数据顺序存储(InfluxDB)
- 数据实时查询能力(Grafana提供类似SQL语言的查询)
- 数据展示能力(Grafana包含丰富的图标展示功能)
增量备份&统计分析&系统监控架构图
设计原理同上,只是加入了对Linux的系统监控组件Telegraf:
更多请阅读系统监控实践内容。
系统监控实践
https://frank6866.gitbooks.io/monitor/content/chapters/basic/monitor-basic-influxdb.html
InfluxDB基本组件
Linux监控指标
Web服务器监控
Docker监控
注:要实现备份需要使用到Otter,而Otter依赖Canal、Zookeeper集群、数据库源、目标数据库。