LoginSignup
1
0

More than 3 years have passed since last update.

AWS CLIでのCloudWatchアラーム作成方法

Last updated at Posted at 2021-04-25

AWSのCloudWatchについて

AWSの各サービス(EC2, S3, ELB等)に関して任意のメトリクスやログに基づいてアラートを通知したり、システムを監視をしたりできるサービス。
複数監視項目を組み合わせて、アラートをメールやSlackに通知することも可能。

CloudWatchのアラーム作成

基本的には、公式ドキュメントにしたがってGUI上で必要項目を1アラーム毎に設定していく。
⇒数個のアラームであれば問題ないが、数が多くなると手間がかかる問題

AWS CLIから設定JSONを元にアラームを作成する方法

この問題を解決できるかつ、似たような設定のアラートを複数個設定する場合はこの方法でやると便利。

以下、設定手順を説明する。

①設定ファイル作成に必要なメトリクス情報を表示する。

aws cloudwatch list-metrics --namespace [監視対象のNameSpace]

ここで表示されたメトリクスのDimensionsをメモする。
--metric-name 'mem_used_percent'オプションでmetric nameでフィルタリングもできる。

②設定用JSONファイルを作成する。Dimensions欄には①でメモした物を入力する。

今回はサンプルとして「メモリ使用%が60秒の区間で90%以上に1データ点でもなった場合に場合にアラートを出す」アラームの設定ファイルを載せる。

設定JSONファイルサンプル
{
  "AlarmActions": [
    "arn:aws:sns:ap-east-1:~:cloudwatch_alarm-sns"  // SNSのARN
  ],
  "AlarmName": "memory-utilization-90",  // 設定したい好きなアラーム名
  "AlarmDescription": "60秒内の1データポイントのmemory-utilization >= 90",  // アラームの説明(なくても良い)
  "Namespace": "Name space",  // 監視対象のNameSpace
  "MetricName": "mem_used_percent",  // 監視対象のメトリクス(今回は使用メモリの%)
  "Dimensions": [
    {
      "Name": "ServerName",
      "Value": "Server 1"
    },
    {
      "Name": "host",
      "Value": "ip-~"
    }
  ],
  "Statistic": "Maximum",  // 今回の場合は60秒区間ごとの最大値を評価
  "Period": 60,  // 何秒間の中で条件を満たした場合にアラートを出すか
  "EvaluationPeriods": 1,  // 区間内で何データ点条件を満たした場合にアラートを出すか
  "Threshold": 90,  // 閾値
  "ComparisonOperator": "GreaterThanOrEqualToThreshold" // 今回の場合は閾値以上の場合
}

使用可能なパラメータに関しては公式ドキュメントを参照

③CLIで②で作ったJSONのパスを指定してCLI上でアラームを設定する。

aws cloudwatch put-metric-alarm --cli-input-json file://alarm-path.json

ちなみに、--cli-input-yamlとすればyamlでも設定ができる。

参考

https://bbh.bz/2019/08/29/setting-cloudwatch-alarmby-cli/
https://qiita.com/moomindani/items/aef16aa93db56b071ba3
https://hacknote.jp/archives/43635/
https://recipe.kc-cloud.jp/archives/9733
https://recipe.kc-cloud.jp/archives/9765
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html
https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudwatch-set-anomaly-detection-alarm/
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-usage-skeleton.html
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/quickref-cloudwatch.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0