AWS Command Line Interface(AWS CLI)를 사용하여 이상 탐지를 기반으로 하는 Amazon CloudWatch 경보를 생성하려고 합니다.
간략한 설명
지표에 이상 탐지를 활성화하면 CloudWatch는 지표의 기록 데이터에 기계 학습 알고리즘을 적용합니다. CloudWatch는 이 데이터를 사용하여 지표의 예상 값 모델을 만들고 두 개의 지표를 생성합니다.
- 정상 지표 동작의 상위 대역
- 두 표준 편차의 기본값을 사용하는 정상 지표 동작의 하위 대역
자세한 내용은 CloudWatch 이상 탐지 작동 방식을 참조하세요.
해결 방법
**참고:**AWS CLI 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인합니다.
방법 1:
1. 이상 탐지를 기반으로 CloudWatch 경보를 설정하는 JSON 파일 생성:
{
"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