自作カスタムメトリクス集
注意: スクリプト中のパスは Amazon Linux のものとなっています。CentOS など他の OS で利用される場合は適時修正してご利用ください。
$ cd /home/ec2-user/bin
$ git clone git://github.com/torut/cloudwatch.git
$ cd ./cloudwatch
$ cp ./credential.example ./credential
$ vi ./credential
AWS AccessKey, SecretKey を設定します。
$ chmod 600 ./credential
他のユーザーから参照されないように読み込み権限を変更します。
$ vi ./.aws_profile
下記の共通設定を参考に設定します。
共通設定ファイル .aws_profile
このファイル内に以下の設定を行います。
- AWS_CREDENTIAL_FILE
AWS の AccessKey と SecretKey を記載したファイルの path
credential.example を credential にリネームして必要な箇所を書き換えてください。 - AWS_REGION
インスタンスがあるリージョン
東京リージョンなら ap-northeast-1 です。
それ以外の場合は下記の参考資料を参考に書き換えてください。 - instanceid
このスクリプトを設置するサーバのインスタンスID
ターミナル上で次のコマンドを打つとそのサーバのインスタンスIDを簡単に取得できます。
$ curl -s http://169.254.169.254/latest/meta-data/instance-id
MySQL のスレッド数をチェックするカスタムメトリクスです。 仕組み的には mysqladmin status を実行してそこからスレッド数を取得します。
- mysqladmin_cmd
mysqladmin コマンドの path - mysqladmin_opt
mysqladmin コマンドのオプション- MySQL User
MySQL のユーザー - MySQL User Password
MySQL User で指定したユーザーのパスワード
パスワードが不要の場合は -p も含めて削除してください。
- MySQL User
$ vi ./bin/mysql-thead.sh
mysqladmin_cmd, mysqladmin_opt などを設定します。
$ chmod 700 ./bin/mysql-thread.sh
他のユーザーから MySQL のパスワードを参照されないように読み込み権限を変更します。
$ ./bin/mysql-thread.sh
AWS Management Console の CloudWatch のところで Custom Metrics の MySQL にデータが登録されているか確認して下さい。
$ crontab -e
> */5 * * * * ~/bin/cloudwatch/bin/mysql-thread.sh
crontab に5分毎に実行するように設定します。
Nginx の接続数をチェックするカスタムメトリクスです。 仕組み的には Nginx status を取得してそこから接続数を取得します。
- nginx_status_url
Nginx status の URL
Nginx で http_stub_status が有効なことを確認して下さい。
$ /usr/sbin/nginx -V
で表示される configure arguments に --with-http_stub_status_module が含まれていることを確認して下さい。
nginx.conf で status の設定 下記の例だと http://localhost/status でアクセスできるようになります。
location /status {
stub_status on;
access_log off;
auth_basic off;
allow 127.0.0.1;
deny all;
break;
}
$ vi ./bin/nginx-active_connection.sh
nginx_status_url などを設定します。
$ chmod 700 ./bin/nginx-active_connection.sh
他のユーザーから 参照されないように読み込み権限を変更します。
$ ./bin/nginx-active_status.sh
AWS Management Console の CloudWatch のところで Custom Metrics の Nginx にデータが登録されているか確認して下さい。
$ crontab -e
> */5 * * * * ~/bin/cloudwatch/bin/nginx-active_connection.sh
crontab に5分毎に実行するように設定します。
Issue: GitHub
コード | 名前 |
---|---|
ap-northeast-1 | アジアパシフィック(東京)リージョン |
ap-southeast-1 | アジアパシフィック(シンガポール)リージョン |
ap-southeast-2 | アジアパシフィック(シドニー)リージョン |
eu-west-1 | 欧州(アイルランド)リージョン |
sa-east-1 | 南米(サンパウロ)リージョン |
us-east-1 | 米国東部(バージニア北部)リージョン |
us-west-1 | 米国西部(北カリフォルニア)リージョン |
us-west-2 | 米国西部(オレゴン)リージョン |