AWS Systems ManagerChange Managern'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez AWS Systems ManagerChange Managerla section Modification de la disponibilité.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration d'une CloudWatch alarme existante à créer OpsItems (par programmation)
Vous pouvez configurer les CloudWatch alarmes Amazon pour qu'elles OpsItems soient créées par programmation à l'aide de AWS Command Line Interface (AWS CLI), de AWS CloudFormation modèles ou d'extraits de Java code.
Rubriques
Avant de commencer
Si vous modifiez une alarme existante par programmation ou que vous créez une nouvelle alarme créant des OpsItems, vous devez spécifier un Amazon Resource Name (ARN). Cet ARN identifie Systems Manager OpsCenter comme la cible des OpsItems créés à partir de l'alarme. Vous pouvez personnaliser l'ARN de sorte que des OpsItems créés à partir de l'alarme incluent des informations spécifiques telles que la sévérité ou la catégorie. Chaque ARN inclut les informations décrites dans le tableau suivant.
| Paramètre | Détails |
|---|---|
|
|
L' Région AWS endroit où se trouve l'alarme. Par exemple : |
|
|
Le même Compte AWS identifiant que celui utilisé pour créer l'alarme. Par exemple : |
|
|
Un niveau de sévérité défini par l'utilisateur pour les OpsItems créés à partir de l'alarme. Valeurs valides : |
|
|
Une catégorie pour des OpsItems créés à partir de l'alarme. Valeurs valides : |
Créez l'ARN en utilisant la syntaxe suivante. Cet ARN n'inclut pas le paramètre Category facultatif.
arn:aws:ssm:Region:account_ID:opsitem:severity
Voici un exemple.
arn:aws:ssm:us-west-2:123456789012:opsitem:3
Pour créer un ARN utilisant le paramètre Category facultatif, respectez la syntaxe suivante.
arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name
Voici un exemple.
arn:aws:ssm:us-west-2:123456789012:opsitem:3#CATEGORY=Security
Configuration des CloudWatch alarmes pour créer OpsItems (AWS CLI)
Cette commande exige que vous spécifiiez un ARN pour le paramètre alarm-actions. Pour de plus amples informations sur la création de l'ARN, consultez Avant de commencer.
Pour configurer une CloudWatch alarme à créer OpsItems (AWS CLI)
Installez et configurez le AWS Command Line Interface (AWS CLI), si ce n'est pas déjà fait.
Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l' AWS CLI.
-
Exécutez la commande suivante pour collecter des informations sur l'alarme à configurer.
aws cloudwatch describe-alarms --alarm-names "alarm name" -
Exécutez la commande suivante pour mettre à jour une alarme. Remplacez chaque
example resource placeholderpar vos propres informations.aws cloudwatch put-metric-alarm --alarm-namename\ --alarm-description "description" \ --metric-namename--namespacenamespace\ --statisticstatistic--periodvalue--thresholdvalue\ --comparison-operatorvalue\ --dimensions "dimensions" --evaluation-periodsvalue\ --alarm-actions arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name\ --unitunitVoici un exemple :
Configuration des CloudWatch alarmes pour créer ou mettre à jour OpsItems (CloudFormation)
Cette section inclut des AWS CloudFormation modèles que vous pouvez utiliser pour configurer des CloudWatch alarmes afin de les créer ou de les mettre à jour automatiquementOpsItems. Chaque modèle de code exige que vous spécifiiez un Amazon Resource Name (ARN) pour le paramètre AlarmActions. Pour de plus amples informations sur la création de l'ARN, consultez Avant de commencer.
Alarme métrique — Utilisez le CloudFormation modèle suivant pour créer ou mettre à jour une alarme CloudWatch métrique. L'alarme spécifiée dans ce modèle surveille les vérifications de l'état des instances Amazon Elastic Compute Cloud (Amazon EC2). Si l'alarme entre dans l'état ALARM, un OpsItem est créé dans 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:", { "Ref" : "AWS::Partition" }, ":ssm:", { "Ref" : "AWS::Region" }, { "Ref" : "AWS:: AccountId" }, ":opsitem:3" ]]} ], "Dimensions": [{"Name": "InstanceId","Value": {"Ref": "RecoveryInstance"}}] } } } }Region:account_ID:opsitem:severity#CATEGORY=category_name
Alarme composite : utilisez le CloudFormation modèle suivant pour créer ou mettre à jour une alarme composite. Une alarme composite est constituée de plusieurs alarmes de métrique. Si l'alarme entre dans l'état ALARM, un OpsItem est créé dans OpsCenter.
"Resources":{ "HighResourceUsage":{ "Type":"AWS::CloudWatch::CompositeAlarm", "Properties":{ "AlarmName":"HighResourceUsage", "AlarmRule":"(ALARM(HighCPUUsage) OR ALARM(HighMemoryUsage)) AND NOT ALARM(DeploymentInProgress)", "AlarmActions":"arn:aws:ssm:", "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" } } }Region:account_ID:opsitem:severity#CATEGORY=category_name
Configuration des CloudWatch alarmes pour créer ou mettre à jour OpsItems (Java)
Cette section inclut des extraits de Java code que vous pouvez utiliser pour configurer des CloudWatch alarmes afin qu'elles soient créées ou mises à jour automatiquement. OpsItems Chaque extrait exige que vous spécifiiez un ARN pour le paramètre validSsmActionStr. Pour de plus amples informations sur la création de l'ARN, consultez Avant de commencer.
Une alarme spécifique — Utilisez l'extrait de Java code suivant pour créer ou mettre à jour une CloudWatch alarme. L'alarme spécifiée dans ce modèle surveille les vérifications de statut des EC2 instances Amazon. Si l'alarme entre dans l'état ALARM, un OpsItem est créé dans 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:"; 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); }Region:account_ID:opsitem:severity#CATEGORY=category_name
Mettre à jour toutes les alarmes : utilisez l'extrait de Java code suivant pour mettre à jour toutes les CloudWatch alarmes de votre système Compte AWS afin de les créer OpsItems lorsqu'une alarme entre dans l'ALARMétat.
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:"; 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; } } }Region:account_ID:opsitem:severity#CATEGORY=category_name