CloudWatchで、EC2のメモリ使用量とディスク容量をウォッチする

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/mon-scripts.html

基本的には上に書いてあるが一部補足

 

1.以下のコマンドを実行

sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64

 2.インストールする場所を作成&移動

mkdir ~/cron-script
cd ~/cron-script

 

3.ダウンロード

curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O

4.スクリプトインストール

unzip CloudWatchMonitoringScripts-1.2.2.zip && \
rm CloudWatchMonitoringScripts-1.2.2.zip && \
cd aws-scripts-mon

5.AWSの管理画面から「IAM」→「ポリシー」→「ポリシー作成」へと進む

「サービス」ーCloudWatch

「アクション」ーPutMetricData、GetMetricStatistics、ListMetrics を探してチェック

 

「さらにアクセス許可を追加」をクリックし、

「サービス」ーEC2

「アクション」ーDescribeTags にチェック

→ポリシーの確認、作成

 

6.IAMに戻り、「ユーザー」ー「ユーザーを追加」

ユーザー名:Cloudwatch

アクセスの種類:プログラムによるアクセス

 

次画面で「既存のポリシーを直接アタッチ」をクリックし、5で作成したポリシーを割り当てる。

ユーザー作成後、アクセスキーとシークレットキーが表示されるので、メモっておく

 

7.コンソールに戻り、以下を実行

cp awscreds.template awscreds.conf 

 

 8.vi で編集

vi awscreds.conf

AWSAccesseyIdとAWSSecretKeyを入力し、

:wq!

 

9.メモリー関係とディスクスペースを調べる

./mon-put-instance-data.pl --disk-space-util --disk-path=/  --mem-used-incl-cache-buff --mem-util --mem-used --mem-avail --verify --verbose

 

10.cronに登録

crontab -e

 iを押して、insertモードに入り、以下を追加。

*/5 * * * * ~/cron-script/aws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/ --from-cron

:wq!で終了。

 

 11.以上で設定は完了。

AWSのCloudWatch上で[メトリクス]->[すべてのメトリクス]->[Linuxシステム]->[Filesystem, InstanceId, MountPath]を開くと、各種値がグラフ化される。