Wie kann ich mit AWS CLI einen CloudWatch-Alarm auf Basis der Anomalieerkennung erstellen?

Lesedauer: 3 Minute
0

Ich möchte AWS Command Line Interface (AWS CLI) verwenden, um einen Amazon-CloudWatch-Alarm auf Basis der Anomalieerkennung zu erstellen.

Kurzbeschreibung

Wenn Sie die Anomalieerkennung für eine Metrik aktivieren, wendet CloudWatch Algorithmen für maschinelles Lernen auf die Verlaufsdaten der Metrik an. CloudWatch verwendet diese Daten, um ein Modell der erwarteten Werte der Metrik zu erstellen, und generiert zwei Metriken:

  • Das obere Band des normalen Verhaltens der Metrik
  • Das untere Band des normalen Verhaltens der Metrik mit einem Standardwert von zwei Standardabweichungen

Weitere Informationen finden Sie unter So funktioniert die CloudWatch-Anomalieerkennung.

Lösung

**Hinweis:**Wenn beim Ausführen von Befehlen in AWS CLI Fehler auftreten, stellen Sie sicher, dass Sie die neueste Version von AWS CLI verwenden.

Methode 1

1.Erstellen Sie eine JSON-Datei, um einen CloudWatch-Alarm auf Basis der Anomalieerkennung einzurichten:

{
  "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"
}

Hinweis:

  • Die Id von m1 ist der NetworkIn-Metrik einer Instance zugewiesen. t1 ist die Modellfunktion zur Anomalieerkennung für die NetworkIn-Metrik. Das Modell verwendet drei Standardabweichungen, um die Breite des Bandes festzulegen.
  • ThresholdMetricId ist auf t1 gesetzt und ComparisonOperator auf **LessThanLowerOrGreaterThanUpperThreshold.**Wenn der Metrik-Wert in zwei aufeinanderfolgenden Auswertungszeiträumen außerhalb des Bandes des Anomaliemodells liegt, egal in welcher Richtung, lösen diese Einstellungen den Alarmzustand aus.

2.Speichern Sie die JSON-Datei unter dem Namen anomaly-alarm.json.

3.Führen Sie folgenden Befehl aus, um einen Alarm mit dem in der Datei angegebenen Band zur Anomalieerkennung zu erstellen:

$ aws cloudwatch put-metric-alarm --cli-input-json file://anomaly-alarm.json

Methode 2

Sie können den AWS-CLI-Befehl auch ohne die JSON-Datei ausgeben:

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)\"}]"

Nachdem Sie den Alarm erstellt haben, wird das Modell generiert. Das Band, das Sie zunächst in der Grafik sehen, ist eine Annäherung an das Band zur Erkennung von Anomalien. Es kann bis zu 15 Minuten dauern, bis das vom Modell generierte Band zur Erkennung von Anomalien in der Grafik erscheint.

Verwandte Informationen

Erstellen eines CloudWatch-Alarms auf der Grundlage der Anomalieerkennung

put-metrischer Alarm

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten