EC2を立ち上げ後、デフォルトではメモリ利用率はCloudWatchに監視追加できません。
そのため、必要なパッケージをインストールし、CloudWatchモニタリング用スクリプトを設置してCronを仕掛ける必要があります。
Cronを実行するとただちCloudWatch側に反映するので比較的簡単です。
※AWSのアクセスキーID、シークレットキーの取得は別途行ってください。
必要なパッケージをインストール
$ sudo yum -y install perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA
CloudWatchモニタリング用スクリプトの格納場所を作成
$ sudo mkdir /usr/local/cloudwatch
$ cd /usr/local/cloudwatch
$ sudo wget http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip
$ sudo unzip CloudWatchMonitoringScripts-1.2.1.zip
$ sudo rm CloudWatchMonitoringScripts-1.2.1.zip
スクリプトの設定
$ cd aws-scripts-mon
$ sudo cp awscreds.template awscreds.conf
$ sudo vim awscreds.conf
「awscreds.conf」に、以下を記載
- AWSAccessKeyId=[アクセスキーID]
- AWSSecretKey=[シークレットキー]
※アクセスキーID、シークレットキーの取得は別途行ってください。
Cron登録
$ crontab -e
以下をcrontabに登録
*/5 * * * * /usr/local/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --mem-avail --from-cron
AWSコンソールからCloudWatchで確認する
AWSコンソールでCloudWatchを選択すると、メトリクスの中に「Linuxシステム」の欄が追加されていることがわかる。
「Linuxシステム」-「InstanceId」をドリルダウンすると、「MemoryUtilization」、「MemoryUsed」、「MemoryAvailable」の項目が取れていることがわかる。
これらを組み合わせてグラフを作成し、ダッシュボードに表示できる。
まとめ
メモリ監視でアラームを追加したり、ほかにもDisk容量監視も同じ要領で追加できます。
Disk容量監視は以下のcronを追加するだけ
*/5 * * * * /usr/local/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron
参考にしたサイト
AWS EC2でメモリ利用率をCloud Watchで監視する
AWS EC2でメモリ利用率とディスク容量をCloudWatchで監視する
上記のサイトだと、パッケージperl-Digest-SHAが入っていないエラーが発生したので下記サイトを参考にエラーを取り除いた。
RedmineとGitを連携させる(認証統合)