新功能:阿里云RDS SQL执行日志 - 实时分析监控上线

简介: 阿里云关系数据库RDS(MySQL版本)的SQL执行日志已经与日志服务打通,提供实时的SQL执行分析功能,并提供内置可深钻的报表、支持自定义审计规则、异常报警、报表订阅与生态对接能力等。
+关注继续查看

概述

背景

数据库是企业业务的数据核心,对数据库的操作行为尤其是所有SQL执行的行为进行记录并审计的日志,就显得尤为重要。但围绕数据库的安全问题却日益严重。今年2月,国内某人脸识别公司数据库泄露,造成250万人个人信息泄露。去年8月,某酒店集团的1.3亿条用户以及2.4亿条开房记录泄露
另一方面,数据库SQL执行日志也提供了性能、执行结果以及归类等信息,对于排查错误、线上性能优化支持起着关键作用。

阿里云关系数据库RDS的SQL执行日志已经与日志服务打通(目前支持MySQL类型),提供准实时的SQL执行分析功能,并提供内置可深钻的报表、支持异常报警与生态对接能力等。
image

完备的SQL执行日志

SQL执行日志包括了对数据库进行的所有SQL操作,RDS提供的SQL执行日志,通过网络监听的方式收集,对实际执行几乎没有性能的影响,包括但不限于如下类型的SQL执行以及信息提取:

  • 数据库的登入、登出
  • DDL(Data Definition Language):基于SQL的对数据库结构定义的SQL,例如CREATE、ALTER DROP、TRUNCATE、COMMENT等
  • DML(Data Manipulation Language):SQL操作语句,包括SELECT、INSERT、UPDATE、DELETE等
  • 其他SQL执行,包括任何其他通过SQL执行的控制,例如回滚、控制等
  • 失败的SQL执行也会被记录
  • 对SQL执行的延迟、执行结果、影响的行数等信息的提取

关于阿里云日志服务

阿里云的日志服务(log service)是针对日志类数据的一站式服务,无需开发就能快捷完成海量日志数据的采集、消费、投递以及查询分析等功能,提升运维、运营效率。日志服务主要包括 实时采集与消费、数据投递、查询与实时分析 等功能,适用于从实时监控到数据仓库的各种开发、运维、运营与安全场景:

image

功能优势

将阿里云RDS的实时SQL执行投递到日志服务中有如下价值与优势:

  • 简单:轻松配置,即可准实时采集SQL执行日志导入日志服务。
  • 可靠:对现有数据库支持无性能影响,数据准实时接入,分钟级别延迟。
  • 信息充分:除了执行的SQL之外,也包括数据库登录、失败的数据执行、延迟、影响结果等,对数据库执行状况、性能、潜在安全问题了如指掌,并可准实时挖掘细节。
  • 强大:依托日志服务,提供实时日志分析,并提供开箱机用的报表中心,且支持定制等。
  • 灵活:支持基于特定指标,支持定制准实时监测、报警、报表订阅,确保关键业务异常及时响应。可对接其他生态如流计算、云存储、可视化方案,进一步挖掘数据价值。或使用日志服务机器学习、自定义报表、数据加工等一站式服务。
  • 成本优势:支持任意时间的存储,以便合规、溯源、备案等。每1000万条SQL执行日志存储一个月,每天只需2毛钱左右

适用客户

  1. 合规:对SQL执行日志存储有更长存储合规需求(例如半年/1年)的大型企业与机构,如金融公司、政府类机构等。
  2. 高级运维:需要对数据库状况做实时监测,并对业务上出现的性能、可靠、稳定性等异常问题能够进行快速排错的客户,需要使用日志服务的实时的交互式的统计、查询分析和报警功能,如互联网服务、金融等企业。
  3. 安全:需要对数据库安全进行审计,辅助数据安全防护和事后排查的公司,需要使用日志服务的实时查询分析功能,如金融、证券、电商、游戏等公司。
  4. 行为分析:需要对数据库操作做行为分析,作进一步性能、功能、体验调优的参考和验证,除了统计查询外,也需要对接外部系统做进一步深度分析的公司。

前提与配置

前提与限制

  1. 开通日志服务。
  2. 开通RDS服务,购买或已经有一个支持SQL审计/洞察的MySQL实例
  3. 目前支持自动投递到日志服务的RDS类型如下:
限制 描述 备注
类型 MySQL 其他类型计划中
地域 北京 上海 杭州 深圳 香港 青岛 其他地域陆续开放中
版本 5.5、5.6、5.7、8.0 8.0 beta中
系列 高可用版、金融版 基础版本不支持
存储类型 本地SSD SSD云盘不支持
SQL审计/洞察状态 未开启,或已经开启标准版本 控制台会帮用户自动开启,注意:开启使用版本的SQL审计目前会导致控制台开通投递失败
  1. 目前仅支持投递同一个地域下的日志服务项目(例如,北京的RDS实例,只能投递到北京的日志服务日志库中)
  2. 请勿修改默认的仪表盘配置,默认仪表盘会随着功能升级自动更新。参考日志服务手册,从默认仪表盘中复制一个仪表盘并修改。

如何配置

  1. 登录日志服务控制台,准备或构建一个与源RDS所处同一个地域的日志服务项目,并在其中准备或构建一个日志库(请选择好正确的存储时间,如180天等)
  2. 在日志库列表中选择【数据接入向导】,选择【RDS】
  3. 在控制台交互中配置期望的RDS MySQL数据库接入。

    • 注意: 如果您没看到对应的MySQL实例,可能是因为不符合前提条件,请参考上条列表。
    • 注意: 开启投递时需要开启标准版本RDS的审计日志功能。如果您已经开启了试用版本的SQL审计,控制台会开启失败。

用户场景

1. 自由交互式分析SQL执行

准实时数据库访问异常排查与问题分析,读写延时,访问客户端区域分布等

image

也支持标准SQL92语法,并融合多种扩展分析函数,参考查询分析日志

image

详细日志字段

字段名 名称 例子 备注
__topic__ 主题 固定为rds_audit_log
instance_id 实例ID rm-abcdefg
check_rows 扫描的行数 0
db 数据库名 my_db
fail 是否出错 0 0-成功,1-失败
client_ip 客户端IP 1.2.3.4
latency 延迟(微秒) 15
origin_time 操作时间(微秒) 1525671499014609
return_rows 返回行数 123
sql 执行的SQL语句 SELECT * from tb_abc
thread_id 线程ID 17171330
user 数据库用户 spotuserw
update_rows 更新行数 0

2. 安全分析

重要表格、异常删除、SQL攻击以及SQL注入等一目了然

image

也可以在日志查询分析的结果上,支持自定义SQL执行审计与告警通知,以便第一时间处理,日志服务支持多种告警模式(例如钉钉、短信等),并支持自定义告警内容模板:

image

3. 整体访问监控程度

整体访问监控程度,运维可靠性指标一目了然,并可以参考,构建自己的仪表大盘。

image

4.运营分析

运营分析,活跃数据库与表格,关键数据添加修改删除动向**

image

进一步参考

后续我们会进一步围绕RDS执行日志,做更多最佳实践介绍。可以扫码加入官方钉钉群 (11775223)获得实时更新与阿里云工程师的及时直接的支持:
image

版本

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
14天前
|
SQL 关系型数据库 MySQL
数据库基本概念(SQL,索引,视图,事务,日志等)(二)
数据库基本概念(SQL,索引,视图,事务,日志等)(二)
136 0
|
14天前
|
SQL 关系型数据库 MySQL
数据库基本概念(SQL,索引,视图,事务,日志等)(一)
数据库基本概念(SQL,索引,视图,事务,日志等)(一)
165 0
|
2月前
|
SQL 前端开发
Springboot+JPA打印SQL日志
Springboot+JPA打印SQL日志
|
5月前
|
SQL 弹性计算 Kubernetes
实践教程之采集PolarDB-X SQL日志到ElasticSearch
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您如何采集PolarDB-X SQL日志到ElasticSearch。
|
7月前
|
SQL 存储 关系型数据库
MySQL的Binlog日志和Relay Log日志存储的SQL都是一样的吗?底层原理是什么?
MySQL的Binlog日志和Relay Log日志存储的SQL都是一样的吗?底层原理是什么?
245 0
|
7月前
|
SQL 存储 JSON
没有索引也能用SQL ?深度解析 SLS Schema-on-Read 分析原理与应用
为了能够更灵活的挖掘日志数据背后的价值,SLS提出了一种不需要事先建立索引就能对数据进行分析的模式。本文对SLS Schema-on-Read分析的提出背景、设计思路、实现过程、使用方式、适用场景进行了全面的介绍。
15049 0
没有索引也能用SQL ?深度解析 SLS  Schema-on-Read 分析原理与应用
|
8月前
|
SQL 关系型数据库 MySQL
MySQL慢查询日志:如何定位执行慢的sql语句
MySQL慢查询日志:如何定位执行慢的sql语句
270 0
MySQL慢查询日志:如何定位执行慢的sql语句
|
9月前
|
SQL 存储 监控
Mysql中 慢查询日志和show profile进行sql分析
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。
271 0
|
9月前
|
SQL XML Java
【Log日志】打印mybatis中sql日志并存放到指定文件中
【Log日志】打印mybatis中sql日志并存放到指定文件中
645 0
【Log日志】打印mybatis中sql日志并存放到指定文件中
|
10月前
|
SQL 监控 关系型数据库
你的哪些SQL慢?看看MySQL慢查询日志吧
你的哪些SQL慢?看看MySQL慢查询日志吧
192 0
你的哪些SQL慢?看看MySQL慢查询日志吧
相关产品
日志服务
推荐文章
更多