2015年2月16日月曜日

MySQLのInnoDB Row Operationsを監視するNagiosプラグイン

photophilde

https://github.com/takeshiyako2/nagios-check_mysql_innodb_row_operations

MySQLのInnoDB Row Operationsを監視するNagiosプラグインを書きました。
SHOW /*!50000 ENGINE*/ INNODB STATUSの結果を保存しておき、差分を経過時間で除算してRow Operations/secを算出します。
この数値にしきい値をもうけてアラートをすることができます。


以下、設定方法です。
あらかじめ、Rubyを用意しておいてください。

プラグインをgit cloneして、mysql2ライブラリをインストール。
$ git clone git@github.com:takeshiyako2/nagios-check_mysql_innodb_row_operations.git
$ cd nagios-check_mysql_innodb_row_operations
$ bundle

スクリプトの動作チェック。
-o オプションを付けることによって、InnoDB Row Operationsの inserts, updates, deletes, reads からチェックしたい項目選びます。 デフォルトは、reads です。
$ ruby check_mysql_innodb_row_operations.rb -H localhost -u username -p xxxx -o reads -w 100000 -c 200000
OK - Current Status is saved. values:{:inserts=>"10000000", :updates=>"10000000", :deletes=>"10000000", :reads=>"10000000", :unixtime=>1424072459}

$ ruby check_mysql_innodb_row_operations.rb -H localhost -u username -p xxxx -o reads -w 100000 -c 200000
OK - reads 12345 Operations per second|OPS=12345

テンポラリファイルを削除しておく。
$ rm /tmp/check_mysql_innodb_row_operations*
あとは、Nagios/Nrpeに上記のような設定を仕込んでおけばOKです。 Enjoy!