我想要使用 AWS Command Line Interface (AWS CLI) 來建立根據異常偵測的 Amazon CloudWatch 警示。
簡短描述
您對指標啟動異常偵測時,CloudWatch 即會將機器學習演算法套用至指標的歷史資料。CloudWatch 會使用此資料來建立指標預期值的模型,然後產生以下兩項指標:
- 正常指標行為的上限區間
- 正常指標行為的下限區間,預設值為兩個標準差
如需詳細資訊,請參閱 CloudWatch 異常偵測的運作方式。
解決方法
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新的 AWS CLI 版本。
方法 1
1. 建立 JSON 檔案以根據異常偵測來設定 CloudWatch 警示:
{
"AlarmActions": [
"arn:aws:sns:us-east-1:123456789012:CW-Alarm-Notification"
],
"AlarmName": "EC2_NetworkIn_Anomaly_Alarm",
"AlarmDescription": "Trigger when EC2 NetworkIn is outside normal traffic volume",
"Metrics": [
{
"Id": "m1",
"ReturnData": true,
"MetricStat": {
"Metric": {
"MetricName": "NetworkIn",
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-024de5ace7c560660"
}
]
},
"Stat": "Average",
"Period": 300
}
},
{
"Id": "t1",
"Expression": "ANOMALY_DETECTION_BAND(m1, 2)"
}
],
"EvaluationPeriods": 2,
"ThresholdMetricId": "t1",
"ComparisonOperator": "LessThanLowerOrGreaterThanUpperThreshold"
}
注意:
- m1 的 Id 會指派至執行個體的 NetworkIn 指標。t1 則是 NetworkIn 指標的異常偵測模型函數。該模型會使用三個標準差來設定區間寬度。
- ThresholdMetricId 會設為 t1,而 ComparisonOperator 則會設為 **LessThanLowerOrGreaterThanUpperThreshold。**當指標值往任一方向超出異常模型區間且持續兩個評估期間時,這些設定即會開始警示狀態。
2. 將 JSON 檔案另存為 anomaly-alarm.json。
3. 若要以檔案中指定的異常偵測區間建立警示,請執行下列命令:
$ aws cloudwatch put-metric-alarm --cli-input-json file://anomaly-alarm.json
方法 2
您還可以在沒有 JSON 檔案的情況下發出 AWS CLI 命令:
aws cloudwatch put-metric-alarm \
--alarm-name "EC2_NetworkIn_Anomaly_Alarm" \
--alarm-description "Trigger when EC2 NetworkIn is outside normal traffic volume" \
--alarm-actions arn:aws:sns:us-east-1:123456789012:CW-Alarm-Notification \
--comparison-operator LessThanLowerOrGreaterThanUpperThreshold \
--evaluation-periods 2 \
--threshold-metric-id t1 \
--metrics "[{\"Id\":\"m1\",\"ReturnData\":true,\"MetricStat\":{\"Metric\":{\"Namespace\":\"AWS\/EC2\",\"MetricName\":\"NetworkIn\",\"Dimensions\":[{\"Name\":\"InstanceId\",\"Value\":\"i-024de5ace7c560660\"}]},\"Stat\":\"Average\",\"Period\":300}},{\"Id\":\"t1\",\"Expression\":\"ANOMALY_DETECTION_BAND(m1,2)\"}]"
建立警示後,即會產生模型。在剛開始時,您在圖表中看到的區間是異常偵測區間的近似值。最多可能需要 15 分鐘,才會在圖表中顯示模型產生的異常偵測區間。
相關資訊
根據異常偵測建立 CloudWatch 警示
put-metric-alarm