正規表現設定について(1.8.2)

お世話になっています。

RHEL5.4
zabbix1.8.2を使用しています。

ログ監視の正規表現について2点質問させてください。

<監視対象ログ>
↓のログを監視しておりログは日次でローテートします。
hoge.yyyymmdd

<トリガー設定>
{HOSTNAME:logrt[/opt/hoge/log/hoge.yyyymmdd,,,100].count(3600,error)}>0

【質問】
?.count(3600,error)であれば監視できますが、<スペース>E<スペース>という文字列も
 監視したい場合どのように設定すればいいでしょうか。
 ちなみに、全く関係のないEXECなどログの中で多数出力されます。countの中で正規表現が
 使えないのでしょうか。

?1.8から独自に正規表現を設定できるようですが、
 どの正規表現を使っても引っかからず困っています。
ExecのEではなく、<スペース>E<スペース>のEのみを引っ掛けるためには
 どのような設定にすべきでしょうか。

(例)
201006213404 E TestExec.sh テストシェル実行 失敗

ちなみに以下のような正規表現を試しましたが駄目でした。
※テストボタンを押下しても結果が偽となります。

^[0-9].+ E
^[0-9].+ /s E /s

ちなみにテストで真となったのはただEと入力したときのみです。
Eのみ登録するとExecも引っかかります。

どなたかお分かりの方がいらっしゃったらお教えいただけないでしょうか。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

実際に設定して確認していませんが、正規表現のパターンとして、
<code>
[ ]E[ ]
</code>
と指定してみてはいかがでしょうか?

ユーザー zabieru の写真

返信ありがとうございます!

[] E []
[]E[]
[ ] E [ ]

全て試してみましたが駄目でした。
ほかにアイデアがありましたらお教えください。

ユーザー KAZ の写真

zabieruさん

「201006213404 E TestExec.sh テストシェル実行 失敗」を引っかければ良いなら、str( E )で引っかかりますが…A(^^;

↓これで動きましたよ。
<code>
Expression:{[i]ホスト名[/i]:log[[i]ファイルパス[/i]].str( E )}=1
</code>

ユーザー zabieru の写真

返信ありがとうございます。

str( E )で取得すると、同じログファイルに正常なログ
が出力されると、トリガーのステータスが
PROBLEMとならずに正常に戻ってしまいます。

#1度エラーとなれば一定時間はトリガーのステータスを
PROBLEMとしておきたいです。

str( E )でこのような設定ができますでしょうか?

これまで私が設定してきたことを時系列に書くと

?str( E )では正常のログがはかれた場合トリガーのステータスが正常になる

?1時間前までさかのぼりエラー(E)を検知していたら継続してトリガーのステータスをPROBLE Mと表示させておくようにしたい。

【トリガーの設定】
{HOSTNAME:logrt[/opt/hoge/log/hoge.yyyymmdd,,,100].count(3600,[ ] E [ ])}>0

ですが、count関数のなかで[ ] E [ ]では引っかからず。。。
他の正規表現も引っかからず。。。

?それで、アイテムの設定を見直そうと思い、
 以下のようにアイテム、トリガーを設定。

【アイテムの設定】
{HOSTNAME:logrt[/opt/hoge/log/hoge.yyyymmdd,@登録した正規表現,,100]

【トリガーの設定】
{HOSTNAME:logrt[/opt/hoge/log/hoge.yyyymmdd,,,100].count(3600)}>0

ですが、正規表現が登録できず。。。困りました。

なにかアイデアがあればお教えいただけないでしょうか。

ユーザー KAZ の写真

zabieruさん

str( E )で取得すると、同じログファイルに正常なログ
が出力されると、トリガーのステータスが
PROBLEMとならずに正常に戻ってしまいます。

戻りますね。A(^^;

#1度エラーとなれば一定時間はトリガーのステータスを
PROBLEMとしておきたいです。

nodata()を使ってみて下さい。

以下、未検証です。

1)" E "しかZabbixのデータに取り込まない。
<code>
logrt[/opt/hoge/log/hoge.yyyymmdd, E ,,100]
</code>

2)一定時間(1時間内)に" E "が出ていたらエラーにする
<code>
logrt[/opt/hoge/log/hoge.yyyymmdd, E ,,100].nodata(3600)#1
</code>

ユーザー TNK の写真

str()もregexp()も第二引数で秒数または個数を指定できるようですので、
<code>
{HOSTNAME:logrt[/opt/hoge/log/hoge.yyyymmdd,,,100].str( E ,3600)} = 1
</code>
とか指定してみては如何でしょうか?
http://www.zabbix.com/documentation/1.8/manual/config/triggers#trigger_functions

ユーザー TNK の写真

str()でできたんですね。orz

regexp()を使う場合は、以下のような感じでできると思います。
<code>
{ホスト名:log[ログファイル名].regexp("[[:space:]]E[[:space:]]")}=1
</code>