データベースに指定したQueryを発行した結果を監視する方法は、あまり汎用的な方法がないようです。
NagiosExchangeで見つけたcheck_sql_queryを試してみました。
Oracle専用なのでOracleがセットアップされている環境で利用できます。
接続情報が書かれたファイルとQueryが書かれたファイルの2つを引数に取りQueryが発行できたかを通知します。
セットアップ
kshで書かれているのでkshをセットアップします。
$ sudo apt-get install ksh
ダウンロードとORACLE_HOMEの設定
check_sql_queryからcheck_sql_query.txtを/usr/lib/nagios/pluginsにダウンロードしてファイルの中に定義されているORACLE_HOMEを適切に設定します。
$ grep "ORACLE_HOME=" check_sql_query export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server $
接続情報の準備
データベースユーザ、パスワード、SIDを指定したファイルを準備します。
$ cat access USERNAME system PASSWORD pass CONNECTION_STRING XE $
発行するQueryの準備
Queryもファイルに準備します。
$ cat query SQL_QUERY select count(*) from dual $
動作確認
下記のように実行結果とラップタイムが通知されます。
$ ./check_sql_query access query [OK] successful sql query execution | elapsedTime=0secs $