でらてーげー(^_^)/

沖縄病名古屋人の趣味的日常

(5)ORACLEプラグインを設定する②

前の記事でORACLEプラグイン単体の動作が確認できたのでエージェントに組み込んであげます。
pandora_agent.conf にこんな感じで追加します。

#Free % space on all tables (XML report, plugin mode)
module_plugin C:\cygwin64\bin\bash.exe "/cygdrive/c/Program Files/pandora_agent/util/pandora_oracle.sh" -u user -p passwd -a -i sid -S

#Check status (ONLINE or not) of all tablespaces (XML report)
module_plugin C:\cygwin64\bin\bash.exe "/cygdrive/c/Program Files/pandora_agent/util/pandora_oracle.sh" -u user -p passwd -a -i sid -T

#Show timestamp/Error code (ORA-xxx) (string)
module_begin
module_name ORACLE_ERR_CODE
module_type generic_data_string
module_exec C:\cygwin64\bin\bash.exe "/cygdrive/c/Program Files/pandora_agent/util/pandora_oracle.sh" -u user -p passwd -a -i sid -D
module_end

この最後の項目は”ORA-”が含まれる文字列を受け取ると警告状態にするようにセットしておきます
(5)ORACLEプラグインを設定する②

(2015/2/8追記)
単体では動作するのにエージェントに組み込むとうまくいかない場合には、PandoraAgentサービスのユーザーをSYSTEMから他の管理者ユーザーに変更しよう。CYGWINやPandoraエージェントインストール先によってCYGWINの/tmpへの読み書きができたりできなかったりするようだ。
足らない監視項目はここの記事あたりを参考にしてSQL文を書いて、 -x か -X でpandora_oracle.sh に渡してあげよう。

例えばshared_pool_sizeの測定については以下のようになる
----------------------------------------------------------------------------
#最低限必要な shared_pool_sizeの測定
module_begin
module_name ORACLE_Request_SharedPoolSize
module_type generic_data
module_exec C:\cygwin64\bin\bash.exe "/cygdrive/c/Program Files/pandora_agent/util/pandora_oracle.sh" -u user -p passwd -a -i sid -x "SELECT( a.mem + b.mem + c.mem ) * 1.3 shared_pool_size FROM( SELECT sum( sharable_mem ) mem FROM v$db_object_cache ) a ,( SELECT sum( sharable_mem ) mem FROM v$sqlarea ) b ,( SELECT sum( 250 * users_opening ) mem FROM v$sqlarea ) c;"
module_end
----------------------------------------------------------------------------

データベースバッファキャッシュのヒット率はここの記事の計算式を使って以下のようになる
----------------------------------------------------------------------------
#データベースバッファキャッシュのヒット率
module_begin
module_name ORACLE_HitRatio
module_type generic_data
module_exec C:\cygwin64\bin\bash.exe "/cygdrive/c/Program Files/pandora_agent/util/pandora_oracle.sh" -u user -p passwd -a -i sid -x "SELECT 1 - ((SUM(DECODE(name,'physical reads cache',value,0))) / (SUM(DECODE(name,'consistent gets from cache',value,0)) + SUM(DECODE(name,'db block gets from cache',value,0)))) FROM v$sysstat;"
module_end
----------------------------------------------------------------------------
ヒット率で注意が必要なのはPandoraFMS側では1より小さい数値を受け取っても無視するようなので
オプションで倍率に100を設定するようにしよう。

まあ、コマンドスナップショット機能とか言って改行コードを含んだ複数行に渡るテキストをそのまま取り込む機能があるようなので、ora_perf_report.sh の実行結果を丸投げしてもいいのですが、あまり大量のレポートがあっても困るので指定時間モニタリングの設定と組み合わせてあげるといいかな。

(2015/2/8追記)
< pandora_oracle.sh の -S オプションを改造する>
そのままだと全テーブルスペースの使用率を%で取得するのだが、AutoExtendとか指定していたりするとファイルサイズそのものを欲しくなるのでスクリプトの236行目以降のDo文の中身を以下のように変更する。
---------------------------------------------------------------------------
TABLESPACE=`echo $a | awk '{ print $1 }'`
TABLESPACE_TSIZE=`echo $a | awk '{ print $5 }'`
TABLESPACE_USIZE=`echo $a | awk '{ print $6 }'`
TABLESPACE_SIZE=`echo $a | awk '{ print $7 }'`

IS_VALID=`echo $TABLESPACE_SIZE | grep "[0-9\.]" | wc -l | awk '{ print $1 }'`

if [ "$IS_VALID" = "1" ]
then
echo "";
echo "OraTablespace_Total_$TABLESPACE"
echo "generic_data"
echo "$TABLESPACE_TSIZE"
echo "Total space (MB) on Tablespace $TABLESPACE";
echo "
";
echo "";
echo "OraTablespace_FreeMB_$TABLESPACE"
echo "generic_data"
echo "$TABLESPACE_USIZE"
echo "Free space (MB) on Tablespace $TABLESPACE";
echo "
";
echo "";
echo "OraTablespace_Free_$TABLESPACE"
echo "generic_data"
echo "$TABLESPACE_SIZE"
echo "Free space (%) on Tablespace $TABLESPACE";
echo "
";
fi
--------------------------------------------------------------------------
要は捨てていたテキストの中から必要なものを拾ってXMLに吐き出すだけ。



同じカテゴリー(Pandora FMS)の記事

 
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。