複数の条件を満たすトリガーについて
いつもお世話になっております。
Oracleデータベースの監視を実装しています。
エラーコードの一つで、以下の要件に合うような
トリガーを作成しておりますが、上手くいきません。
お手数ではございますが、ご教示いただけないでしょうか。
【環境】
監視サーバ :Zabbix2.0.9
監視クライアント :Solaris10
監視対象データベース : Oracle 10gR2,または11gR2
その他:AllowRoot=1 zabbixエージェントはrootで起動
【監視要件】
ORA-600とORA-00600の検知
アイテム:zabbixエージェント(アクティブ)
キー : log[/export/home/alert.log,ORA-600|ORA-00600,,,]
監視間隔:5分
【除外・その他条件】(トリガー条件式)
ORA-600、ORA-00600のエラーメッセージには、後ろに「[XXX]」といった引数があり、
その引数によって初動対応を変えています。
したがって、引数を条件に含めたトリガーを作成することにいたしました。
なお、「継続してイベントを生成」はチェックなしとしています。
条件① 下記の引数は、無条件で検知する
[3111]
[4400]
[12700]
条件② 下記の引数は無条件で除外
[729]
[1115]
[6033]
条件③ 下記の引数については、単発での出力は無視、2回以上連続で出力された場合に検知
[733]
[5249]
[5250]
[12209]
[15201]
[17182]
条件④ 上記以外の引数、単発は無視、2回以上連続で出力された場合に検知
【テスト実績】
(1)単純に条件①のみを設定
トリガー条件式
{HOST:log[/DC/log/ORA600_test.txt,ORA-600|ORA-00600,,,].regexp(3111|4440|12700)}=1
{HOST:log[/DC/log/ORA600_test.txt,ORA-600|ORA-00600,,,].nodata(60)}=0
alert.log
ORA-600 [12700]
ORA-600 [4440]
ORA-600 [3111]
<結果>
ヒストリ上は3行すべて取得。
検知はするものの、すべて2件づつ、計6件のイベントが発生。
→ それぞれ、1件のイベントとしたい。
(2)条件①+② 検知と除外を設定
トリガー条件式
({HOST:log[/DC/log/ORA600_test.txt,ORA-600|ORA-00600,,,].regexp(3111|4440|12700)}=1 |
{HOST:log[/DC/log/ORA600_test.txt,ORA-600|ORA-00600,,,].regexp(729|1115|6033|12333|17069)}=0) &
{HOST:log[/DC/log/ORA600_test.txt,ORA-600|ORA-00600,,,].nodata(60)}=0
alert.log
ORA-600 [729]
ORA-600 [4440]
ORA-600 [1115]
ORA-600 [6033]
ORA-600 [12333]
<結果>
ヒストリ上は5行すべて取得できていますが、一部、意図しない動きをしています。
検知しないORA-600 [729] ・・除外OK
2件検知 ORA-600 [4440] ・・OK(OKだが、複数件検知)
1件検知 ORA-600 [1115] ・・NG(除外されるはず)
検知しないORA-600 [6033] ・・除外OK
検知しないORA-600 [12333] ・除外OK
現状、ここまでで、先に進めておりません。
よろしくお願いいたします。
以上
KAZ - 投稿数: 1085
omebbix_kenjiさん
フォーラムに書き込み時ですが、HTMLエスケープ必要な文字あります。
エスケープしないと表示がおかしくなります。(質問の内容が正しく伝わらなくなってしまいます。)
&はエスケープが必要な文字です。
上記質問で&を使っている部分は修正しておきました。
omebbix_kenji - 投稿数: 16
KAZ様
どうもありがとうございます。以後、気を付けます。
お手数おかけいたしました。
以上