

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控 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 Resource Name (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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/) 的 MemoryDB 主控台。

1. 在 **Clusters (叢集)** 中，選擇您要新增或修改 Amazon SNS 主題 ARN 的叢集。

1. 選擇 **Modify** (修改)。

1. 在 **Modify Cluster (修改叢集)** 的 **Topic for SNS Notification (SNS 通知的主題)** 下，選擇您要新增的 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>

**使用 停用 Amazon SNS 通知 AWS 管理主控台**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/) 的 MemoryDB 主控台。

1. 選擇您要修改通知之叢集左側的選項按鈕。

1. 選擇 **Modify** (修改)。

1. 在 **Modify Cluster (修改叢集)** 的 **Topic for SNS Notification (SNS 通知的主題)** 下，選擇 *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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/) 的 MemoryDB 主控台。

1. 在左側導覽窗格中，選擇**事件**。

   *事件*畫面隨即出現，列出所有可用的事件。清單的每一列代表一個事件，並顯示事件來源、事件類型 （例如叢集、參數群組、accl、安全群組或子網路群組）、事件的 GMT 時間，以及事件的描述。

   您可以使用 **Filter (篩選條件)** 指定要查看事件清單中的所有事件，還是只查看特定類型的事件。

## 檢視 MemoryDB 事件 (AWS CLI)
<a name="mdbevents.viewing.cli"></a>

若要使用 產生 MemoryDB 事件清單 AWS CLI，請使用 命令 `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"  |  節點已新增至叢集並可供使用。  | 
|  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)." 和 "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`。  | 