運用作業を行うのでCloudWatchのアラーム設定を無効化させたい

どうも!大阪オフィスの西村祐二です。

AWS環境の監視としてCloudWatchアラームを設定して、メールやSlackなどにアラート通知させている方は多いのではないでしょうか?

運用作業をするとき、設定しているCloudWatchアラームを無効化して関係者にむやみにアラート通知をさせないようにしたい、という場面があったのでその方法を紹介したいと思います。

どうやるか

AWS CLIから設定していきます。(マネージメントコンソールから設定できそうかなと思い探したのですが無効化するような機能は見つけられませんでした。)

設定は簡単で下記コマンドで完了です。

$ aws cloudwatch disable-alarm-actions --alarm-name <アラームの名前>

ステータスの確認もCLIからできます。 正常に無効化できている場合は"ActionsEnabled": falseとなっています。

$ aws cloudwatch describe-alarms --alarm-names <アラームの名前>

{
    "MetricAlarms": [
        {
            "EvaluationPeriods": 1,
            "TreatMissingData": "notBreaching",
            "AlarmArn": "arn:aws:cloudwatch:ap-northeast-1:xxxxxxxx:alarm:xxxxxxxxxxx",
            "StateUpdatedTimestamp": "xxxxxxxxx",
            "AlarmConfigurationUpdatedTimestamp": "xxx",
            "ComparisonOperator": "GreaterThanOrEqualToThreshold",
            "AlarmActions": [
                "arn:aws:sns:ap-northeast-1:xxxxxxx:xxxxxxxxxx"
            ],
            "Namespace": "xxxxxxxxx",
            "AlarmDescription": "xxxxxxxx",
            "StateReasonData": "{ xxxxxx }",
            "Period": 300,
            "StateValue": "OK",
            "Threshold": 5.0,
            "AlarmName": "xxxxxxxxxxx",
            "Dimensions": [],
            "Statistic": "Sum",
            "StateReason": "Threshold Crossed: no datapoints were received for 1 period and 1 missing datapoint was treated as [NonBreaching].",
            "InsufficientDataActions": [],
            "OKActions": [],
            "ActionsEnabled": false,
            "MetricName": "xxxxxxxxxxxx"
        }
    ]
}

運用作業が終わったらCloudWatchのアラーム設定を有効にすることを忘れないようにしましょう。

下記コマンドで有効に設定変更することができます。

$ aws cloudwatch enable-alarm-actions --alarm-name <アラームの名前>

マネージメントコンソールでアラーム設定のステータスが表示されない?

デフォルトでは表示が有効になっていないようなので、下記の手順に沿ってステータスを表示するようにしておくと良いかと思います。

さいごに

CloudWatchのアラーム設定を無効化する方法をご紹介しました。

設定は簡単でコマンド一つでできるので試してみてはいかがでしょうか。

個人的にマネージメントコンソールで無効化の設定ができる機能(見つけられてないだけ?)、時間指定できる機能があれば最高でしたが、今後のアップデートに期待です。

誰かの参考になれば幸いです。