

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

# 為狀態檢查失敗的 Amazon EC2 執行個體建立 CloudWatch 警示
<a name="creating_status_check_alarms"></a>

您可以使用[狀態檢查指標](viewing_metrics_with_cloudwatch.md#status-check-metrics)來建立 CloudWatch 警示，在執行個體狀態檢查失敗時通知您。

如果缺少指標資料點，狀態檢查和狀態檢查警示可能會暫時進入*資料不足*的狀態。儘管很少見，但當指標報告系統中斷時，即使執行個體狀態良好，也可能會發生這種情況。建議您將此狀態視為遺失資料，而不是狀態檢查失敗或警示違規。這在回應中對執行個體執行停止、終止、重新啟動或復原動作時尤其重要。

------
#### [ Console ]

此範例會設定警示，它在執行個體未通過狀態檢查時傳送通知。可以選擇性地停止、終止或復原執行個體。

**建立狀態檢查警示**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，選擇**狀態檢查**標籤，然後選擇**動作** > **建立狀態檢查警示**。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)**頁面上，於 **Add or edit alarm (新增或編輯警示)**下，選擇 **Create an alarm (建立警示)**。

1. 針對**警示通知**，開啟切換開關以設定 Amazon Simple Notification Service (Amazon SNS) 通知。選取現有 Amazon SNS 主題或輸入名稱以建立新主題。

   若將電子郵件地址新增到收件人清單，或是建立新主題，Amazon SNS 會將確認電子郵件傳送至每個新地址。每個收件人都必須選擇電子郵件中的確認連結。僅确认的地址会接收提醒通知。

1. 針對**警示動作**，開啟切換開關，以指定觸發警示時要採取的動作。選取動作。

1. 針對 **Alarm thresholds (警示閾值)**，指定警示的指標和準則。

   您可保留**範例分組依據** (**Average**) 和 **要做為範例的資料類型** (**Status check failed:either**) 的預設設定，或者可以根據您的需求進行變更。

   針對**連續期間**，設定要評估的期間數，然後在**期間**中，輸入在觸發提醒及傳送電子郵件前的評估期間長度。

1. (選用) 針對 **Sample metric data (範例指標資料)**，選擇 **Add to dashboard (新增至儀表板)**。

1. 選擇**建立**。

若需要變更執行個體狀態警示，您可以編輯它。

**編輯狀態檢查警示**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選擇 **Actions (動作)**、**Monitoring (監控)**、**Manage CloudWatch alarms (管理 CloudWatch 警示)**。

1. 在 **Manage CloudWatch alarms (管理 CloudWatch 警示)**頁面上，於 **Add or edit alarm (新增或編輯警示)**下，選擇 **Edit an alarm (編輯警示)**。

1. 針對 **Search for alarm (搜尋警示)**，選擇警示。

1. 完成變更後，請選擇 **Update (更新)**。

------
#### [ AWS CLI ]

在下列範例中，當執行個體的執行個體檢查或系統檢查在至少兩個連續期間中失敗時，警示便會發佈通知到 SNS 主題。使用的 CloudWatch 指標為 `StatusCheckFailed`。

**建立狀態檢查警示**

1. 選取現有的 SNS 主題，或建立新主題。如需詳細資訊，請參閱《AWS Command Line Interface 使用者指南》中的[存取 AWS CLI中的 Amazon SNS](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-sns.html)。**

1. 使用下列 [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 命令檢視 Amazon EC2 可用的 Amazon CloudWatch 指標。

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2
   ```

1. 使用下列 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令建立警示。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name {{StatusCheckFailed-Alarm-for-i-1234567890abcdef0}} \
       --metric-name StatusCheckFailed \
       --namespace AWS/EC2 \
       --statistic Maximum \
       --dimensions Name=InstanceId,Value={{i-1234567890abcdef0}} \
       --unit Count \
       --period 300 \
       --evaluation-periods 2 \
       --threshold 1 \
       --comparison-operator GreaterThanOrEqualToThreshold \
       --alarm-actions arn:aws:sns:{{us-west-2}}:{{111122223333}}:{{my-sns-topic}}
   ```

   期間為收集 Amazon CloudWatch 指標的時間範圍，以秒為單位。此範例使用 300，即 60 秒乘以 5 分鐘。評估期間為針對指標的值與閾值進行比較的連續期間數。此範例使用 2。警示動作為觸發此警示時要執行的動作。

------
#### [ PowerShell ]

**建立狀態檢查警示**  
當執行個體在至少兩個連續時段未通過狀態檢查時，請使用 [Write-CWMetricAlarm](https://docs.aws.amazon.com/powershell/latest/reference/items/Write-CWMetricAlarm.html) cmdlet 將通知發佈至 SNS 主題，如下所示。

```
Write-CWMetricAlarm `
    -AlarmName "{{StatusCheckFailed-Alarm-for-i-1234567890abcdef0}}" `
    -MetricName "StatusCheckFailed" `
    -Namespace "AWS/EC2" `
    -Statistic "Maximum" `
    -Dimension @{Name="InstanceId"; Values="{{i-1234567890abcdef0}}"} `
    -Unit "Count" `
    -Period 300 `
    -EvaluationPeriod 2 `
    -Threshold 1 `
    -ComparisonOperator "GreaterThanOrEqualToThreshold" `
    -AlarmAction "arn:aws:sns:{{us-west-2}}:{{111122223333}}:{{my-sns-topic}}"
```

期間為收集 Amazon CloudWatch 指標的時間範圍，以秒為單位。此範例使用 300，即 60 秒乘以 5 分鐘。評估期間為針對指標的值與閾值進行比較的連續期間數。此範例使用 2。警示動作為觸發此警示時要執行的動作。

------