{CloudWatch}複合アラームの作成

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html


-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

-- 1.2 jqインストール
sudo yum -y install jq

 

-- 2. SNSトピック作成

aws sns list-topics
aws sns list-subscriptions

aws sns create-topic --name topic01

aws sns subscribe \
--topic-arn arn:aws:sns:ap-northeast-1:999999999999:topic01 \
--protocol email \
--notification-endpoint hoge@example.com

 

-- 3. 複合アラームを作成


aws cloudwatch put-metric-alarm \
--alarm-name alarm01 \
--alarm-description "alarm01" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 30.0 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions '[
                {
                    "Name": "InstanceId",
                    "Value": "i-11111111111111111"
                }
            ]' \
--evaluation-periods 1 \
--datapoints-to-alarm 1 \
--treat-missing-data missing


aws cloudwatch put-metric-alarm \
--alarm-name alarm02 \
--alarm-description "alarm02" \
--metric-name EBSWriteBytes \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 100000.0 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions '[
                {
                    "Name": "InstanceId",
                    "Value": "i-11111111111111111"
                }
            ]' \
--evaluation-periods 1 \
--datapoints-to-alarm 1 \
--treat-missing-data missing

 

aws cloudwatch put-composite-alarm \
--actions-enabled \
--alarm-actions arn:aws:sns:ap-northeast-1:999999999999:topic01 \
--alarm-description "alarm03" \
--alarm-name alarm03 \
--alarm-rule "ALARM("alarm01") AND ALARM("alarm02")"

 

aws cloudwatch describe-alarms


※管理者権限があるが、複合アラームがdescribe-alarmsで表示されない
「cloudwatch:DescribeAlarms」権限を付与しても変わらず

 

 

-- 4. 複合アラームをテスト

aws cloudwatch set-alarm-state \
--alarm-name alarm03 \
--state-reason "OK" \
--state-value OK

 

aws cloudwatch set-alarm-state \
--alarm-name alarm03 \
--state-reason "ALARM" \
--state-value ALARM

aws cloudwatch set-alarm-state \
--alarm-name alarm03 \
--state-reason "INSUFFICIENT_DATA" \
--state-value INSUFFICIENT_DATA


-- 5. クリーンアップ


-- アラームの削除

aws cloudwatch describe-alarms


aws cloudwatch delete-alarms \
--alarm-names alarm03

aws cloudwatch delete-alarms \
--alarm-names alarm02

aws cloudwatch delete-alarms \
--alarm-names alarm01


-- SNSトピック削除

aws sns unsubscribe --subscription-arn arn:aws:sns:ap-northeast-1:999999999999:topic01:11111111-2222-3333-4444-555555555555
aws sns delete-topic --topic-arn arn:aws:sns:ap-northeast-1:999999999999:topic01


aws sns list-topics
aws sns list-subscriptions