

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

# Amazon SNS 监控 ElastiCache 事件
<a name="ECEvents"></a>

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

**Topics**
+ [

# 管理 ElastiCache 亚马逊 SNS 通知
](ECEvents.SNS.md)
+ [

# 查看 ElastiCache 事件
](ECEvents.Viewing.md)
+ [

# 事件通知和 Amazon SNS
](ElastiCacheSNS.md)

# 管理 ElastiCache 亚马逊 SNS 通知
<a name="ECEvents.SNS"></a>

您可以配置 ElastiCache 为使用亚马逊简单通知服务 (Amazon SNS) Service 发送重要集群事件的通知。在这些示例中，您将使用 Amazon SNS 主题的 Amazon 资源名称（ARN）配置集群，以便接收通知。

**注意**  
此主题假设您已经注册 Amazon SNS，同时已设置并订阅 Amazon SNS 主题。有关如何执行此操作的信息，请参阅 [Amazon Simple Notification Service 开发人员指南](https://docs.amazonaws.cn/sns/latest/dg/)。
默认情况下，`API modify-replication-group` 会影响区域中的所有组，而不仅仅是当前指定的组。如果您想在一个区域中以不同于其他组的方式配置一个特定组，可以使用 `--notification-topic-arn` 选项为该组创建一个单独的主题。

## 添加 Amazon SNS 主题
<a name="ECEvents.SNS.Adding"></a>

以下各节介绍如何使用Amazon控制台、或 API 添加 Amazon SNS 主题。Amazon CLI ElastiCache 

### 添加 Amazon SNS 主题（控制台）
<a name="ECEvents.SNS.Adding.Console"></a>

 以下过程说明了如何为集群添加 Amazon SNS 主题。在步骤 2 中使用 Valkey 或 Redis OSS 为复制组添加 Amazon SNS 主题时，请选择复制组，而不是集群。然后按照相同的剩余步骤操作。

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

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

1. 登录Amazon Web Services 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.amazonaws.cn/elasticache/)。

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 主题 (Amazon CLI）
<a name="ECEvents.SNS.Adding.CLI"></a>

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

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

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --notification-topic-arn arn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications
```

对于 Windows：

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --notification-topic-arn arn:aws:sns:us-west-2:123456789xx:ElastiCacheNotifications
```

有关更多信息，请参阅 [modify-cache-cluster](https://docs.amazonaws.cn/cli/latest/reference/elasticache/modify-cache-cluster.html)。

### 添加亚马逊 SNS 主题 (API) ElastiCache
<a name="ECEvents.SNS.Adding.API"></a>

若要为集群添加或修改 Amazon SNS 主题，请使用下列参数调用 `ModifyCacheCluster` 操作：
+ `CacheClusterId``=my-cluster`
+ `TopicArn``=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications`

**Example**  

```
 1. https://elasticache.amazon.com/
 2.     ?Action=ModifyCacheCluster
 3.     &ApplyImmediately=false
 4.     &CacheClusterId=my-cluster
 5.     &NotificationTopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications
 6.     &Version=2014-12-01
 7.     &SignatureVersion=4
 8.     &SignatureMethod=HmacSHA256
 9.     &Timestamp=20141201T220302Z
10.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
11.     &X-Amz-Date=20141201T220302Z
12.     &X-Amz-SignedHeaders=Host
13.     &X-Amz-Expires=20141201T220302Z
14.     &X-Amz-Credential=<credential>
15.     &X-Amz-Signature=<signature>
```

有关更多信息，请参阅 [ModifyCacheCluster](https://docs.amazonaws.cn/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)。

## 启用和禁用 Amazon SNS 通知
<a name="ECEvents.SNS.Disabling"></a>

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

### 启用和禁用 Amazon SNS 通知（控制台）
<a name="ECEvents.SNS.Disabling.Console"></a>

**要禁用 Amazon SNS 通知，请使用Amazon Web Services 管理控制台**

1. 登录Amazon Web Services 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.amazonaws.cn/elasticache/)。

1. 要查看运行 Memcached 的集群的列表，请在导航窗格中选择 **Memcached**。

   要查看运行 Valkey 或 Redis OSS 的集群列表，请在导航窗格中选择 **Valkey** 或 **Redis OSS**。

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

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

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

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

### 启用和禁用 Amazon SNS 通知 (Amazon CLI）
<a name="ECEvents.SNS.Disabling.CLI"></a>

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

对于 Linux、macOS 或 Unix：

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --notification-topic-status inactive
```

对于 Windows：

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --notification-topic-status inactive
```

**注意**  
当集群属于复制组时，必须使用 `modify-replication-group` CLI 命令启用或禁用 SNS 通知。

### 启用和禁用 Amazon SNS 通知 (API) ElastiCache
<a name="ECEvents.SNS.Disabling.API"></a>

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

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

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com/
 2.     ?Action=ModifyCacheCluster
 3.     &ApplyImmediately=false
 4.     &CacheClusterId=my-cluster
 5.     &NotificationTopicStatus=inactive
 6.     &Version=2014-12-01
 7.     &SignatureVersion=4
 8.     &SignatureMethod=HmacSHA256
 9.     &Timestamp=20141201T220302Z
10.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
11.     &X-Amz-Date=20141201T220302Z
12.     &X-Amz-SignedHeaders=Host
13.     &X-Amz-Expires=20141201T220302Z
14.     &X-Amz-Credential=<credential>
15.     &X-Amz-Signature=<signature>
```

# 查看 ElastiCache 事件
<a name="ECEvents.Viewing"></a>

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

以下过程向您展示如何查看过去 24 小时（1440 分钟）内的所有 ElastiCache 事件。

## 查看 ElastiCache 事件（控制台）
<a name="ECEvents.Viewing.CON"></a>

以下过程使用 ElastiCache 控制台显示事件。

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

1. 登录Amazon Web Services 管理控制台并打开 ElastiCache 控制台，网址为[ https://console.aws.amazon.com/elasticache/](https://console.amazonaws.cn/elasticache/)。

1. 要查看所有可用事件的列表，请在导航窗格中选择**事件**。

   在 “*事件*” 屏幕上，列表的每一行代表一个事件，并显示事件源、事件类型（cache-cluster cache-parameter-group cache-security-group、、或 cache-subnet-group）、事件的 GMT 时间以及事件的描述。

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

## 查看 ElastiCache 事件 (Amazon CLI)
<a name="ECEvents.Viewing.CLI"></a>

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

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

```
aws elasticache describe-events --source-type cache-cluster --max-items 40  
```

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

```
aws elasticache describe-events --source-type cache-cluster --duration 1440 
```

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

```
aws elasticache describe-events --source-type cache-cluster --max-items 40  
{
    "Events": [
        {
            "SourceIdentifier": "my-mem-cluster",
            "SourceType": "cache-cluster",
            "Message": "Finished modifying number of nodes from 1 to 3",
            "Date": "2020-06-09T02:01:21.772Z"
        },
        {
            "SourceIdentifier": "my-mem-cluster",
            "SourceType": "cache-cluster",
            "Message": "Added cache node 0002 in availability zone us-west-2a",
            "Date": "2020-06-09T02:01:21.716Z"
        },
        {
            "SourceIdentifier": "my-mem-cluster",
            "SourceType": "cache-cluster",
            "Message": "Added cache node 0003 in availability zone us-west-2a",
            "Date": "2020-06-09T02:01:21.706Z"
        },
        {
            "SourceIdentifier": "my-mem-cluster",
            "SourceType": "cache-cluster",
            "Message": "Increasing number of requested nodes",
            "Date": "2020-06-09T01:58:34.178Z"
        },
        {
            "SourceIdentifier": "mycluster-0003-004",
            "SourceType": "cache-cluster",
            "Message": "Added cache node 0001 in availability zone us-west-2c",
            "Date": "2020-06-09T01:51:14.120Z"
        },
        {
            "SourceIdentifier": "mycluster-0003-004",
            "SourceType": "cache-cluster",
            "Message": "This cluster does not support persistence (ex: 'appendonly').  Please use a different instance type to enable persistence.",
            "Date": "2020-06-09T01:51:14.095Z"
        },
        {
            "SourceIdentifier": "mycluster-0003-004",
            "SourceType": "cache-cluster",
            "Message": "Cache cluster created",
            "Date": "2020-06-09T01:51:14.094Z"
        },
        {
            "SourceIdentifier": "mycluster-0001-005",
            "SourceType": "cache-cluster",
            "Message": "Added cache node 0001 in availability zone us-west-2b",
            "Date": "2020-06-09T01:42:55.603Z"
        },
        {
            "SourceIdentifier": "mycluster-0001-005",
            "SourceType": "cache-cluster",
            "Message": "This cluster does not support persistence (ex: 'appendonly').  Please use a different instance type to enable persistence.",
            "Date": "2020-06-09T01:42:55.576Z"
        },
        {
            "SourceIdentifier": "mycluster-0001-005",
            "SourceType": "cache-cluster",
            "Message": "Cache cluster created",
            "Date": "2020-06-09T01:42:55.574Z"
        },
        {
            "SourceIdentifier": "mycluster-0001-004",
            "SourceType": "cache-cluster",
            "Message": "Added cache node 0001 in availability zone us-west-2b",
            "Date": "2020-06-09T01:28:40.798Z"
        },
        {
            "SourceIdentifier": "mycluster-0001-004",
            "SourceType": "cache-cluster",
            "Message": "This cluster does not support persistence (ex: 'appendonly').  Please use a different instance type to enable persistence.",
            "Date": "2020-06-09T01:28:40.775Z"
        },
        {
            "SourceIdentifier": "mycluster-0001-004",
            "SourceType": "cache-cluster",
            "Message": "Cache cluster created",
            "Date": "2020-06-09T01:28:40.773Z"
        }
    ]
}
```

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

## 查看 ElastiCache 事件 (ElastiCache API)
<a name="ECEvents.Viewing.API"></a>

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

以下代码列出了 40 个最新的 cache-cluster 事件。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeEvents
   &MaxRecords=40
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &SourceType=cache-cluster
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```

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

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeEvents
   &Duration=1440
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &SourceType=cache-cluster
   &Timestamp=20150202T192317Z
   &Version=2015-02-02
   &X-Amz-Credential=<credential>
```

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

```
<DescribeEventsResponse xmlns="http://elasticache.amazonaws.com/doc/2015-02-02/"> 
    <DescribeEventsResult> 
        <Events> 
            <Event> 
                <Message>Cache cluster created</Message> 
                <SourceType>cache-cluster</SourceType> 
                <Date>2015-02-02T18:22:18.202Z</Date> 
                <SourceIdentifier>mem01</SourceIdentifier> 
            </Event> 
               
 (...output omitted...)
          
        </Events> 
    </DescribeEventsResult> 
    <ResponseMetadata> 
        <RequestId>e21c81b4-b9cd-11e3-8a16-7978bb24ffdf</RequestId> 
    </ResponseMetadata> 
</DescribeEventsResponse>
```

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

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

ElastiCache 当集群上发生重大事件时，可以使用亚马逊简单通知服务 (SNS) Simple Notification Service 发布消息。此功能可用于在连接到缓存群集的各个缓存节点终端节点的客户端计算机上刷新服务器列表。

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

通知会发布到指定 Amazon SNS *主题*。下面是通知的要求：
+ 只能为 ElastiCache 通知配置一个主题。
+ 拥有 Amazon SNS 主题的账户必须与拥有启用通知的集群的账户相同。Amazon
+ 您要向其发布通知的 Amazon SNS 主题不得加密。
**注意**  
可将加密的（静态）Amazon SNS 主题附加到集群。但是， ElastiCache 控制台中主题的状态将显示为非活动状态，这实际上是在向主题 ElastiCache 推送消息时取消主题与集群的关联。
+ Amazon SNS 主题必须与集群位于同一区域。 ElastiCache 

## ElastiCache 活动
<a name="ElastiCacheSNS.Events"></a>

以下 ElastiCache 事件会触发 Amazon SNS 通知。有关事件详细信息的信息，请参阅 [查看 ElastiCache 事件](ECEvents.Viewing.md)。


| 事件名称 | Message | 说明 | 
| --- | --- | --- | 
|  ElastiCache:AddCacheNodeComplete  |  ElastiCache:AddCacheNodeComplete : cache-cluster  |  缓存节点已添加到集群中，并准备就绪，可供使用。  | 
|  ElastiCache: AddCacheNodeFailed 由于可用 IP 地址不足  |  ElastiCache:AddCacheNodeFailed : cluster-name  |  因为没有足够的可用 IP 地址，所以无法添加缓存节点。  | 
|  ElastiCache:CacheClusterParametersChanged  |  ElastiCache:CacheClusterParametersChanged : cluster-name  |  一个或多个集群参数已更改。  | 
|  ElastiCache:CacheClusterProvisioningComplete  |  ElastiCache:CacheClusterProvisioningComplete cluster-name-0001-005  |  集群预调配已完成，并且缓存集群中的缓存节点准备就绪，可供使用。  | 
|  ElastiCache: CacheClusterProvisioningFailed 由于网络状态不兼容  |  ElastiCache:CacheClusterProvisioningFailed : cluster-name  |  尝试将新集群启动到不存在的虚拟私有云（VPC）中。  | 
| ElastiCache:CacheClusterScalingComplete  | `CacheClusterScalingComplete : cluster-name` | 已成功完成缓存群集扩展。 | 
| ElastiCache:CacheClusterScalingFailed | ElastiCache:CacheClusterScalingFailed : *cluster-name* | 对缓存群集的纵向扩展操作已失败。 | 
|  ElastiCache:CacheClusterSecurityGroupModified  |  ElastiCache:CacheClusterSecurityGroupModified : cluster-name  |  发生下列事件之一： [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonElastiCache/latest/dg/ElastiCacheSNS.html)  | 
|  ElastiCache:CacheNodeReplaceStarted  |  ElastiCache:CacheNodeReplaceStarted : cluster-name  |  ElastiCache 已检测到运行缓存节点的主机已降级或无法访问，因此已开始更换缓存节点。  针对替换之缓存节点的 DNS 分录未发生变化。  在大多数情况下，您无需在此事件发生时刷新适用于您的客户端的服务器列表。但是，即使在替换 ElastiCache 了缓存节点之后，某些缓存客户端库仍可能停止使用缓存节点；在这种情况下，当此事件发生时，应用程序应刷新服务器列表。  | 
|  ElastiCache:CacheNodeReplaceComplete  |  ElastiCache:CacheNodeReplaceComplete : cluster-name  |  ElastiCache 已检测到运行缓存节点的主机已降级或无法访问，因此已完成缓存节点的更换。  针对替换之缓存节点的 DNS 分录未发生变化。  在大多数情况下，您无需在此事件发生时刷新适用于您的客户端的服务器列表。但是，即使在替换 ElastiCache 了缓存节点之后，某些缓存客户端库仍可能停止使用缓存节点；在这种情况下，当此事件发生时，应用程序应刷新服务器列表。  | 
|  ElastiCache:CacheNodesRebooted  |  ElastiCache:CacheNodesRebooted : cluster-name  |  一个或多个缓存节点已重启。 消息（Memcached）：`"Cache node %s shutdown"`，然后是第二条消息：`"Cache node %s restarted"`  | 
|  ElastiCache:CertificateRenewalComplete （仅限 Valkey 或 Redis OSS）  |  ElastiCache:CertificateRenewalComplete  |  已成功续订 Amazon CA 证书。  | 
|  ElastiCache:CreateReplicationGroupComplete  |  ElastiCache:CreateReplicationGroupComplete : cluster-name  |  已成功创建复制组。  | 
|  ElastiCache:DeleteCacheClusterComplete  |  ElastiCache:DeleteCacheClusterComplete : cluster-name  |  已完成集群和所有关联缓存节点的删除任务。  | 
| ElastiCache:FailoverComplete （仅限 Valkey 或 Redis OSS） | `ElastiCache:FailoverComplete : mycluster` | 已成功故障转移至副本节点。  | 
|  ElastiCache:ReplicationGroupIncreaseReplicaCountFinished  |  ElastiCache:ReplicationGroupIncreaseReplicaCountFinished : cluster-name-0001-005  |  已增加集群中的副本数量。  | 
|  ElastiCache:ReplicationGroupIncreaseReplicaCountStarted  |  ElastiCache:ReplicationGroupIncreaseReplicaCountStarted : cluster-name-0003-004  |  已开始向集群添加副本的过程。  | 
|  ElastiCache:NodeReplacementCanceled  |  ElastiCache:NodeReplacementCanceled : cluster-name  |  计划替换的集群中的节点不再计划替换。  | 
|  ElastiCache:NodeReplacementRescheduled  |  ElastiCache:NodeReplacementRescheduled : cluster-name  |  之前计划替换的集群中的节点已计划在通知中所述的新时段内替换。 有关您可以执行的操作的信息，请参阅 [替换节点（Valkey 和 Redis OSS）](CacheNodes.NodeReplacement.md)。  | 
|  ElastiCache:NodeReplacementScheduled  |  ElastiCache:NodeReplacementScheduled : cluster-name  |  您集群中的节点计划在通知所述的时段内替换。 有关您可以执行的操作的信息，请参阅 [替换节点（Valkey 和 Redis OSS）](CacheNodes.NodeReplacement.md)。  | 
|  ElastiCache:RemoveCacheNodeComplete  |  ElastiCache:RemoveCacheNodeComplete : cluster-name  |  缓存节点已从集群中移除。  | 
| ElastiCache:ReplicationGroupScalingComplete | `ElastiCache:ReplicationGroupScalingComplete : cluster-name` | 已成功完成对复制组的纵向扩展操作。 | 
| ElastiCache:ReplicationGroupScalingFailed | `"Failed applying modification to cache node type to %s."` | 对复制组的纵向扩展操作失败。 | 
| ElastiCache:ServiceUpdateAvailableForNode | `"Service update is available for cache node %s."` | 自助服务更新可用于节点。 | 
|  ElastiCache:SnapshotComplete （仅限 Valkey 或 Redis OSS）  |  ElastiCache:SnapshotComplete : cluster-name  |  缓存快照已成功完成。  | 
|  ElastiCache:SnapshotFailed （仅限 Valkey 或 Redis OSS）  |  SnapshotFailed : cluster-name  |  缓存快照失败。有关失败原因的详细信息，请参阅该集群的缓存事件。 要对快照加以说明，请参阅 [https://docs.amazonaws.cn/AmazonElastiCache/latest/APIReference/API_DescribeSnapshots.html](https://docs.amazonaws.cn/AmazonElastiCache/latest/APIReference/API_DescribeSnapshots.html)，状态将是 `failed`。  | 

## 相关主题
<a name="ElastiCacheSNS.SeeAlso"></a>
+ [查看 ElastiCache 事件](ECEvents.Viewing.md)