Amazon Redshift 无服务器的审计日志记录 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon Redshift 无服务器的审计日志记录

导出日志

您可以配置 Amazon Redshift 无服务器,以将连接、用户和用户活动日志数据导出到 Amazon CloudWatch Logs 中的日志组。利用 Amazon CloudWatch Logs 可以对日志数据进行实时分析,并使用 CloudWatch 创建告警和查看指标。您可使用 CloudWatch Logs 在持久性存储中存储日志记录。

默认情况下,Redshift 会生成连接和用户日志数据。必须明确启用用户活动日志数据的生成,例如显示由单个用户运行的查询的数据。为此,应设置配置设置以生成用户活动数据。

aws redshift-serverless set-configuration --config-parameters parameterKey=enable_user_activity_logging,parameterValue=true

要将生成的日志数据导出到 Amazon CloudWatch Logs,必须在控制台的无服务器端点配置设置中选择要导出的相应日志。

在 CloudWatch 中监控日志事件

在选择要导出的 Redshift 日志后,您可以在 Amazon CloudWatch Logs 中监控事件。将使用以下前缀为 Amazon Redshift 无服务器自动创建新的日志组,其中 log_type 表示日志类型。

/aws/redshift/serverless/<log_type>

例如,如果您选择导出连接日志,则日志数据将存储在以下日志组中。

/aws/redshift/serverless/connectionlog

使用无服务器日志流将日志事件导出到日志组。该行为取决于以下哪些条件为真:

  • 存在包含指定名称的日志组。Redshift 使用现有日志组导出无服务器端点的日志数据。您可以使用自动化配置,例如由 Amazon CloudFormation 提供的配置,创建具有预定义日志保留期、指标筛选条件和客户访问的日志组。

  • 具有指定名称的日志组不存在。当在实例的日志中检测到匹配的日志条目时,Amazon Redshift 无服务器会自动在 Amazon CloudWatch Logs 中创建一个新的日志组。日志组使用 Never Expire(永不过期)的默认日志保留期。要更改日志保留期,请使用 Amazon CloudWatch Logs 控制台、Amazon CLI 或 Amazon CloudWatch Logs API。有关在 CloudWatch Logs 中更改日志留存期的更多信息,请参阅使用日志组和日志流中的更改日志数据留存

要在无服务器端点的日志事件中搜索信息,请使用 Amazon CloudWatch Logs 控制台、Amazon CLI 或 Amazon CloudWatch Logs API。有关搜索和筛选日志数据的更多信息,请参阅搜索和筛选日志数据

Amazon Redshift Serverless 指标

CloudWatch 指标如下所示:

CloudWatch 指标
指标名称 单位 描述 维度集
QueriesCompletedPerSecond 查询数 每秒完成的查询数。 {DatabaseName, Latency}、{DatabaseName}、{Latency}、{}
QueryDuration 微秒 完成查询的平均时间量。 {DatabaseName, Latency}、{DatabaseName}、{Latency}、{}
QueriesRunning 查询数 一个时间点运行的查询数。 {DatabaseName, QueryType}、{DatabaseName}、{QueryType}、{}
QueriesQueued 查询数 某个时间点在队列中的查询数。 {DatabaseName, QueryType}、{DatabaseName}、{QueryType}、{}
DatabaseConnections 连接数 一个时间点与数据库的连接数。 {DatabaseName}、{}
QueryRuntimeBreakdown 毫秒 查询在各个查询阶段运行所花费的总时间。 {DatabaseName, Stage}、{DatabaseName}、{Stage}、{}
ComputeCapacity RPU 过去 30 分钟内分配的平均计算单位数,向上舍入到最近的整数。 {}
ComputeSeconds RPU 秒 过去 30 分钟内消耗的累计计算单位秒数。 {}
QueriesSucceeded 查询数 过去 5 分钟内成功的查询数。 {DatabaseName, QueryType}、{DatabaseName}、{QueryType}、{}
QueriesFailed 查询数 过去 5 分钟内失败的查询数。 {DatabaseName, QueryType}、{DatabaseName}、{QueryType}、{}

维度集是应用于指标的分组维度。您可以使用这些维度组来指定如何检索统计数据。

下表详细说明了特定指标的维度和维度值:

CloudWatch 维度和维度值
维度 描述和值
DatabaseName 数据库的名称。自定义值。
latency

可能值如下所示:

  • short – 不到 10 秒

  • medium – 在 10 秒到 10 分钟之间

  • long – 超过 10 分钟

QueryType 可能的值为 INSERTDELETEUPDATEUNLOADLOADSELECTCTASOTHER
stage

查询的执行阶段。可能值如下所示:

  • QueryPlanning:分析和优化 SQL 语句所花的时间。

  • QueryWaiting:在 WLM 队列中等待所花的时间。

  • QueryExecutingRead:执行读取查询所花的时间。

  • QueryExecutingInsert:执行插入查询所花的时间。

  • QueryExecutingDelete:执行删除查询所花的时间。

  • QueryExecutingUpdate:执行更新查询所花的时间。

  • QueryExecutingCtas:执行 create table as 查询所花的时间。

  • QueryExecutingUnload:执行卸载查询所花的时间。

  • QueryExecutingCopy:执行复制查询所花的时间。

  • QueryCommit:提交所花的时间。