

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

# 日志记录和监控
<a name="monitoring-overview"></a>

监控是保持 MemoryDB 和您的其他 AWS 解决方案的可靠性、可用性和性能的重要方面。AWS 提供了以下一些监控工具来监控 MemoryDB、在出现错误时进行报告并适时自动采取措施：
+ *Amazon CloudWatch* 实时监控您的 AWS 资源以及在 AWS 上运行的应用程序。您可以收集和跟踪指标，创建自定义的控制平面，以及设置警报以在指定的指标达到您指定的阈值时通知您或采取措施。例如，您可以使用 CloudWatch 跟踪 Amazon EC2 实例的 CPU 使用率或其他指标并且在需要时自动启动新实例。有关更多信息，请参阅《Amazon CloudWatch 用户指南》[https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。
+ *Amazon CloudWatch Logs* 使您能够监控、存储和访问来自 Amazon EC2 实例、CloudTrail 和其他来源的日志文件。CloudWatch Logs 可以监控日志文件中的信息，并在达到特定阈值时通知您。您还可以在高持久性存储中检索您的日志数据。有关更多信息，请参阅 [Amazon CloudWatch Logs 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)。
+ *AWS CloudTrail* 捕获由您的 AWS 账户或代表该账户发出的 API 调用和相关事件，并将日志文件传输到您指定的 Amazon S3 存储桶。您可以标识哪些用户和账户调用了 AWS、发出调用的源 IP 地址以及调用的发生时间。有关更多信息，请参阅[《AWS CloudTrail 用户指南》](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

# 使用 Amazon CloudWatch 监控 MemoryDB
<a name="monitoring-cloudwatch"></a>

您可以使用 CloudWatch 监控 MemoryDB，CloudWatch 会收集原始数据并将其处理为易读且近乎实时的指标。这些统计数据会保存 15 个月，从而使您能够访问历史信息，并能够更好地了解您的 Web 应用程序或服务的执行情况。此外，可以设置用于监测特定阈值的警报，并在达到相应阈值时发送通知或执行操作。有关更多信息，请参阅《[Amazon CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)》。

以下部分列出了 MemoryDB 的指标和维度。

**Topics**
+ [主机级指标](metrics.HostLevel.md)
+ [MemoryDB 的指标](metrics.memorydb.md)
+ [应监控哪些指标？](metrics.whichshouldimonitor.md)
+ [选择指标统计数据和周期](metrics.ChoosingStatisticsAndPeriods.md)
+ [监控 CloudWatch 指标](cloudwatchmetrics.md)

# 主机级指标
<a name="metrics.HostLevel"></a>

`AWS/MemoryDB` 命名空间包含各个节点的以下主机级指标。

**另请参阅**
+ [MemoryDB 的指标](metrics.memorydb.md)


| 指标 | 描述 | 单位 | 
| --- | --- | --- | 
| CPUUtilization |  整个主机的 CPU 使用率百分比。由于 Valkey 和 Redis OSS 是单线程的，所以我们建议您监控有 4 个或更多 vCPU 的节点的 EngineCPUUtilization 指标。 |  百分比  | 
| FreeableMemory  |  主机上可用的闲置内存量。此数字源自操作系统报告为可释放的 RAM 和缓冲区中的内存。 |  字节  | 
| NetworkBytesIn |  主机已从网络读取的字节数。 |  字节  | 
| NetworkBytesOut | 实例在所有网络接口上发送的字节数。 |  字节  | 
| NetworkPacketsIn | 实例在所有网络接口上收到的数据包的数量。此指标依据单个实例上的数据包数量来标识传入流量的量。 | 计数  | 
| NetworkPacketsOut | 实例在所有网络接口上发送的数据包的数量。此指标依据单个实例上的数据包数量标识传出流量的量。 | 计数  | 
| NetworkBandwidthInAllowanceExceeded | 因入站聚合带宽超过实例的最大值而形成的数据包的数量。 | 计数  | 
| NetworkConntrackAllowanceExceeded | 由于连接跟踪超过实例的最大值且无法建立新连接而形成的数据包的数量。这可能会导致进出实例的流量丢失数据包。 | 计数  | 
| NetworkBandwidthOutAllowanceExceeded | 因出站聚合带宽超过实例的最大值而形成的数据包的数量。 | 计数  | 
| NetworkPacketsPerSecondAllowanceExceeded | 因双向每秒数据包数量超过实例的最大值而形成的数据包数量。 | 计数  | 
| NetworkMaxBytesIn | 每分钟内接收字节的最大每秒突增量。 | 字节 | 
| NetworkMaxBytesOut  | 每分钟内传输字节的最大每秒突增量。 | 字节 | 
| NetworkMaxPacketsIn | 每分钟内接收数据包的最大每秒突增量。 | 计数  | 
| NetworkMaxPacketsOut | 每分钟内传输数据包的最大每秒突增量。 | 计数  | 
| SwapUsage |  主机上的交换区使用量。 |  字节  | 

# MemoryDB 的指标
<a name="metrics.memorydb"></a>

`AWS/MemoryDB` 命名空间包括以下指标。

除 `ReplicationLag`、`EngineCPUUtilization`、`SuccessfulWriteRequestLatency` 和 `SuccessfulReadRequestLatency` 外，这些指标源自 Valkey 和 Redis OSS 的 **info** 命令。每项指标都是按照节点级计算的。

有关 **INFO** 命令的完整文档，请参阅 [INFO](http://valkey.io/commands/info)。

**另请参阅。**
+ [主机级指标](metrics.HostLevel.md)

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/memorydb/latest/devguide/metrics.memorydb.html)

以下是一些类型的命令的集合，派生自 **info commandstats**。commandstats 部分根据命令类型提供统计信息，包括调用次数。

有关可用命令的完整列表，请参阅[命令](https://valkey.io/commands)。


| 指标  | 描述  | 单位  | 
| --- | --- | --- | 
| EvalBasedCmds | 基于 eval 的命令的命令总数。这是根据 commandstats 统计数据得出的，方式是计算 eval 与 evalsha 的总和。 | 计数 | 
| GeoSpatialBasedCmds | 基于地理空间的命令的命令总数。这是根据 commandstats 统计数据得出的。它是通过汇总所有地理类型的命令的总和得出的：geoadd、geodist、geohash、geopos、georadius 和 georadiusbymember。 | 计数 | 
| GetTypeCmds | read-only 类型命令的总数。这是根据 commandstats 统计数据得出的，方法是计算所有 read-only 类型命令（get、hget、scard、lrange 等）的总和。 | 计数 | 
| HashBasedCmds | 基于哈希的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个哈希的命令（hget、hkeys、hvals、hdel 等）的总和。 | 计数 | 
| HyperLogLogBasedCmds | 基于 HyperLogLog 的命令的总数。这是根据 commandstats 统计数据得出的，方法是计算所有 pf 类型的命令（pfadd、pfcount、pfmerge 等）的总和。 | 计数 | 
|  JsonBasedCmds |  基于 JSON 的命令总数。这是根据 commandstats 统计数据得出的，方式是计算所有作用于一个或多个 JSON 文档对象的命令的总和。 | 计数 | 
| KeyBasedCmds | 基于密钥的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于多个数据结构中的一个或多个键的命令（del、expire、rename 等）的总和。 | 计数 | 
| ListBasedCmds | 基于列表的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个列表的命令（lindex、lrange、lpush、ltrim 等）的总和。 | 计数 | 
| PubSubBasedCmds | 用于发布/订阅功能的命令总数。这是根据 commandstats 统计数据得出的，方式是计算所有用于发布/订阅功能的命令（psubscribe、publish、pubsub、punsubscribe、subscribe 和 unsubscribe）的总和。 | 计数 | 
| SearchBasedCmds | 二级索引和搜索命令的总数，包括读取和写入命令。这是根据 commandstats 统计数据得出的，方式是计算所有作用于二级索引的搜索命令的总和。 | 计数 | 
| SearchBasedGetCmds | 二级索引和搜索只读命令的总数。这是根据 commandstats 统计数据得出的，方式是计算所有二级索引和搜索获取命令的总和。 | 计数 | 
| SearchBasedSetCmds | 二级索引和搜索写入命令的总数。这是根据 commandstats 统计数据得出的，方式是计算所有二级索引和搜索集命令的总和。 | 计数 | 
| SearchNumberOfIndexes | 索引的总数。 | 计数 | 
| SearchNumberOfIndexedKeys | 已编入索引的键的总数  | 计数 | 
| SearchTotalIndexSize | 所有索引占用的内存（字节）。 | 字节 | 
| SetBasedCmds | 基于设置的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个集合的命令（scard、sdiff、sadd、sunion 等）的总和。 | 计数 | 
| SetTypeCmds | write 类型命令的总数。这是根据 commandstats 统计数据得出的，方法是计算对数据执行操作的所有 mutative 类型的命令（set、hset、sadd、lpop 等）的总和。 | 计数 | 
| SortedSetBasedCmds | 基于设置的已排序命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个已排序集合的命令（zcount、zrange、zrank、zadd 等）的总和。 | 计数 | 
| StringBasedCmds | 基于字符串的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个字符串的命令（strlen、setex、setrange 等）的总和。 | 计数 | 
| StreamBasedCmds | 基于流的命令总数。这是根据 commandstats 统计数据得出的，方法是计算所有作用于一个或多个流数据类型的命令（xrange、xlen、xadd、xdel 等）的总和。 | 计数 | 

# 应监控哪些指标？
<a name="metrics.whichshouldimonitor"></a>

通过以下 CloudWatch 指标可深入了解 MemoryDB 性能。在许多情况下，我们建议对这些指标设置 CloudWatch 告警，以便您可以在性能问题出现之前采取纠正措施。

**Topics**
+ [CPUUtilization](#metrics-cpu-utilization)
+ [EngineCPUUtilization](#metrics-engine-cpu-utilization)
+ [SwapUsage](#metrics-swap-usage)
+ [移出](#metrics-evictions)
+ [当前连接](#metrics-curr-connections)
+ [内存](#metrics-memory)
+ [网络](#metrics-network)
+ [延迟](#metrics-latency)
+ [复制](#metrics-replication)

## CPUUtilization
<a name="metrics-cpu-utilization"></a>

这是以百分比形式报告的主机级指标。有关更多信息，请参阅 [主机级指标](metrics.HostLevel.md)。

 对于有 2 个或更少 vCPU 的较小节点类型，可使用 `CPUUtilization ` 指标来监控工作负载。

一般来说，我们建议您将阈值设置为可用 CPU 的 90%。因为 Valkey 和 Redis OSS 是单线程的，实际阈值应计算为节点总容量的一小部分。例如，假设您使用具有两个核心的节点类型。在这种情况下，CPU 使用率的阈值为 90/2，或 45%。要查找您的节点类型具有的核心（vCPU）数量，请参阅 [ MemoryDB 定价](https://aws.amazon.com/memorydb/pricing/?p=ps)。

您需要根据所使用的节点中的核心数，来确定自己的阈值。如果超过此阈值，并且主要工作负载来自读取请求，则请通过添加只读副本来扩展集群。如果主要工作负载来自写入请求，我们建议您添加更多分片，以在更多主节点中分配写入工作负载。

**提示**  
您可能可以使用向您报告有关 Valkey 或 Redis OSS 引擎核心的使用率百分比的指标 `EngineCPUUtilization`，而不是使用主机级指标 `CPUUtilization`。要了解此指标在您的节点上是否可用并了解更多信息，请参阅 [MemoryDB 的指标](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)。

对于有 4 个或更多 vCPU 的较大节点类型，您可能希望使用 `EngineCPUUtilization` 指标，该指标可以向您报告 Valkey 或 Redis OSS 引擎核心的使用率百分比。要了解此指标在您的节点上是否可用并了解更多信息，请参阅 [MemoryDB 的指标](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)。

## EngineCPUUtilization
<a name="metrics-engine-cpu-utilization"></a>

对于有 4 个或更多 vCPU 的较大节点类型，您可能希望使用 `EngineCPUUtilization` 指标，该指标可以向您报告 Valkey 或 Redis OSS 引擎核心的使用率百分比。要了解此指标在您的节点上是否可用并了解更多信息，请参阅 [MemoryDB 的指标](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)。

## SwapUsage
<a name="metrics-swap-usage"></a>

这是以字节为单位报告的主机级指标。有关更多信息，请参阅 [主机级指标](metrics.HostLevel.md)。

如果 `FreeableMemory` CloudWatch 指标接近 0（即低于 100MB），或者 `SwapUsage` 指标大于 `FreeableMemory` 指标，则节点可能正承受内存压力。

## 移出
<a name="metrics-evictions"></a>

这是引擎指标。我们建议您根据应用程序需求，为此指标确定自己的警报阈值。

## 当前连接
<a name="metrics-curr-connections"></a>

这是引擎指标。我们建议您根据应用程序需求，为此指标确定自己的警报阈值。

*当前连接*的数量不断增加，可能表示应用程序出现问题；您需要调查应用程序行为以解决此问题。

## 内存
<a name="metrics-memory"></a>

内存是 Valkey 和 Redis OSS 的核心。了解集群的内存利用率对于避免数据丢失和适应数据集的未来增长是必要的。有关节点内存利用率的统计信息可在 [INFO](https://valkey.io/commands/info) 命令的内存部分中找到。

## 网络
<a name="metrics-network"></a>

集群网络带宽容量的决定因素之一是您选择的节点类型。有关节点的网络容量的更多信息，请参阅 [Amazon MemoryDB 定价](https://aws.amazon.com/memorydb/pricing/)。

## 延迟
<a name="metrics-latency"></a>

延迟指标 `SuccessfulWriteRequestLatency` 和 `SuccessfulReadRequestLatency` 测量 Valkey 引擎的 MemoryDB 响应请求所需的总时间。

**注意**  
当在 Valkey 客户端上启用 CLIENT REPLY 并使用 Valkey 流水线技术时，可能会出现 `SuccessfulWriteRequestLatency` 和 `SuccessfulReadRequestLatency` 指标数值偏高的情况。Valkey 流水线技术是一种通过一次性发出多个命令而不等待每个单独命令的响应来提高性能的技术。为避免数值偏高，我们建议将您的 Redis 客户端配置为使用 [CLIENT REPLY OFF](https://valkey.io/commands/client-reply/) 来流水线化命令。

## 复制
<a name="metrics-replication"></a>

可通过 `ReplicationBytes` 指标了解被复制的数据量。您可以根据复制吞吐量监控 `MaxReplicationThroughput`。建议在达到最大复制吞吐量时添加更多分片。

`ReplicationDelayedWriteCommands` 还可以提示工作负载是否超过最大复制吞吐量。有关在 MemoryDB 中使用复制的更多信息，请参阅[了解 MemoryDB 复制](https://docs.aws.amazon.com/memorydb/latest/devguide/replication.html)

# 选择指标统计数据和周期
<a name="metrics.ChoosingStatisticsAndPeriods"></a>

虽然 CloudWatch 将允许您为每个指标选择统计数据和周期，但并非所有的组合都有用。例如，CPU 利用率的平均、最小和最大统计数据均有用，但求和统计数据却无用。

适用于每个单独节点之所有 MemoryDB 示例的发布时间都为 60 秒持续时间。对于任何 60 秒期间，节点的度量标准将只包含一个单一示例。

# 监控 CloudWatch 指标
<a name="cloudwatchmetrics"></a>

MemoryDB 和 CloudWatch 集成在一起，因此您可收集多种指标。您可使用 CloudWatch 监控这些指标。

**注意**  
下列示例需要使用 CloudWatch 命令行工具。有关 CloudWatch 的更多信息和下载开发工具，请参阅 [CloudWatch 产品页面](https://aws.amazon.com/cloudwatch)。

以下程序将介绍如何使用 CloudWatch 收集过去一小时内集群的存储空间统计数据。

**注意**  
下述示例中提供的 `StartTime` 和 `EndTime` 值都供说明之用。确保针对您的节点使用适当的开始和结束时间值替代示例中的相应值。

有关 MemoryDB 限制的信息，请参阅 MemoryDB 的[AWS 服务限制](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_memorydb)。

## 监控 CloudWatch 指标（控制台）
<a name="cloudwatchmetricsclusters.viewdetails"></a>

 **收集集群的 CPU 利用率统计数据** 

1. 登录到 AWS 管理控制台 并打开 MemoryDB 控制台，网址：[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)。

1. 选择您希望查看其度量标准的节点。
**注意**  
若选择 20 个以上的节点，则将禁用在控制台上查看指标。

   1. 在 AWS 管理控制台的**集群**页面上，单击一个或多个集群的名称。

      显示集群的详情页面。

   1. 单击位于窗口顶部的 **Nodes** 选项卡。

   1. 在详情窗口的 **Nodes** 选项卡上，选择您希望查看其度量标准的节点。

      一份可用 CloudWatch 度量标准列表会显示在控制台窗口的底部。

   1. 单击 **CPU 利用率** 度量标准。

      CloudWatch 控制台将打开，其中会显示您选择的指标。您可以使用**统计数据**和**周期**下拉列表框以及**时间范围** 选项卡来更改所显示的指标。

## 使用 CloudWatch CLI 监控 CloudWatch 指标
<a name="cloudwatchmetrics.cli"></a>

 **收集集群的 CPU 利用率统计数据** 
+ 使用以下参数调用 CloudWatch 命令 **aws cloudwatch get-metric-statistics**（请注意，此处的开始和结束时间仅作为示例；您需要替换为适合您自己的开始和结束时间）：

  对于 Linux、macOS 或 Unix：

  ```
  1. aws cloudwatch get-metric-statistics CPUUtilization \
  2.     --dimensions=ClusterName=mycluster,NodeId=0002" \
  3.     --statistics=Average \
  4.     --namespace="AWS/MemoryDB" \
  5.     --start-time 2013-07-05T00:00:00 \
  6.     --end-time 2013-07-06T00:00:00 \
  7.     --period=60
  ```

  对于 Windows：

  ```
  1. mon-get-stats CPUUtilization ^
  2.     --dimensions=ClusterName=mycluster,NodeId=0002" ^
  3.     --statistics=Average ^
  4.     --namespace="AWS/MemoryDB" ^
  5.     --start-time 2013-07-05T00:00:00 ^
  6.     --end-time 2013-07-06T00:00:00 ^
  7.     --period=60
  ```

## 使用 CloudWatch API 监控 CloudWatch 指标
<a name="cloudwatchmetrics.api"></a>

 **收集集群的 CPU 利用率统计数据** 
+ 使用以下参数调用 CloudWatch API `GetMetricStatistics`（请注意，此处的开始和结束时间仅作为示例；您需要替换为适合您自己的开始和结束时间）：
  + `Statistics.member.1``=Average`
  + `Namespace``=AWS/MemoryDB`
  + `StartTime``=2013-07-05T00:00:00`
  + `EndTime``=2013-07-06T00:00:00`
  + `Period``=60`
  + `MeasureName``=CPUUtilization`
  + `Dimensions``=ClusterName=mycluster,NodeId=0002`  
**Example**  

  ```
   1. http://monitoring.amazonaws.com/
   2.     ?SignatureVersion=4
   3.     &Action=GetMetricStatistics
   4.     &Version=2014-12-01
   5.     &StartTime=2013-07-16T00:00:00
   6.     &EndTime=2013-07-16T00:02:00
   7.     &Period=60
   8.     &Statistics.member.1=Average
   9.     &Dimensions.member.1="ClusterName=mycluster"
  10.     &Dimensions.member.2="NodeId=0002"
  11.     &Namespace=Amazon/memorydb
  12.     &MeasureName=CPUUtilization						
  13.     &Timestamp=2013-07-07T17%3A48%3A21.746Z
  14.     &AWS;AccessKeyId=<&AWS; Access Key ID>
  15.     &Signature=<Signature>
  ```

# 监控 MemoryDB 事件
<a name="monitoring-events"></a>

当集群上发生重大事件时，MemoryDB 会将通知发送到特定 Amazon SNS 主题。示例可以包括添加节点失败、添加节点成功、修改安全组等内容。通过监控关键事件，您可以了解集群的当前状态，并且能够根据事件采取相应的纠正措施。

**Topics**
+ [管理 MemoryDB Amazon SNS 通知](mdbevents.sns.md)
+ [查看 MemoryDB 事件](mdbevents.viewing.md)
+ [事件通知和 Amazon SNS](memorydbsns.md)

# 管理 MemoryDB Amazon SNS 通知
<a name="mdbevents.sns"></a>

您可以配置 MemoryDB 以使用 Amazon Simple Notification Service（Amazon SNS）发送重要集群事件的通知。在这些示例中，您将使用 Amazon SNS 主题的 Amazon 资源名称（ARN）配置集群，以便接收通知。

**注意**  
此主题假设您已经注册 Amazon SNS，同时已设置并订阅 Amazon SNS 主题。有关如何执行此操作的信息，请参阅 [Amazon Simple Notification Service 开发人员指南](https://docs.aws.amazon.com/sns/latest/dg/)。

## 添加 Amazon SNS 主题
<a name="mdbevents.sns.adding"></a>

以下部分说明了如何使用 AWS 控制台、AWS CLI 或 MemoryDB API 添加 Amazon SNS 主题。

### 添加 Amazon SNS 主题（控制台）
<a name="mdbevents.sns.addingclusters.viewdetails.console"></a>

 以下过程说明了如何为集群添加 Amazon SNS 主题。

**注意**  
 此过程还可用于修改 Amazon SNS 主题。

**为集群添加或修改 Amazon SNS 主题（控制台）**

1. 登录到 AWS 管理控制台 并打开 MemoryDB 控制台，网址：[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)。

1. 在 **Clusters（集群）**中，选择要为其添加或修改 Amazon SNS 主题 ARN 的集群。

1. 选择 **Modify**(修改)。

1. 在 **Topic for SNS Notification（SNS 通知的主题）**下的 **Modify Cluster（修改集群）**中，选择要添加的 SNS 主题，或选择 **Manual ARN input（手动 ARN 输入）**并键入 Amazon SNS 主题的 ARN。

1. 选择 **Modify**(修改)。

### 添加 Amazon SNS 主题（AWS CLI）
<a name="mdbevents.sns.adding.cli"></a>

要为集群添加或修改 Amazon SNS 主题，请使用 AWS CLI 命令 `update-cluster`。

以下代码示例会将 Amazon SNS 主题 ARN 添加到 *my-cluster*。

对于 Linux、macOS 或 Unix：

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --sns-topic-arn arn:aws:sns:us-east-1:565419523791:memorydbNotifications
```

对于 Windows：

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --sns-topic-arn arn:aws:sns:us-east-1:565419523791:memorydbNotifications
```

有关更多信息，请参阅 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)。

### 添加 Amazon SNS 主题（MemoryDB API）
<a name="mdbevents.sns.adding.api"></a>

若要为集群添加或更新 Amazon SNS 主题，请使用下列参数调用 `UpdateCluster` 操作：
+ `ClusterName``=my-cluster`
+ `SnsTopicArn``=arn%3Aaws%3Asns%3Aus-east-1%3A565419523791%3AmemorydbNotifications`

若要为集群添加或更新 Amazon SNS 主题，请调用 `UpdateCluster` 操作。

有关更多信息，请参阅 [UpdateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_UpdateCluster.html)。

## 启用和禁用 Amazon SNS 通知
<a name="mdbevents.sns.disabling"></a>

 您可以打开或关闭针对集群的通知。下面将介绍如何禁用 Amazon SNS 通知。

### 启用和禁用 Amazon SNS 通知（控制台）
<a name="mdbevents.sns.disablingclusters.viewdetails.console"></a>

**使用 AWS 管理控制台 禁用 Amazon SNS 通知**

1. 登录到 AWS 管理控制台 并打开 MemoryDB 控制台，网址：[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)。

1. 选择要修改其通知的集群左侧的单选按钮。

1. 选择 **Modify**(修改)。

1. 在 **Topic for SNS Notification** 下的 **Modify Cluster** 中，选择 *Disable Notifications*。

1. 选择 **Modify**(修改)。

### 启用和禁用 Amazon SNS 通知（AWS CLI）
<a name="mdbevents.sns.disabling.cli"></a>

若要禁用 Amazon SNS 通知，请使用包含以下参数的命令 `update-cluster`：

对于 Linux、macOS 或 Unix：

```
aws memorydb update-cluster \
    --cluster-name my-cluster \
    --sns-topic-status inactive
```

对于 Windows：

```
aws memorydb update-cluster ^
    --cluster-name my-cluster ^
    --sns-topic-status inactive
```

### 启用和禁用 Amazon SNS 通知（MemoryDB API）
<a name="mdbevents.sns.disabling.api"></a>

若要禁用 Amazon SNS 通知，请使用下列参数调用 `UpdateCluster` 操作：
+ `ClusterName``=my-cluster`
+ `SnsTopicStatus``=inactive`

此调用返回类似于下述信息的输出：

**Example**  

```
 1. https://memory-db.us-east-1.amazonaws.com/
 2.     ?Action=UpdateCluster    
 3.     &ClusterName=my-cluster
 4.     &SnsTopicStatus=inactive
 5.     &Version=2021-01-01
 6.     &SignatureVersion=4
 7.     &SignatureMethod=HmacSHA256
 8.     &Timestamp=20210801T220302Z
 9.     &X-Amz-Algorithm=Amazon4-HMAC-SHA256
10.     &X-Amz-Date=20210801T220302Z
11.     &X-Amz-SignedHeaders=Host
12.     &X-Amz-Expires=20210801T220302Z
13.     &X-Amz-Credential=<credential>
14.     &X-Amz-Signature=<signature>
```

# 查看 MemoryDB 事件
<a name="mdbevents.viewing"></a>

MemoryDB 记录与您的集群、安全组和参数组有关的事件。此信息包括事件的日期和时间、事件的源名称和源类型以及事件描述。通过使用 MemoryDB 控制台、AWS CLI `describe-events` 命令或 MemoryDB API 操作 `DescribeEvents`，您可以轻松从日志中检索事件。

以下过程说明了如何查看过去 24 小时（1440 分钟）内的所有 MemoryDB 事件。

## 查看 MemoryDB 事件（控制台）
<a name="mdbevents.viewingclusters.viewdetails"></a>

以下过程显示了使用 MemoryDB 控制台的事件。

**使用 MemoryDB 控制台查看事件**

1. 登录到 AWS 管理控制台 并打开 MemoryDB 控制台，网址：[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)。

1. 在左侧导航窗格中，选择**事件**。

   *事件*屏幕显示了所有可用事件列表。列表的每一行表示一个事件，并显示事件源、事件类型（例如 cluster、parameter-group、acl、security-group 或 subnet group）、事件的 GMT 时间及事件的描述。

   通过使用 **Filter**，您可以指定是要查看事件列表中的所有事件，还是仅查看特定类型的事件。

## 查看 MemoryDB 事件（AWS CLI）
<a name="mdbevents.viewing.cli"></a>

要使用 AWS CLI 生成 MemoryDB 事件的列表，请使用命令 `describe-events`。您可以使用可选参数来控制所列事件的类型、所列事件的时间范围、要列出的事件的最大数目等。

以下代码列出最多 40 个集群事件。

```
aws memorydb describe-events --source-type cluster --max-results 40  
```

以下代码列出了过去 24 小时（1440 分钟）内的所有事件。

```
aws memorydb describe-events --duration 1440  
```

`describe-events` 命令的输出类似于此处所示。

```
{
    "Events": [        
        {
            "Date": "2021-03-29T22:17:37.781Z", 
            "Message": "Added node 0001 in Availability Zone us-east-1a", 
            "SourceName": "memorydb01", 
            "SourceType": "cluster"
        }, 
        {
            "Date": "2021-03-29T22:17:37.769Z", 
            "Message": "cluster created", 
            "SourceName": "memorydb01", 
            "SourceType": "cluster"
        }
    ]
}
```

有关更多信息（如可用参数和允许的参数值），请参阅 [https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-events.html](https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-events.html)。

## 查看 MemoryDB 事件（MemoryDB API）
<a name="mdbevents.viewing.api"></a>

要使用 MemoryDB API 生成 MemoryDB 事件的列表，请使用 `DescribeEvents` 操作。您可以使用可选参数来控制所列事件的类型、所列事件的时间范围、要列出的事件的最大数目等。

以下代码列出了 40 个最新的集群事件。

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=DescribeEvents
   &MaxResults=40
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &SourceType=cluster
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```

以下代码列出了过去 24 小时（1440 分钟）内的集群事件。

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=DescribeEvents
   &Duration=1440
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &SourceType=cluster
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```

以上操作应生成类似于以下内容的输出。

```
<DescribeEventsResponse xmlns="http://memory-db.us-east-1.amazonaws.com/doc/2021-01-01/"> 
    <DescribeEventsResult> 
        <Events> 
            <Event> 
                <Message>cluster created</Message> 
                <SourceType>cluster</SourceType> 
                <Date>2021-08-02T18:22:18.202Z</Date> 
                <SourceName>my-memorydb-primary</SourceName> 
            </Event> 
               
 (...output omitted...)
          
        </Events> 
    </DescribeEventsResult> 
    <ResponseMetadata> 
        <RequestId>e21c81b4-b9cd-11e3-8a16-7978bb24ffdf</RequestId> 
    </ResponseMetadata> 
</DescribeEventsResponse>
```

有关更多信息（如可用参数和允许的参数值），请参阅 [https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeEvents.html](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeEvents.html)。

# 事件通知和 Amazon SNS
<a name="memorydbsns"></a>

当集群上发生重要事件时，MemoryDB 可以使用 Amazon Simple Notification Service（SNS）发布消息。此功能可用于在连接到集群的各个节点端点的客户端计算机上刷新服务器列表。

**注意**  
有关 Amazon Simple Notification Service（SNS）的更多信息（包括定价信息和 Amazon SNS 文档链接），请参阅 [Amazon SNS 产品页面](https://aws.amazon.com/sns)。

通知会发布到指定 Amazon SNS *主题*。下面是通知的要求：
+ 只能为 MemoryDB 通知配置一个主题。
+ 拥有 Amazon SNS 主题的 AWS 账户必须是拥有已启用通知的集群的同一账户。

## MemoryDB 事件
<a name="memorydbSNS.Events"></a>

以下 MemoryDB 事件会触发 Amazon SNS 通知：


| 事件名称 | 消息 | 描述 | 
| --- | --- | --- | 
|  MemoryDB:AddNodeComplete  |  "Modified number of nodes from %d to %d"  |  节点已添加到集群，并准备就绪，可供可用。  | 
|  由于空闲 IP 地址不足导致的 MemoryDB:AddNodeFailed  |  "Failed to modify number of nodes from %d to %d due to insufficient free IP addresses"  |  因为没有足够的可用 IP 地址，所以无法添加节点。  | 
|  MemoryDB:ClusterParametersChanged  |  "Updated parameter group for the cluster" 在执行创建操作的情况下，还发送 `"Updated to use a ParameterGroup %s"`  |  一个或多个集群参数已更改。  | 
|  MemoryDB:ClusterProvisioningComplete  |  "Cluster created."  |  集群预配置已完成，并且集群中的节点准备就绪，可供使用。  | 
|  由于不兼容网络状态导致的 MemoryDB:ClusterProvisioningFailed  |  "Failed to create cluster due to incompatible network state. %s"  |  尝试将新集群启动到不存在的虚拟私有云（VPC）中。  | 
|  MemoryDB:ClusterRestoreFailed  |  "Restore from %s failed for node %s. %s"  |  MemoryDB 无法使用快照数据填充集群。这可能是由于 Amazon S3 中不存在快照文件，或者该文件的权限不正确。要对集群加以说明，状态将是 `restore-failed`。您需要删除集群，重新开始。 有关更多信息，请参阅 [使用外部创建的快照为新集群做种](snapshots-seeding-redis.md)。  | 
| MemoryDB:ClusterScalingComplete  | `"Succeeded applying modification to node type to %s."` | 已成功纵向扩展集群。 | 
| MemoryDB:ClusterScalingFailed | `"Failed applying modification to node type to %s."` | 对集群的纵向扩展操作已失败。 | 
|  MemoryDB:NodeReplaceStarted  |  "Recovering node %s"  |  MemoryDB 已检测到运行节点的主机性能下降或无法访问，并已开始节点的替换工作。  针对替换之节点的 DNS 分录未发生变化。  在大多数情况下，您无需在此事件发生时刷新适用于您的客户端的服务器列表。然而，某些客户端库可能停止使用节点，即使在 MemoryDB 已替换节点之后，亦是如此；在这种情况下，应用程序应该在此事件发生时刷新服务器列表。  | 
|  MemoryDB:NodeReplaceComplete  |  "Finished recovery for node %s"  |  MemoryDB 已检测到运行节点的主机性能下降或无法访问，并已完成节点的替换工作。  针对替换之节点的 DNS 分录未发生变化。  在大多数情况下，您无需在此事件发生时刷新适用于您的客户端的服务器列表。然而，某些客户端库可能停止使用节点，即使在 MemoryDB 已替换节点之后，亦是如此；在这种情况下，应用程序应该在此事件发生时刷新服务器列表。  | 
|  MemoryDB:CreateClusterComplete  |  "Cluster created"  |  成功创建集群。  | 
|  MemoryDB:CreateClusterFailed  |  "Failed to create cluster due to unsuccessful creation of its node(s).""and""Deleting all nodes belonging to this cluster." |  未创建集群。  | 
|  MemoryDB:DeleteClusterComplete  |  "Cluster deleted."  |  已完成集群和所有关联节点的删除工作。  | 
| MemoryDB:FailoverComplete | `"Failover to replica node %s completed"` | 已成功故障转移至副本节点。 | 
|  MemoryDB:NodeReplacementCanceled  |  "The replacement of node %s which was scheduled during the maintenance window from start time: %s, end time: %s has been canceled"  |  计划替换的集群中的节点不再计划替换。  | 
|  MemoryDB:NodeReplacementRescheduled  |  "The replacement in maintenance window for node %s has been re-scheduled from previous start time: %s, previous end time: %s to new start time: %s, new end time: %s"  |  之前计划替换的集群中的节点已计划在通知中所述的新时段内替换。 有关您可以执行的操作的信息，请参阅 [替换节点](nodes.nodereplacement.md)。  | 
|  MemoryDB:NodeReplacementScheduled  |  "The node %s is scheduled for replacement during the maintenance window from start time: %s to end time: %s"  |  您集群中的节点计划在通知所述的时段内替换。 有关您可以执行的操作的信息，请参阅 [替换节点](nodes.nodereplacement.md)。  | 
|  MemoryDB:RemoveNodeComplete  |  "Removed node %s"  |  节点已从集群中移除。  | 
|  MemoryDB:SnapshotComplete  |  "Snapshot %s succeeded for node %s"  |  快照已成功完成。  | 
|  MemoryDB:SnapshotFailed  |  "Snapshot %s failed for node %s"  |  快照失败。有关失败原因的详细信息，请参阅该集群的事件。 要对快照加以说明，请参阅 [DescribeSnapshots](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeSnapshots.html)，状态将是 `failed`。  | 

# 使用 AWS CloudTrail 记录 MemoryDB API 调用
<a name="logging-using-cloudtrail"></a>

MemoryDB 与 AWS CloudTrail 集成，后者是一项服务，可在 MemoryDB 中提供用户、角色或 AWS 服务所采取操作的记录。CloudTrail 将对 MemoryDB 的所有 API 调用都作为事件捕获，包括来自 MemoryDB 控制台的调用、来自对 MemoryDB API 操作的代码调用。如果您创建跟踪记录，则可以使 CloudTrail 事件持续传送到 Amazon S3 存储桶（包括 MemoryDB 的事件）。如果您不配置跟踪，则仍可在 CloudTrail 控制台中的**事件历史记录**中查看最新事件。使用 CloudTrail 收集的信息，您可以确定向 MemoryDB 发出了什么请求、发出请求的 IP 地址、何人发出的请求、请求的发出时间以及其他详细信息。

要了解有关 CloudTrail 的更多信息，请参阅《AWS CloudTrail 用户指南》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## CloudTrail 中的 MemoryDB 信息
<a name="memorydb-info-in-cloudtrail"></a>

在您创建 AWS 账户时，将在该账户上启用 CloudTrail。当 MemoryDB 发生活动时，该活动将记录在 CloudTrail 事件中，并与其他 AWS 服务事件一同保存在**事件历史记录**中。您可以在 AWS 账户中查看、搜索和下载最新事件。有关更多信息，请参阅[使用 CloudTrail 事件历史记录查看事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

要持续记录 AWS 账户中的事件（包括 MemoryDB 的事件），请创建跟踪记录。通过跟踪，CloudTrail 可将日志文件传送至 Amazon S3 存储桶。默认情况下，在控制台中创建跟踪记录时，此跟踪记录应用于所有区域。此跟踪记录在 AWS 分区中记录所有区域中的事件，并将日志文件传送至您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息，请参阅下列内容：
+ [创建跟踪概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [为 CloudTrail 配置 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [从多个区域接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[从多个账户接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有 MemoryDB 操作都由 CloudTrail 记录。例如，对 `CreateCluster`、`DescribeClusters` 和 `UpdateCluster` 操作的调用会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 IAM 用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 了解 MemoryDB 日志文件条目
<a name="understanding-memorydb-entries"></a>

跟踪是一种配置，可用于将事件作为日志文件传送到您指定的 Amazon S3 存储桶。CloudTrail 日志文件包含一个或多个日记账条目。一个事件表示来自任何源的一个请求，包括有关请求的操作、操作的日期和时间、请求参数等方面的信息。CloudTrail 日志文件不是公用 API 调用的有序堆栈跟踪，因此它们不会按任何特定顺序显示。

下面的示例显示了一个 CloudTrail 日志条目，该条目说明了 `CreateCluster` 操作。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EKIAUAXQT3SWDEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/john",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "john"
    },
    "eventTime": "2021-07-10T17:56:46Z",
    "eventSource": "memorydb.amazonaws.com",
    "eventName": "CreateCluster",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.01",
    "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.create-cluster",
    "requestParameters": {
        "clusterName": "memorydb-cluster",
        "nodeType": "db.r6g.large",
        "subnetGroupName": "memorydb-subnet-group",
        "aCLName": "open-access"
    },
    "responseElements": {
        "cluster": {
            "name": "memorydb-cluster",
            "status": "creating",
            "numberOfShards": 1,
            "availabilityMode": "MultiAZ",
            "clusterEndpoint": {
                "port": 6379
            },
            "nodeType": "db.r6g.large",
            "engineVersion": "6.2",
            "enginePatchVersion": "6.2.6",
            "parameterGroupName": "default.memorydb-redis6",
            "parameterGroupStatus": "in-sync",
            "subnetGroupName": "memorydb-subnet-group",
            "tLSEnabled": true,
            "aRN": "arn:aws:memorydb:us-east-1:123456789012:cluster/memorydb-cluster",
            "snapshotRetentionLimit": 0,
            "maintenanceWindow": "tue:06:30-tue:07:30",
            "snapshotWindow": "09:00-10:00",
            "aCLName": "open-access",
            "dataTiering": "false",
            "autoMinorVersionUpgrade": true
        }
    },
    "requestID": "506fc951-9ae2-42bb-872c-98028dc8ed11",
    "eventID": "2ecf3dc3-c931-4df0-a2b3-be90b596697e",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

下面的示例显示了一个 CloudTrail 日志条目，该条目演示了 `DescribeClusters` 操作。请注意，对于所有的 MemoryDB 描述和列出调用（`Describe*` 和 `List*`），`responseElements` 部分将被移除并显示为 `null`。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EKIAUAXQT3SWDEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/john",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "john"
    },
    "eventTime": "2021-07-10T18:39:51Z",
    "eventSource": "memorydb.amazonaws.com",
    "eventName": "DescribeClusters",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.01",
    "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.describe-clusters",
    "requestParameters": {
        "maxResults": 50,
        "showShardDetails": true
    },
    "responseElements": null,
    "requestID": "5e831993-52bb-494d-9bba-338a117c2389",
    "eventID": "32a3dc0a-31c8-4218-b889-1a6310b7dd50",
    "readOnly": true,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

下面的示例显示了一个 CloudTrail 日志条目，该条目记录了 `UpdateCluster` 操作。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EKIAUAXQT3SWDEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/john",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "john"
    },
    "eventTime": "2021-07-10T19:23:20Z",
    "eventSource": "memorydb.amazonaws.com",
    "eventName": "UpdateCluster",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.01",
    "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.update-cluster",
    "requestParameters": {
        "clusterName": "memorydb-cluster",
        "snapshotWindow": "04:00-05:00",
        "shardConfiguration": {
            "shardCount": 2
        }
    },
    "responseElements": {
        "cluster": {
            "name": "memorydb-cluster",
            "status": "updating",
            "numberOfShards": 2,
            "availabilityMode": "MultiAZ",
            "clusterEndpoint": {
                "address": "clustercfg.memorydb-cluster.cde8da.memorydb.us-east-1.amazonaws.com",
                "port": 6379
            },
            "nodeType": "db.r6g.large",
            "engineVersion": "6.2",
            "EnginePatchVersion": "6.2.6",
            "parameterGroupName": "default.memorydb-redis6",
            "parameterGroupStatus": "in-sync",
            "subnetGroupName": "memorydb-subnet-group",
            "tLSEnabled": true,
            "aRN": "arn:aws:memorydb:us-east-1:123456789012:cluster/memorydb-cluster",
            "snapshotRetentionLimit": 0,
            "maintenanceWindow": "tue:06:30-tue:07:30",
            "snapshotWindow": "04:00-05:00",
            "autoMinorVersionUpgrade": true,
            "DataTiering": "false"
        }
    },
    "requestID": "dad021ce-d161-4365-8085-574133afab54",
    "eventID": "e0120f85-ab7e-4ad4-ae78-43ba15dee3d8",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

下面的示例显示了一个 CloudTrail 日志条目，该条目演示了 `CreateUser` 操作。请注意，对于包含敏感数据的 MemoryDB 调用，该数据将在相应的 CloudTrail 事件中进行编辑，如以下 `requestParameters` 部分所示。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EKIAUAXQT3SWDEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/john",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "john"
    },
    "eventTime": "2021-07-10T19:56:13Z",
    "eventSource": "memorydb.amazonaws.com",
    "eventName": "CreateUser",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.01",
    "userAgent": "aws-cli/2.2.29 Python/3.9.6 Darwin/19.6.0 source/x86_64 prompt/off command/memorydb.create-user",
    "requestParameters": {
        "userName": "memorydb-user",
        "authenticationMode": {
            "type": "password",
            "passwords": [
                "HIDDEN_DUE_TO_SECURITY_REASONS"
            ]
        },
        "accessString": "~* &* -@all +@read"
    },
    "responseElements": {
        "user": {
            "name": "memorydb-user",
            "status": "active",
            "accessString": "off ~* &* -@all +@read",
            "aCLNames": [],
            "minimumEngineVersion": "6.2",
            "authentication": {
                "type": "password",
                "passwordCount": 1
            },
            "aRN": "arn:aws:memorydb:us-east-1:123456789012:user/memorydb-user"
        }
    },
    "requestID": "ae288b5e-80ab-4ff8-989a-5ee5c67cd193",
    "eventID": "ed096e3e-16f1-4a23-866c-0baa6ec769f6",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```