AWS Systems ManagerChange Managernon è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta AWS Systems ManagerChange Managerla pagina Modifica della disponibilità.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione di un CloudWatch allarme esistente da creare OpsItems (a livello di codice)
Puoi configurare gli CloudWatch allarmi Amazon per crearli a OpsItems livello di codice utilizzando AWS Command Line Interface (AWS CLI), AWS CloudFormation modelli o Java frammenti di codice.
Argomenti
Prima di iniziare
Se modifichi a livello di programmazione un allarme esistente o crei un allarme che crea OpsItems, devi specificare un nome della risorsa Amazon (ARN). Questo ARN identificherà Systems Manager OpsCenter come obiettivo per la creazione di OpsItems dall'allarme. È possibile personalizzare l'ARN in modo che OpsItems creati dall'allarme includano informazioni specifiche quali la gravità o la categoria. Ogni ARN include le informazioni descritte nella tabella seguente.
| Parametro | Informazioni |
|---|---|
|
|
La posizione Regione AWS in cui si trova l'allarme. Ad esempio: |
|
|
Lo stesso Account AWS ID usato per creare l'allarme. Ad esempio: |
|
|
Un livello di gravità definito dall'utente per la creazione di OpsItems dall'allarme. Valori validi: |
|
|
categoria per la creazione di OpsItems dall'allarme. Valori validi: |
Creare l'ARN utilizzando la seguente sintassi. Questo ARN non include l'opzione di parametro Category.
arn:aws:ssm:Region:account_ID:opsitem:severity
Di seguito è riportato un esempio.
arn:aws:ssm:us-west-2:123456789012:opsitem:3
Per creare un ARN che utilizza l'opzione Category utilizzare la seguente sintassi.
arn:aws:ssm:Region:account_ID:opsitem:severity#CATEGORY=category_name
Di seguito è riportato un esempio.
arn:aws:ssm:us-west-2:123456789012:opsitem:3#CATEGORY=Security
Configurazione degli CloudWatch allarmi da creare OpsItems ()AWS CLI
Questo comando richiede di specificare un ARN per il parametro alarm-actions. Per informazioni su come creare l'ARN, consulta Prima di iniziare.
Per configurare un CloudWatch allarme da creare OpsItems ()AWS CLI
Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.
Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.
-
Eseguire il seguente comando per raccogliere informazioni sull'allarme da configurare.
aws cloudwatch describe-alarms --alarm-names "alarm name" -
Esegui il seguente comando per aggiornare un allarme. Sostituisci ogni
example resource placeholdercon le tue informazioni.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\ --unitunitEcco un esempio:
Configurazione degli CloudWatch allarmi per creare o aggiornare OpsItems () CloudFormation
Questa sezione include AWS CloudFormation modelli che è possibile utilizzare per configurare gli CloudWatch allarmi da creare o aggiornare automaticamente. OpsItems Ogni modello richiede di specificare un ARN per il parametro AlarmActions. Per informazioni su come creare l'ARN, consulta Prima di iniziare.
Allarme metrico: utilizza il seguente CloudFormation modello per creare o aggiornare un allarme CloudWatch metrico. L'allarme specificato in questo modello monitora i controlli dello stato delle istanze Amazon Elastic Compute Cloud EC2 (Amazon). Se l'allarme entra nel ALARM, crea un 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:", { "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
Allarme composito: utilizza il seguente CloudFormation modello per creare o aggiornare un allarme composito. Un allarme composito è costituito da più allarmi dei parametri. Se l'allarme entra nel ALARM, crea un 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:", "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
Configurazione degli CloudWatch allarmi per creare o aggiornare OpsItems () Java
Questa sezione include frammenti di Java codice che è possibile utilizzare per configurare gli CloudWatch allarmi da creare o aggiornare automaticamente. OpsItems Ogni frammento richiede di specificare un ARN per il parametro validSsmActionStr. Per informazioni su come creare l'ARN, consulta Prima di iniziare.
Un allarme specifico: utilizza il seguente frammento di Java codice per creare o aggiornare un avviso. CloudWatch L'allarme specificato in questo modello monitora i controlli dello stato delle EC2 istanze Amazon. Se l'allarme entra nel ALARM, crea un 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:"; 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
Aggiorna tutti gli allarmi: utilizza il seguente frammento di Java codice per aggiornare tutti gli CloudWatch allarmi presenti nel tuo sistema e Account AWS creare OpsItems quando un allarme entra in uno stato. ALARM
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