https://github.com/takeshiyako2/check-mysql-all/blob/master/check_handlersocket
HandlerSocket Plugin for MySQLへの接続を監視するNagiosプラグインです。
HandlerSocketへの読み込みコネクションチェック、書き込みコネクションチェック、検索チェックをサポートしています。
作者は、PerconaのRyan Loweさんです。
Ryan Lowe, Author at MySQL Performance Blog http://www.percona.com/blog/author/ryanalowe/
以下、セットアップ方法です。
環境は、Amazon Linux AMI 2014.09.2 (HVM) - ami-18869819です。
Perlのperl-Net-HandlerSocketモジュールをセットアップ。
# yum -y install cmake libtool libtool-ltdl libtool-ltdl-devel libedit-devel perl perl-devel git gcc-c++ perl-Time-HiRes perl-Test-Simple nagios-plugins-all # git clone git://github.com/DeNA/HandlerSocket-Plugin-for-MySQL.git # cd HandlerSocket-Plugin-for-MySQL # ./autogen.sh # ./configure --disable-handlersocket-server # make # make install # cd perl-Net-HandlerSocket # perl Makefile.PL # make & make test # make install
check_handlersocketプラグインをダウンロード。
# curl -O https://raw.githubusercontent.com/garrinmf/check-mysql-all/master/check_handlersocket $ perl check_handlersocket -h
ヘルプを見ると、タイムアウトは ”デフォルトで10秒” と書いてありますが、これは間違いで0.01秒です。
コードを見ると ualarm($OPTIONS{'timeout'}); となっているので、タイムアウトのオプションには、マイクロ秒を指定してあげます。
つまり、1秒 = 1000000、10秒 = 10000000 です。
以下、プラグインの使い方です。
読み込みコネクションと書き込みコネクションをチェック。
$ perl check_handlersocket -K read_connect -H localhost --timeout=1000000 OK: HandlerSocket is accepting read connections $ perl check_handlersocket -K write_connect -H localhost --timeout=1000000 OK: HandlerSocket is accepting write connections
検索チェック。
テスト用テーブルを作成。 $ mysql -u root mysql> USE test; mysql> CREATE TABLE sample (id INT PRIMARY KEY, val INT); mysql> INSERT INTO sample (id, val) VALUES (10, 100); mysql> SELECT * FROM sample; sampleテーブルから id = 10 を検索。 $ perl check_handlersocket -K read_exec -H localhost --database=test --table=sample --index='PRIMARY' --columns=val --index-value=10 --timeout=1000000 OK: Read
あとは、プラグインをNagiosなどに組み込めばOKです。
Enjoy!