Skip to content

torut/cloudwatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cloudwatch

自作カスタムメトリクス集

注意: スクリプト中のパスは 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 も含めて削除してください。

利用方法

$ 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 status の設定

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 米国西部(オレゴン)リージョン

About

自作カスタムメトリクス集

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages