ハマログ

株式会社イーツー・インフォの社員ブログ

Amazon CloudWatchのメトリクスとアラームをCLIで設定する

はじめに

Amazon CloudWatchを利用したリソースのモニタリングを設定する必要があったのですが、サーバが多くCloudFormationも利用していない環境のため、なるべく楽に設定できる方法を調べました。

池さんにAWS Systems Managerをおすすめされたのですが、使い方がいまいちわからず、あきらめてAWS CLIで設定することにしました。

ここではメモリ利用率、CPU利用率、ディスク利用率の3つをモニタリングしてみます。

手順

CPU使用率の監視はCloudWatchにもとから用意されていますが、メモリ、ディスク利用率はOSが管理しているため、AWS標準では監視項目は用意されていません。

実現のためにサーバ内部からCloudWatchに状況を送信する必要があり、そのためのツール「CloudWatch Monitoring Scripts」がAmazonから提供されています。まずはインストールしてみます。
OSはLinuxです。
CloudWatch Monitoring Scriptsのインストール
基本的にAWSのドキュメントに従います。
#sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64

# mkdir /usr/local/cloudwatch
# cd /usr/local/cloudwatch
# curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
# unzip CloudWatchMonitoringScripts-1.2.1.zip
# rm CloudWatchMonitoringScripts-1.2.1.zip
# cd aws-scripts-mon
# cp awscreds.template awscreds.conf
# vi awscreds.conf
# mkdir /var/log/cloudwatch/
awscreds.conf
AWSAccessKeyId=【記入】
AWSSecretKey=【記入】
テスト実行します
/usr/local/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --mem-avail --disk-space-util --disk-path=/
以下のように表示されれば成功。CloudWatchにデータを送信しました。
Successfully reported metrics to CloudWatch. Reference Id: 
crontabに登録します
# crontab -e
*/5 * * * *  /usr/local/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --mem-avail --disk-space-util --disk-path=/ --from-cron

CLIでメトリクスとアラームを設定

コマンド長いですが、がんばって実行します。
# aws cloudwatch put-metric-alarm –alarm-name ” EC2 CPUUtilization” –namespace AWS/EC2 –metric-name CPUUtilization –dimensions “Name=InstanceId,Value=i-9999999999999999” –period 300 –statistic Average –threshold 80 –comparison-operator GreaterThanOrEqualToThreshold –evaluation-periods 1 –alarm-actions “arn:aws:sns:ap-northeast-1:999999999999:test” –ok-actions “arn:aws:sns:ap-northeast-1:999999999999:test”
できました!あとは必要分登録して完了です。
各パラメータの意味はこんな感じです。
–alarm-name
アラーム名。AWSコンソールに表示されます。

–namespace
AWSで定義されている名前空間。AWS の名前空間を参照

–metric-name
メトリクス名。Amazon CloudWatch メトリクスとディメンションのリファレンスを参照

–dimensions
ターゲットの指定。Amazon CloudWatch メトリクスとディメンションのリファレンスを参照

–period
データを算出する範囲

–statistic
Maximum,Minimum,Average,Sum,SampleCount

–threshold
しきい値

–comparison-operator
< > <= >= =の指定。

–evaluation-periods
データを算出する範囲中に、しきい値を超えた回数

–alarm-actions
アラーム発生時のアクション。Amazon Simple Notification Service (SNS) でメールを送るなど。

–ok-actions
ステータスがOKに変化したときのアクション。–alarm-actionsと同一
以上
AmazonAWSCLICloudWatch

  kaneko tomo   2018年8月10日


関連記事

AWS環境で特定IPからのアクセスを拒否する

AWSのVPC内に構築されているウェブサーバーがあり、特定のIPアドレスを拒否す…

AWS内部のEC2サーバからメール送信する際のIPアドレス逆引き設定

はじめに AWSのIP逆引き設定に苦労したのでメモ。苦労した原因は、知識&事前調…

Amazon Linux2でEBSボリュームを拡張する

EC2で運用中の本番サーバーのEBSディスク容量が標準の8GBになっていたので、…


← 前の投稿

次の投稿 →