LoginSignup
31
31

More than 5 years have passed since last update.

[AWS] CloudWatch でロードアベレージとかメモリ使用量とか監視

Posted at

CloudWatchで監視!

そもそも CloudWatch って何よ

AWS には CloudWatch と呼ばれる監視サービスがあります。
CloudWatch内では、「メトリクス」と呼ばれるグラフを使ってアラートメールを飛ばしたりEC2のオートスケール管理ができたりします。

EC2インスタンスを立てると、標準でいくつかのメトリクスが用意されているのですが、
その中には Load Average とかメモリ使用量とか、色々足りていないものが多いので、自前で用意する(カスタムメトリクスを作成する)必要があります。

AWS側でツール提供してたよね?

http://aws.amazon.com/code/8720044071969977
上記の見て頂ければわかるのですが、、、まさかの Load Average がないっていう・・・\(^o^)/

LAだけ専用のツール使うのは嫌なので、一つにまとめたい所です。

詳細手順

https://github.com/moomindani/aws-mon-linux
こちらのツール使います。

pip インストール

$ mkdir ~/work
$ cd work/
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py

aws cli インストール

$ sudo pip install awscli

アクセスキーなどの設定

$ mkdir ~/.aws
$ cd ~/.aws
$ vi config

以下の内容を ~/.aws/config に設定

[default]
aws_access_key_id=xxxxxxx
aws_secret_access_key=XXXXXX
region=ap-northeast-1
# 各所インスタンスの設定に書き換える

これがないと Unable to construct an endpoint for ec2 in region None のようなエラーが出ます。
以下を叩いて正常に結果(JSON)を取得できればOK.

$ aws ec2 describe-instances --filters "Name=instance-type,Values=m1.small,m1.medium" "Name=availability-zone,Values=ap-northeast-1c"

aws-mon-linux を落とす

github よりダウンロード

$ mkdir ~/lib
$ cd ~/lib
$ git clone https://github.com/moomindani/aws-mon-linux.git

使い方は README.md にあるとおりですが、こんな感じ

$ ./aws-mon.sh --mem-util --load-ave1  --disk-space-util --disk-path / --verbose --verify

ちなみに 320 行目の System/Detail/LinuxSystem/Linux に変更すると、 Custom Metrix の箇所ではなく Linux System というメトリクスがコンソールに表示されます。
※AWS側で設定している予約語??

パスを通す

aws コマンドは /usr/local/bin に入ります。
が、このまま crontab の設定をしても、/usr/bin:/bin ぐらいしかパスが通っていないため、 .profile/usr/local/bin を追加する必要があります。

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games"

crontab に設定

あとは crontab の設定をして、終了。

$ crontab -e
*/5 * * * * . /home/user/.profile; /home/user/lib/aws-mon-linux/aws-mon.sh --load-ave1 --mem-util --unicorn-mem-util --disk-space-util --disk-path / >> /home/user/cron/cron.log 2>&1
31
31
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
31
31