LoginSignup
7
4

More than 1 year has passed since last update.

EC2をCloudWatchで監視する(後編) ~ メモリ使用率を確認&アラームを設定する ~

Last updated at Posted at 2021-12-30

はじめに

EC2をCloudWatchで監視するというテーマで記事を書いてたのですが、記事の量が多くなってしまったので2つに記事を分割しました。

記事 内容
ログファイルを確認する CloudWatch内でサーバー内のログファイルを確認する
メモリ使用率を確認&アラームを設定する(本記事) メモリ使用率をCloudWatchにて確認して、異常値になったらアラームを出す

今回はメモリ使用率をCloudWatchで確認&アラームを出す方法を見ていきます。また実際にメモリに負荷をかけてアラームが出るか確認もしていきます。(メモリ使用率以外にも、同様に方法でディスク使用率等も設定可能です)。

目次

メモリ使用率を監視するためのメトリクスの作成

メトリクスの作成自体はamazon-cloudwatch-agentというソフトを用いて設定していくのですが、こちらの前編の記事にて、やり方を記載しています。
そのため、本記事ではやり方を割愛します。

【補足】

メトリクスとは、CloudWatchが各リソース(EC2インスタンス等)について監視するパラメーターのことをいいます。
これには大きく2種類あります。

種類 説明 パラメーターの例
標準メトリクス EC2を立ち上げた時に標準的に設定してくれるメトリクス CPU使用率, インスタンスのステータスチェック等
カスタムメトリクス ユーザーが自分で作成する必要のあるメトリクス メモリ使用率, ディスク使用率等

今回はメモリ使用率をCloudWatchにて確認したいので、カスタムメトリクスを作成する必要があります。

ということで、次からメモリ使用率の確認やアラームの設定を見ていきます。

CloudWatchにてメモリ使用率を確認する

カスタムメトリクスを設定すると、CloudWatchの画面にてCWagentという名前空間のメトリクスがあることがわかります。
メトリクス名前空間.jpg

CWAgent => ImageId,InstanceId,InstanceTypeと進み、メトリクス名がmem_used_percentのチェックボックスにをつけます。
そうするとこのように値が出ることがメモリ使用率のグラフが確認できます。
メトリクス画像.jpg

メモリ使用率を確認することができたので、次にアラームを設定していきましょう。

アラームの設定をする

  • CloudWatchのアラーム画面に行きます。

アラームの作成 => メトリクスの選択から該当するメトリクス(mem_used_percent)にチェックをつけます。
その後、メトリクスの選択というボタンを押しましょう。

アラームの作成_メトリクスの選択.jpg

  • 次にアラームを出す条件を設定していきます。

設定したら次へボタンを押します。
今回は以下のような設定で進めてきます。

設定 設定値
統計 平均値
期間 1分
しきい値の種類 静的
条件 80よりも大きい
  • 通知の設定は今回はしません。特に設定せずに次へボタンを押します。

  • 名前と説明をつけて設定は完了です。
    今回は名前も説明も両方test-alarmとつけました。

これで設定完了です。
完了するとCloudWatchの画面に設定したアラームが表示されます。
設定値やアラームの状態を確認することができます。今は特にメモリに負荷はかけていないので状態がokになっていますね。
アラームok状態.jpg

  • 試しにメモリに負荷をかけてアラームが出るか確認してみましょう。

今回はStressという負荷テストツールを用います。
まずはStressをインストールしていきます。

$ sudo amazon-linux-extras install -y epel
$ sudo yum -y install stress
  • どのくらいのメモリを確保すればエラーが出るかtopコマンドにより確認します。
$ top
# 中略
KiB Mem :   454044 total,   275236 free,   108184 used,    70624 buff/cache

使用していないメモリが270,000 KiBくらいありそうなので、このメモリの分を確保してしまいます。

$ stress -m 1 --vm-bytes 270000000 --vm-hang 0 -q &

しばらくするとCloudWatchにてエラーが出てきました。
アラームエラー状態.jpg

グラフを見ると、80%以上行っていることがわかります。
Coudwatch エラーグラフ.jpg

確認できたので、processをkillしておきます。

$ jobs
[1]+  実行中               stress -m 1 --vm-bytes 270000000 --vm-hang 0 -q &
$ kill %1

これで以上になります。
ここまで読んでくださりありがとうございました。
少しでもみなさんのお力になれたら幸いです!

p.s.
このアラームをSlackに通知したいという場合はAWSのイベントをslackに通知するも参考にしてみてください!!

参考文献

7
4
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
7
4