数据库日志 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据库日志

MySQL 和 MariaDB 数据库生成日志,您可以访问这些日志进行审计和故障排除。这些日志是:

  • 审计— 审计线索是一组记录服务器活动的记录。对于每个客户端会话,它会记录谁连接到服务器(用户名和主机)、运行了哪些查询、访问了哪些表以及更改了哪些服务器变量。

  • 错误— 此日志包含服务器的 (mysqld) 启动和关闭时间,以及诊断消息,例如服务器启动和关闭期间以及服务器运行期间出现的错误、警告和注释。

  • 普通的— 此日志记录了以下活动mysqld,包括每台客户机的连接和断开连接活动,以及从客户端收到的 SQL 查询。当你怀疑有错误并想确切知道客户端发送了什么时,常规查询日志可能非常有用mysqld

  • 查询速度慢— 此日志记录了花了很长时间才执行的 SQL 查询。

作为最佳实践,你应该将数据库日志从亚马逊 RDS 发布到亚马逊CloudWatch日志。和CloudWatch日志,您可以对日志数据进行实时分析,将数据存储在高度耐用的存储器中,并使用日志管理数据CloudWatch日志代理。你可以访问和监视您的数据库日志来自亚马逊 RDS 控制台。你也可以使用CloudWatchLogs Insights 可交互式搜索和分析您的日志数据CloudWatch日志。以下示例说明了对审计日志的查询,该查询检查了多少次CONNECT事件出现在日志中,连接了谁以及从哪个客户端(IP 地址)连接。审核日志的摘录可能如下所示:

20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,CONNECT,,,0,SOCKET 20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,DISCONNECT,,,0,SOCKET 20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,CONNECT,,,0,SOCKET 20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,DISCONNECT,,,0,SOCKET 20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,CONNECT,,,0,SOCKET 20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,DISCONNECT,,,0,SOCKET 20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,CONNECT,,,0,SOCKET 20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,DISCONNECT,,,0,SOCKET

Log Insights 查询示例显示rdsadmin从以下地址连接到数据库localhost每 5 分钟一次,共计 22 次,如下图所示。这些结果表明,该活动源自内部 Amazon RDS 进程,例如监控系统本身。

日志见解报告

日志事件通常包含您想要计算的重要消息,例如与 MySQL 和 MariaDB 数据库实例相关的操作的警告或错误。例如,如果操作失败,则可能会出现错误并按如下方式记录到错误日志文件中:ERROR 1114 (HY000): The table zip_codes is full。您可能需要监控这些条目以了解错误的趋势。你可以创建自定义CloudWatch使用筛选器来自 Amazon RDS 日志的指标启用对 Amazon RDS 数据库日志的自动监控,以监控特定日志中的特定模式,并在出现违反预期行为时生成警报。例如,为日志组创建指标筛选器/aws/rds/instance/database-1/error这将监视错误日志并搜索特定模式,比如ERROR。设置过滤器图案ERROR指标值1。过滤器将检测包含关键字的每条日志记录ERROR,它会将每个包含 “ERROR” 的日志事件的计数增加 1。创建过滤器后,您可以设置警报,以便在 MySQL 或 MariaDB 错误日志中检测到错误时通知您。

要了解有关通过创建监控慢速查询日志和错误日志的更多信息CloudWatch仪表板和使用CloudWatchLogs Insights,请参阅博客文章创建亚马逊CloudWatch监控亚马逊 RDS 和亚马逊 Aurora MySQL 的仪表