2012年10月15日月曜日

information_schema.GLOBAL_STATUSを収集するスクリプト

作ってみた。

https://gist.github.com/3910575


mysql_status_collector.pl の中身をちょこちょこいじる。
1) $sMySQL .. mysqlクライアントをフルパスで指定
2) $sRrdTool .. rrdtoolをフルパスで指定
3) $sWorkDir .. 色々ファイルを吐き出すディレクトリを指定
4) $sUser .. MySQLに接続できるユーザーを指定、SHOW GLOBAL STATUS叩くだけなので何でもOK。
5) $sPass .. ↑のアカウントのパスワード
6) $sInterval .. information_schema.GLOBAL_STATUSを記録する間隔


設定したら↓で起動。
mysqlクライアントがインストールされていないとダメ。
勝手にバックグラウンドに回る。

shell> perl mysql_status_collector.pl collect

止める時は、$sPidFileのファイルを消す。
PIDファイルが無くなると、次のポーリング間隔になった時にそれを見てexitする仕組み。
killしても構わないけれども。
PIDファイルと言いながら中身はからっぽでPIDは書いてないorz

shell> rm -i /tmp/mywork/mysql_status.pid


ファイルを収集した後は、rrdtoolが入っているマシンの同じディレクトリに持っていって

shell> perl mysql_status_collector.pl total

これで勝手にrrdファイルを作ってデータを突っ込んで、グラフを作る。


ログを収集するマシンにはmysqlクライアントとperlだけ入ってればOK、
集計するマシンにはrrdtoolとperlだけ入ってればOK。

取り敢えずなるべくそれだけで動く何かを目指してみた。

0 件のコメント :

コメントを投稿