数据库智能运维的基础确实是需要采集历史监控数据。每种数据库都提供了各种工具、系统视图,表函数等监控方法和接口。因此采用什么方式来获取监控数据是需要考虑周到的:
采集的数据需要存放到智能运维平台。平台内通常只保存几个月的数据,历史数据需要归档到大数据平台,例如 ES 里。即便是几个月的数据,在系统多,指标多的情况下,数据量也是很可观的。因此本地数据的存放也需要考虑很多方面:
1. 数据分片存储还是集中式存储。是否采用时序数据库方便查询等。
2. 集中式存储建议采用分区表,列存等等优化方案。
3. 数据保存周期。建议 3 到 6 个月。解决好数据膨胀问题。
实时数据采集处理,各类模型运算,前台历史数据查询,这些需求都穿插在一起,性能问题和高可用问题需要兼顾好。