ksaitoの日記

日々試したことの覚え書き

NagiosでOracleにQueryを発行した結果を監視をする

データベースに指定した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
$