AWS CLI を使用した異常検出に基づき CloudWatch アラームを作成するにはどうすればよいですか?
最終更新日: 2020 年 2 月 13 日
AWS コマンドラインインターフェイス (AWS CLI) を使用した異常検出に基づき Amazon CloudWatch アラームを作成するにはどうすればよいですか?
簡単な説明
メトリクスの異常検出を有効にすると、CloudWatch によって機械学習アルゴリズムがメトリクスの期待値のモデルがメトリクスの履歴データに適用されて作成されます。
モデルでは、以下を表す 2 つのメトリクスが生成されます。
- 標準メトリクス動作の上限バンド
- デフォルト値が 2 標準偏差の標準メトリクス動作の下限バンド
詳細については、CloudWatch 異常検出が動作する仕組みを参照してください。
解決方法
注意: AWS CLI コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください。
1. 異常検出に基づき CloudWatch アラームを設定する JSON ファイルを作成します。
{
"AlarmActions": [
"arn:aws:sns:us-east-1:397466294846:test1"
],
"AlarmName": "MyAlarmName",
"AlarmDescription": "This alarm uses an anomaly detection model",
"Metrics": [
{
"Id": "m1",
"ReturnData": true,
"MetricStat": {
"Metric": {
"MetricName": "NetworkIn",
"Namespace": "AWS/EC2",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0e1830cdc0447f6b9"
}
]
},
"Stat": "Average",
"Period": 60
}
},
{
"Id": "t1",
"Expression": "ANOMALY_DETECTION_BAND(m1, 3)"
}
],
"EvaluationPeriods": 2,
"ThresholdMetricId": "t1",
"ComparisonOperator": "LessThanLowerOrGreaterThanUpperThreshold"
}
上記のファイルでは、
- m1 の ID はインスタンスの NetworkIn メトリクスに割り当てられます。t1 は NetworkIn メトリクスの異常検出モデル関数です。このモデルでは、3 つの標準偏差を使用して帯域幅を設定します。
- ThresholdMetricId は t1 に設定され、ComparisonOperator は LessThanLowerOrGreaterThanUpperThreshold に設定されます。これらの設定により、2 つの連続した評価期間中にメトリクス値が異常モデルバンドの外側にある場合にアラームがアラーム状態になります。
2. JSON ファイルを anomaly-alarm.json という名前で保存します。次に、以下のコマンドを実行して、ファイルで指定された異常検出バンドでアラームを作成します。
$ aws cloudwatch put-metric-alarm --cli-input-json file://anomaly-alarm.json
アラームの作成が終了すると、モデルが生成されます。グラフに表示されるバンドは、最初は異常検出バンドの近似値です。モデルによって生成された異常検出バンドがグラフに表示されるまでに最大 15 分かかる場合があります。
関連情報
異常検出に基づいて CloudWatch アラームを作成する (AWS マネジメントコンソールを使用)