用ELK分析每天4亿多条腾讯云MySQL审计日志(3)--下载日志
当初分析日志,麻烦的是腾讯云的SQL审计日志下载,有下列限制:
1,单次最多1000万条下载
2,单个实例最多生成5条日志文件,多的要先删除以前文件才能生成
腾讯云日志文件生成界面:
一开始用手工下载,想想也不多,可以忍受,弄了一段时间后,研发的要求越来越高,不能一直这样手工,刚好旁边的运维小伙用GO实现了程序单实例下载日志---filebeat--kafka--ELK, 给了我很大信心,后来就用Python3重新开发一套下载日志的小系统。弄了2周终于可用:
1,数据配置放到表里

CREATE TABLE `audit_server` ( `id` int(11) NOT NULL AUTO_INCREMENT, `instance_id` varchar(200) DEFAULT NULL COMMENT '机器id', `slow_name` varchar(300) DEFAULT NULL COMMENT '慢日志名称', `status` tinyint(255) DEFAULT '0', `difftime` int(255) DEFAULT NULL COMMENT '间隔分钟', `dept` varchar(300) DEFAULT NULL, `ordernum` decimal(6,1) DEFAULT NULL COMMENT '1-10 排序\r\n10-30 各业务主库排序\r\n30以后会随机,排序降序asc输出', `ld_time` datetime DEFAULT NULL COMMENT '上次下载时间', `type` tinyint(255) DEFAULT NULL COMMENT '分类', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8mb4 CREATE TABLE `audit_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `instance_id` varchar(100) DEFAULT NULL, `filename` varchar(300) DEFAULT NULL, `starttime` datetime DEFAULT NULL, `endtime` datetime DEFAULT NULL, `is_down` tinyint(255) DEFAULT '0' COMMENT '是否已经完成下载,0:刚创建 1:正在下载 2:下载完成', `is_deleted` tinyint(255) DEFAULT '0' COMMENT '是否删除文件 0,未删除,1:已经删除', `create_time` datetime DEFAULT CURRENT_TIMESTAMP, `ds_time` datetime DEFAULT NULL COMMENT '开始下载时间', `de_time` datetime DEFAULT NULL COMMENT '结束下载时间', `del_time` datetime DEFAULT NULL COMMENT '文件删除时间', `filesize` int(10) DEFAULT NULL COMMENT '文件大小,MB', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=65509 DEFAULT CHARSET=utf8mb4
程序实现:
1, audit_server表配置时间(字段difftime),不同实例,每次生成不同的时间日志,如30分钟,60分钟,240分钟等,保证每次能生成文件
2,audit_server表上次已下载时间(字段ld_time), 生成新日志文件: ld_time+difftime, 成功后,更新ld_time,实现增量不停循环抽取
3, 下载的日志文件记录在audit_log, 可以分析每次的下载时间,生成时间等,
4,python脚本,配置每2分钟执行一次,兼容不停抽取,如果下载完成,自动删除腾讯云的审计日志文件
5,audit_server表配置多机器并行下载日志(字段type),目前配置3台云主机(type为1,2,3),不同机器同时下载不同的实例日志,并可以动态调整。
6,配置截止抽取时间,先保证按天完成,减少对共用的ELK影响,默认是当天0点
记录的audit_log审计日志:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2016-08-12 我的疯娘
2008-08-12 Oracle感慨(转)