一.项目说明
1.1 项目目的
1.盘活服务器资源,提高资源的使用率;资源是公司的资产,只有尽可能发挥其价值,才能创造更多的价值。所以,有必要知道,公司整体(或某业务、产品)所属的 DB Server的资源使用情况。主要从CPU、内存、Disk的平均数和中位数来反映。实现更合理的资源分配和集中性的管理,节省资源成本。
2.慢查询的次数,既可以说明程序的性能和Server的压力,说明了待确认和优化的情况,也说明了资源的紧张性。
3.此类历史数据的积累,可以生成一个变化趋势图,说明资源使用趋势。
4.之前的监控大部分诊断具体的一个DB Server或应用,这个是针对公司整体(或某业务、产品)所属的 DB Server;是监控体系的一个完善和补充。
即:资源盘活、充分利用、降本增效、监控补充。
1.2 部署环境及架构
现有的监控数据已收集到InfluxDB 和 elasticsearch 中,本次要实现的功能是将数据计算聚合到MySQL中,然后通过邮件发送给相关人员。存储到MySQL 数据库中,一是因为 此类数据有一定的价值(具有追溯性和便于历史趋势分析),二是 InfluxDB 、elasticsearch 数据都有过期时间,数据保留的天数不是太长。
二.表的创建
2.1 存储DB资源使用情况的表
表名定义为weekly_dbperformance,具体的脚本如下:
CREATE TABLE `weekly_dbperformance` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cpu_mean` varchar(255) NOT NULL DEFAULT \'\',
`cpu_median` varchar(255) NOT NULL DEFAULT \'\',
`mem_mean` varchar(255) NOT NULL DEFAULT \'\',
`mem_median` varchar(255) NOT NULL DEFAULT \'\',
`disk_mean` varchar(255) NOT NULL DEFAULT \'\',
`disk_median` varchar(255) NOT NULL DEFAULT \'\',
`datetime_created` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT \'数据行创建时间\',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3740 DEFAULT CHARSET=utf8mb4;
来源:https://www.cnblogs.com/xuliuzai/p/14956248.html
图文来源于网络,如有侵权请联系删除。