让RDS(for MySQL)数据库的慢日志、审计日志跨空间转存OBS变得更加自动化
【摘要】 本项目将展示如何使用华为云产品RDS(for MySQL)、OBS提供的SDK方法将数据库产生的慢日志、审计日志通过网络流的方式直接将日志文件转存至OBS中进行备份存储,项目过程中能够让您熟悉OBS和RDS的SDK,详细内容可阅读文章进行了解。
《目录》
- 背景
- 开发环境
- 云服务介绍
- 方案设计
- 方案简述
- 方案架构图
- 时序图
- 代码参数指南
- 代码实现
- 结果反馈
1、背景
在业务系统的运行过程中,数据库会产生一些日志,其中包括慢日志、审计日志,有时我们需要对这些日志手动的进行下载存储,有些繁琐。为了解决手动存储的弊端,希望可以通过调用接口的方式来实现定时的自动转存储至OBS效果。
2、开发环境
3、云服务介绍
云数据库 RDS for MySQL:MySQL是目前最受欢迎的开源数据库之一,其性能卓越,搭配LAMP(Linux + Apache + MySQL + Perl/PHP/Python),成为WEB开发的高效解决方案。 云数据库 RDS for MySQL拥有稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点。
华为云OBS:对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,使用时无需考虑容量限制,并且提供多种存储类型,满足客户各类业务场景诉求。
4、方案设计
i、方案简述
通过调用SDK提供的接口,先获取慢日志或审计日志的下载路径,然后通过网络流上传的方式直接将链接日志下载存储至OBS指定的位置。
ii、方案架构图
两种日志均是转存至OBS,但是因为其获取途径不一样,在某些细节实现有一些区分,如慢日志转存OBS,因没有提供时间筛选,无法控制其增量行为,所以需要通过比对前后文件来判断是否需要上传;而审计日志则是可以通过时间筛选的方法来控制,具体实现如下:
慢日志转存OBS架构图
慢日志转存OBS实现思路:
1、通过SDK提供的接口获取日志下载链接。
2、然后new URL(fileLink).openConnection().getContentLength()获取链接文件。
3、再通过OBS SDK提供的接口方法获取OBS位置已存储的文件。
4、如果两者文件一样,则拉取下来的网络流通过OBS客户端上传至OBS指定位置进行存储
审计日志转存OBS架构图
审计日志转存OBS实现思路:
1、通过SDK提供的接口方法传入时间等参数获取某一个时间段的审计日志的ID。
2、然后通过日志ID找到我们每一个日志文件的下载链接。
3、最后通过网络流将日志文件拉取下来,通过OBS客户端上传至OBS指定位置进行存储。
iii、方案时序图
慢日志转存OBS时序图
审计日志转存OBS时序图
5、代码参数指南
公共参数获取方式
1. endPoint,ak,sk,areaCode,instanceID,obsName。
-
endPoint获取方式参考:https://developer.huaweicloud.com/endpoint获取对应的endPoint值 。注意:endpoint值由很多,要找到OBS下面的endpoint。
-
ak与sk获取方式可参考:https://support.huaweicloud.com/iam_faq/iam_01_0618.html 。
-
areaCode区域码获取方式,可在这查询:https://developer.huaweicloud.com/endpoint 。
-
instanceID实例ID需要在华为云的RDS实例管理界面中获取实例ID如图所示:
-
obsName为OBS桶名。
RDSSlowlogUploadOBS参数详情
- endPoint,ak,sk,areaCode,instanceID,obsName获取方式请参考公共参数。
RDSAuditlogUploadOBS参数详情
- endPoint,ak,sk,areaCode,instanceID,obsName,startTime,endTime。
- endPoint,ak,sk,areaCode,instanceID,obsName获取方式请参考公共参数。
- startTime:起始时间(格式:2018-08-06T10:41:14+0800)
- endTime:终点时间(格式:2018-08-06T10:41:14+0800)
- offset:起始查询位置(0表示从第一个开始查询)
- limit:查询数量(一次最多能查50个)
6、代码实现
实现代码可参考慢日志、审计日志转存OBS
7、结果反馈
慢日志转存OBS
审计日志转存OBS
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)