2014年7月30日水曜日

MySQLのSQLでNagiosに値を戻すスクリプト書いた

ぱっと見で見当たらなかったので書いた。

SQLで取得した値を評価して、Nagiosさんに戻り値を返すスクリプト。

https://github.com/yoku0825/my_script/blob/master/nagios_for_mysql.pl

こんな風に使う。


$ ./nagios_for_mysql.pl --user root --password xxxx --host 127.0.0.1 --port 64056 --sql "SELECT COUNT(*) FROM information_schema.processlist WHERE state IN ('update', 'updating') AND time > 10" --warning 10 --critical 20
$ echo $?
3

走行中(というかgrn_io_lock待ちだ)のスレッドの数を数えてみたり。


$ perl ./nagios_for_mysql.pl --user root --host 127.0.0.1 --port 64056 --sql "SELECT table_rows FROM information_schema.tables WHERE table_schema = 'mysql' AND table_name = 'user'"
$ echo $?
0

テーブルに格納されている件数を確認してみたり(i_sだから正確じゃないのはいいとして)、各パーティションに入ってる件数もi_sから引けるので色々どうとでもなるし、
(このへんのクエリーと組み合わせる感じ http://yoku0825.blogspot.jp/2014/03/informationschematips.html )


$ perl ./nagios_for_mysql.pl --user root --host 127.0.0.1 --port 64056 --sql "SELECT variable_value FROM information_schema.global_status WHERE variable_name = 'sort_merge_passes'" --warning 2 --critical 10
$ echo $?
0

累計だけど、ステータス変数の監視もできるっちゃできる。

絶対どこかにあるんだけど、探すより書いちゃう方が早かった。。


【2014/07/30 17:01】
早速教えていただいた :)



ありがとうございます(*-人-)

0 件のコメント :

コメントを投稿