Konfiguration einer vorhandenen CloudWatch-Warnung zum Erstellen von OpsItems (programmgesteuert) - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfiguration einer vorhandenen CloudWatch-Warnung zum Erstellen von OpsItems (programmgesteuert)

Sie können Amazon CloudWatch-Warnungen programmgesteuert konfigurieren, um OpsItems mit AWS Command Line Interface (AWS CLI), AWS CloudFormation-Vorlagen oder Java-Code-Snippets zu verwenden.

Bevor Sie beginnen

Wenn Sie eine vorhandenen Warnung programmgesteuert bearbeiten oder eine neuen Warnung erstellen, der OpsItems erstellt, müssen Sie einen Amazon-Ressourcennamen (ARN) angeben. Dieser ARN identifiziert Systems Manager OpsCenter als Ziel für OpsItems, die aus dem Alarm erstellt wurden. Sie können den ARN so anpassen, dass OpsItems, die aus dem Alarm erstellt wurden, bestimmte Informationen wie Schweregrad oder Kategorie enthalten. Jede ARN enthält die in der folgenden Tabelle beschriebenen Informationen.

Parameter Details

Region (Erforderlich)

Die AWS-Region, in der sich der Alarm befindet. Beispiel: us-west-2. Weitere Informationen zu AWS-Regionen, in denen Sie OpsCenter verwenden können, finden Sie unter AWS Systems Manager-Endpunkte und Kontingente.

account_ID (Erforderlich)

Die gleiche AWS-Konto-ID, die zum Erstellen des Alarms verwendet wird. Beispiel: 123456789012. Der Konto-ID muss ein Doppelpunkt (:) und der Parameter opsitem folgen, wie in den folgenden Beispielen gezeigt.

severity (Erforderlich)

Ein benutzerdefinierter Schweregrad für OpsItems wurde aus dem Alarm erstellt. Zulässige Werte: 1, 2, 3, 4

Category (Optional)

Eine Kategorie für OpsItems, die aus dem Alarm erstellt wurde. Gültige Werte: Availability, Cost, Performance, Recovery und Security.

Erstellen Sie den ARN mit der folgenden Syntax. Dieser ARN enthält nicht den optionalen Category-Parameter.

arn:aws:ssm:Region:account_ID:opsitem:severity

Im Folgenden sehen Sie ein Beispiel.

arn:aws:ssm:us-west-2:123456789012:opsitem:3

Verwenden Sie die folgende Syntax, um einen ARN zu erstellen, der den optionalen Category-Parameter verwendet.

arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name

Im Folgenden sehen Sie ein Beispiel.

arn:aws:ssm:us-west-2:123456789012:opsitem:3#CATEGORY=Security

Konfigurieren von CloudWatch-Warnungen zum Erstellen von OpsItems (AWS CLI)

Für diesen Befehl müssen Sie einen ARN für den alarm-actions-Parameter angeben. Informationen zum Erstellen des ARN finden Sie unter Bevor Sie beginnen.

Konfigurieren von CloudWatch-Warnungen zum Erstellen von OpsItems (AWS CLI)
  1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), wenn noch nicht erfolgt.

    Weitere Informationen finden Sie unter Installieren oder Aktualisieren der neuesten Version von AWS CLI.

  2. Führen Sie den folgenden Befehl aus, um Informationen über den Alarm zu sammeln, den Sie konfigurieren möchten.

    aws cloudwatch describe-alarms --alarm-names "alarm name"
  3. Führen Sie den folgenden Befehl aus, um einen Alarm zu aktualisieren. Ersetzen Sie jeden Beispiel Platzhalter für Ressourcen mit Ihren eigenen Informationen.

    aws cloudwatch put-metric-alarm --alarm-name name \ --alarm-description "description" \ --metric-name name --namespace namespace \ --statistic statistic --period value --threshold value \ --comparison-operator value \ --dimensions "dimensions" --evaluation-periods value \ --alarm-actions arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name \ --unit unit

    Ein Beispiel:

    Linux & macOS
    aws cloudwatch put-metric-alarm --alarm-name cpu-mon \ --alarm-description "Alarm when CPU exceeds 70 percent" \ --metric-name CPUUtilization --namespace AWS/EC2 \ --statistic Average --period 300 --threshold 70 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=InstanceId,Value=i-12345678" --evaluation-periods 2 \ --alarm-actions arn:aws:ssm:us-east-1:123456789012:opsitem:3#CATEGORY=Security \ --unit Percent
    Windows
    aws cloudwatch put-metric-alarm --alarm-name cpu-mon ^ --alarm-description "Alarm when CPU exceeds 70 percent" ^ --metric-name CPUUtilization --namespace AWS/EC2 ^ --statistic Average --period 300 --threshold 70 ^ --comparison-operator GreaterThanThreshold ^ --dimensions "Name=InstanceId,Value=i-12345678" --evaluation-periods 2 ^ --alarm-actions arn:aws:ssm:us-east-1:123456789012:opsitem:3#CATEGORY=Security ^ --unit Percent

Konfiguration von CloudWatch-Warnungen zum Erstellen oder Aktualisieren von OpsItems (CloudFormation)

Dieser Abschnitt enthält AWS CloudFormation-Vorlagen, die Sie verwenden können, um CloudWatch-Warnungen so zu konfigurieren, dass sie automatisch OpsItems erstellen oder aktualisieren. Für jede Vorlage muss ein ARN für den AlarmActions-Parameter angegeben werden. Informationen zum Erstellen des ARN finden Sie unter Bevor Sie beginnen.

Metrik-Warnung – Verwenden Sie die folgenden CloudFormation-Vorlage, um eine CloudWatch-Metrik-Warnung zu erstellen oder zu aktualisieren. Der in dieser Vorlage angegebene Alarm überwacht die Statusprüfungen der Amazon Elastic Compute Cloud (Amazon EC2)-Instance. Wenn der Alarm in den ALARM-Zustand wecchselt, erstellt es ein OpsItem in OpsCenter.

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters" : { "RecoveryInstance" : { "Description" : "The EC2 instance ID to associate this alarm with.", "Type" : "AWS::EC2::Instance::Id" } }, "Resources": { "RecoveryTestAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmDescription": "Run a recovery action when instance status check fails for 15 consecutive minutes.", "Namespace": "AWS/EC2" , "MetricName": "StatusCheckFailed_System", "Statistic": "Minimum", "Period": "60", "EvaluationPeriods": "15", "ComparisonOperator": "GreaterThanThreshold", "Threshold": "0", "AlarmActions": [ {"Fn::Join" : ["", ["arn:arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name", { "Ref" : "AWS::Partition" }, ":ssm:", { "Ref" : "AWS::Region" }, { "Ref" : "AWS:: AccountId" }, ":opsitem:3" ]]} ], "Dimensions": [{"Name": "InstanceId","Value": {"Ref": "RecoveryInstance"}}] } } } }

Zusammengesetzte Warnung – Verwenden Sie die folgende CloudFormation-Vorlage um zusammengesetzte Warnungen zu erstellen oder zu aktualisieren. Ein zusammengesetzter Alarm besteht aus mehreren Metrikalarmen. Wenn der Alarm in den ALARM-Zustand wecchselt, erstellt es ein OpsItem in OpsCenter.

"Resources":{ "HighResourceUsage":{ "Type":"AWS::CloudWatch::CompositeAlarm", "Properties":{ "AlarmName":"HighResourceUsage", "AlarmRule":"(ALARM(HighCPUUsage) OR ALARM(HighMemoryUsage)) AND NOT ALARM(DeploymentInProgress)", "AlarmActions":"arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name", "AlarmDescription":"Indicates that the system resource usage is high while no known deployment is in progress" }, "DependsOn":[ "DeploymentInProgress", "HighCPUUsage", "HighMemoryUsage" ] }, "DeploymentInProgress":{ "Type":"AWS::CloudWatch::CompositeAlarm", "Properties":{ "AlarmName":"DeploymentInProgress", "AlarmRule":"FALSE", "AlarmDescription":"Manually updated to TRUE/FALSE to disable other alarms" } }, "HighCPUUsage":{ "Type":"AWS::CloudWatch::Alarm", "Properties":{ "AlarmDescription":"CPUusageishigh", "AlarmName":"HighCPUUsage", "ComparisonOperator":"GreaterThanThreshold", "EvaluationPeriods":1, "MetricName":"CPUUsage", "Namespace":"CustomNamespace", "Period":60, "Statistic":"Average", "Threshold":70, "TreatMissingData":"notBreaching" } }, "HighMemoryUsage":{ "Type":"AWS::CloudWatch::Alarm", "Properties":{ "AlarmDescription":"Memoryusageishigh", "AlarmName":"HighMemoryUsage", "ComparisonOperator":"GreaterThanThreshold", "EvaluationPeriods":1, "MetricName":"MemoryUsage", "Namespace":"CustomNamespace", "Period":60, "Statistic":"Average", "Threshold":65, "TreatMissingData":"breaching" } } }

Konfigurieren von CloudWatch-Warnungen zum Erstellen oder Aktualisieren von OpsItems (Java)

Dieser Abschnitt enthält Java-Codeausschnitte, die Sie verwenden können, um CloudWatch-Warnungen so zu konfigurieren, dass sie automatisch OpsItems erstellen oder aktualisieren. Für jeden Ausschnitt müssen Sie einen ARN für den validSsmActionStr-Parameter angeben. Informationen zum Erstellen des ARN finden Sie unter Bevor Sie beginnen.

Eine spezifischer Warnung – Verwenden Sie den folgenden Java-Codeausschnitt, um eine CloudWatch-Warnung zu erstellen oder zu aktualisieren. Der in dieser Vorlage angegebene Alarm überwacht die Statusprüfungen der Amazon-EC2-Instance. Wenn der Alarm in den ALARM-Zustand wecchselt, erstellt es ein OpsItem in OpsCenter.

import com.amazonaws.services.cloudwatch.AmazonCloudWatch; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.ComparisonOperator; import com.amazonaws.services.cloudwatch.model.Dimension; import com.amazonaws.services.cloudwatch.model.PutMetricAlarmRequest; import com.amazonaws.services.cloudwatch.model.PutMetricAlarmResult; import com.amazonaws.services.cloudwatch.model.StandardUnit; import com.amazonaws.services.cloudwatch.model.Statistic; private void putMetricAlarmWithSsmAction() { final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); Dimension dimension = new Dimension() .withName("InstanceId") .withValue(instanceId); String validSsmActionStr = "arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name"; PutMetricAlarmRequest request = new PutMetricAlarmRequest() .withAlarmName(alarmName) .withComparisonOperator( ComparisonOperator.GreaterThanThreshold) .withEvaluationPeriods(1) .withMetricName("CPUUtilization") .withNamespace("AWS/EC2") .withPeriod(60) .withStatistic(Statistic.Average) .withThreshold(70.0) .withActionsEnabled(false) .withAlarmDescription( "Alarm when server CPU utilization exceeds 70%") .withUnit(StandardUnit.Seconds) .withDimensions(dimension) .withAlarmActions(validSsmActionStr); PutMetricAlarmResult response = cw.putMetricAlarm(request); }

Alle Warnungen aktualisieren – Verwenden Sie den folgenden Java-Codeausschnitt, um alle CloudWatch-Warnungen in Ihrem AWS-Konto so zu aktualisieren, dass OpsItems erstellt wird, wenn eine Warnung in den ALARM-Status wechselt.

import com.amazonaws.services.cloudwatch.AmazonCloudWatch; import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder; import com.amazonaws.services.cloudwatch.model.DescribeAlarmsRequest; import com.amazonaws.services.cloudwatch.model.DescribeAlarmsResult; import com.amazonaws.services.cloudwatch.model.MetricAlarm; private void listMetricAlarmsAndAddSsmAction() { final AmazonCloudWatch cw = AmazonCloudWatchClientBuilder.defaultClient(); boolean done = false; DescribeAlarmsRequest request = new DescribeAlarmsRequest(); String validSsmActionStr = "arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name"; while(!done) { DescribeAlarmsResult response = cw.describeAlarms(request); for(MetricAlarm alarm : response.getMetricAlarms()) { // assuming there are no alarm actions added for the metric alarm alarm.setAlarmActions(ImmutableList.of(validSsmActionStr)); } request.setNextToken(response.getNextToken()); if(response.getNextToken() == null) { done = true; } } }