Come posso creare un allarme CloudWatch basato sul rilevamento delle anomalie utilizzando l'interfaccia della linea di comando di AWS?

3 minuti di lettura
0

Desidero utilizzare l'interfaccia della linea di comando AWS (AWS CLI) per creare un allarme Amazon CloudWatch basato sul rilevamento delle anomalie.

Breve descrizione

Quando attivi il rilevamento delle anomalie per un parametro, CloudWatch applica algoritmi di apprendimento automatico ai dati cronologici della metrica. CloudWatch utilizza questi dati per creare un modello dei valori attesi della metrica e genera due metriche:

  • La banda superiore del comportamento metrico normale
  • La banda inferiore del comportamento metrico normale, con un valore predefinito di due deviazioni standard

Per ulteriori informazioni, consulta Come funziona il rilevamento delle anomalie di CloudWatch.

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Metodo 1

1.    Crea un file JSON per impostare un allarme CloudWatch basato sul rilevamento delle anomalie:

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

Nota:

  • l'ID di m1 viene assegnato alla metrica NetworkIn di un'istanza. t1 è la funzione del modello di rilevamento delle anomalie per la metrica NetworkIn. Il modello utilizza tre deviazioni standard per impostare la larghezza della banda.
  • ThresholdMetricId è impostato su t1 e ComparisonOperator è impostato su LessThanLowerOrGreaterThanUpperThreshold. Queste impostazioni attivano lo stato di allarme quando il valore della metrica è al di fuori della banda del modello di anomalia in entrambe le direzioni per due periodi di valutazione consecutivi.

2.    Salva il file JSON come anomaly-alarm.json.

3.    Per creare un allarme con la banda di rilevamento delle anomalie specificata nel file, esegui il seguente comando:

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

Metodo 2

Puoi anche impartire il comando AWS CLI senza il file JSON:

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

Dopo aver creato l'allarme, viene generato il modello. La banda che vedi inizialmente nel grafico è un'approssimazione della banda di rilevamento delle anomalie. Potrebbero essere necessari fino a 15 minuti prima che la banda di rilevamento delle anomalie generata dal modello appaia nel grafico.

Informazioni correlate

Create a CloudWatch alarm based on anomaly detection

put-metric-alarm

AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa