Mengkonfigurasi CloudWatch alarm yang ada untuk membuatOpsItems (pemrograman) - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengkonfigurasi CloudWatch alarm yang ada untuk membuatOpsItems (pemrograman)

Anda dapat mengonfigurasi CloudWatch alarm Amazon untuk membuatOpsItems pemrograman dengan menggunakanAWS Command Line Interface (AWS CLI),AWS CloudFormation templat, atau cuplikanJava kode.

Sebelum Anda memulai

Jika Anda secara terprogram mengedit alarm yang ada atau membuat alarm yang dibuatOpsItems, Anda harus menentukan Amazon Resource Name (ARN). ARN ini mengidentifikasi Systems ManagerOpsCenter sebagai target untukOpsItems dibuat dari alarm. Anda dapat menyesuaikan ARN sehingga yangOpsItems dibuat dari alarm menyertakan informasi spesifik seperti kepelikan atau kategori. Setiap ARN menyertakan informasi yang dijelaskan dalam tabel berikut.

Parameter Detail

Region(diperlukan)

Wilayah AWS tempat alarm berada. Misalnya: us-west-2. Untuk informasi tentangWilayah AWS tempat yang dapat Anda gunakanOpsCenter, lihat AWS Systems Managertitik akhir dan kuota.

account_ID(diperlukan)

ID Akun AWS yang sama yang digunakan untuk membuat alarm. Misalnya: 123456789012. ID akun harus diikuti dengan titik dua (:) dan parameteropsitem seperti yang ditunjukkan dalam contoh berikut.

severity(diperlukan)

Tingkat kepelikan yang ditetapkan pengguna untukOpsItems dibuat dari alarm. Nilai valid: 1, 2, 3, 4

Category(opsional)

Kategori untukOpsItems dibuat dari alarm. Nilai yang valid:Availability,Cost,Performance,Recovery, danSecurity.

Buat ARN dengan menggunakan sintaks berikut. ARN ini tidak termasuk parameter Category opsional.

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

Berikut adalah contohnya.

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

Untuk membuat ARN yang menggunakan parameter Category opsional, gunakan sintaks berikut.

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

Berikut adalah contohnya.

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

Mengkonfigurasi CloudWatch alarm untuk membuatOpsItems (AWS CLI)

Perintah ini mengharuskan Anda menentukan ARN untukalarm-actions parameter. Untuk informasi tentang cara membuat ARN, lihat Sebelum Anda memulai.

Untuk mengkonfigurasi CloudWatch alarm untuk membuatOpsItems (AWS CLI)
  1. Instal dan konfigurasikanAWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

    Untuk informasi, lihat Menginstal atau memperbarui versi terbaruAWS CLI.

  2. Jalankan perintah berikut untuk mengumpulkan informasi tentang alarm yang ingin Anda konfigurasi.

    aws cloudwatch describe-alarms --alarm-names "alarm name"
  3. Jalankan perintah berikut untuk memperbarui alarm. Ganti setiap contoh placeholder sumber daya dengan informasi Anda sendiri.

    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

    Inilah contohnya.

    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

Mengkonfigurasi CloudWatch alarm untuk membuat atau memperbaruiOpsItems (CloudFormation)

Bagian ini mencakupAWS CloudFormation templat yang dapat Anda gunakan untuk mengkonfigurasi CloudWatch alarm untuk membuat atau memperbarui secara otomatisOpsItems. Setiap templat mengharuskan Anda menentukan ARN untukAlarmActions parameter. Untuk informasi tentang cara membuat ARN, lihat Sebelum Anda memulai.

alarm metrik - Gunakan CloudFormation templat berikut untuk membuat atau memperbarui alarm CloudWatch metrik. alarm yang ditentukan dalam templat ini memantau pemeriksaan status instans Amazon Elastic Compute Cloud (Amazon EC2). Jika alarm memasukiALARM negara, itu menciptakanOpsItem inOpsCenter.

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

alarm komposit - Gunakan CloudFormation templat berikut untuk membuat atau memperbarui alarm komposit. Alarm komposit terdiri dari beberapa alarm metrik. Jika alarm memasukiALARM negara, itu menciptakanOpsItem inOpsCenter.

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

Mengkonfigurasi CloudWatch alarm untuk membuat atau memperbaruiOpsItems (Java)

Bagian ini mencakup cuplikanJava kode yang dapat Anda gunakan untuk mengkonfigurasi CloudWatch alarm untuk membuat atau memperbarui secara otomatisOpsItems. Setiap cuplikan mengharuskan Anda menentukan ARN untukvalidSsmActionStr parameter. Untuk informasi tentang cara membuat ARN, lihat Sebelum Anda memulai.

alarm khusus - Gunakan cuplikanJava kode berikut untuk membuat atau memperbarui CloudWatch alarm. alarm yang ditentukan dalam templat ini memantau pemeriksaan status instans Amazon EC2. Jika alarm memasukiALARM negara, itu menciptakanOpsItem inOpsCenter.

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); }

Perbarui semua alarm - Gunakan cuplikanJava kode berikut untuk memperbarui semua CloudWatch alarm yang ada di AndaAkun AWS yang dibuatOpsItems saat alarm memasukiALARM status.

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; } } }