イベントログで改行を挟む文字列の抑止
いつもお世話になっております。
タイトルの件についてご教授頂きたく宜しくお願い致します。
Ver:Zabbix 2.2.8
OS:CentOS6.2
以下のアイテムキーでイベントログを監視しております。
■アイテムキー
eventlog[Application,,"Error"]
上記のアイテムキーで取得した値から、
"TEST かつ 通報不要"が含まれているものを除外したいと考えております。
実際の出力としては以下のように、
TESTと通報不要が前後逆で出てくるパターンもあります。
パターン1
--------------------------------------
TEST ~~~~
(省略。2行~10行が出力)
~~~~ 通報不要です
--------------------------------------
パターン2
--------------------------------------
~~~~ 通報不要です
(省略。2行~10行が出力)
TEST ~~~~
--------------------------------------
上記のため、カスタム正規表現に以下を作成し、
トリガーにセットしました。
■カスタム正規表現 ZYOGAI
1 » TEST.*通報不要 [結果が偽]
2 » 通報不要.*TEST [結果が偽]
■トリガーキー
{{HOS:eventlog[Application,,"Error"].regexp(@ZYOGAI)}=1
これで除外出来たと思ったのですがうまく除外できず、
確認したところ改行が含まれている場合は効かないようです。
→似たような記事を見つけましたが、
こちらは行数が決まっているもののようです。
http://www.zabbix.jp/node/2395
カスタム正規表現を使用せずに
トリガーキーへ以下のように直接除外キーワードを指定をしてみましたがやはり抑止出来ない状況です。
何か良い方法はありますでしょうか。
{{HOS:eventlog[Application,,"Error"].regexp(TEST)}=0 &
{{HOS:eventlog[Application,,"Error"].regexp(通報不要)}=0
kaeru - 投稿数: 263
申し訳ありません。
>カスタム正規表現を使用せずに
> トリガーキーへ以下のように直接除外キーワードを指定をしてみましたがやはり抑止出来ない状況です。
> 何か良い方法はありますでしょうか。
>{{HOS:eventlog[Application,,"Error"].regexp(TEST)}=0 &
>{{HOS:eventlog[Application,,"Error"].regexp(通報不要)}=0
再度確認を行ったところ、正常に動作致しました。
※別プログラムの高負荷によりメモリが不正な状態になっていたため、
Zabbixを再起動したところ正常に動作致しました。
質問の趣旨とずれてしまいますが、
上記の経緯より、正規表現で、".*"を使用しても改行された行までは判定しない認識ですが、
相違ないでしょうか。
heya - 投稿数: 319
Zabbix2.2 で使われる正規表現は ERE です。そして、ERE では、「.」は改行以外の任意の文字にマッチするので、改行にはマッチしないのです。それなら「.」の代わりに「(.|改行)」のように書けばいいような気がするのですが、
http://www.zabbix.jp/node/2395
に書いたように、それはちょっと難しい。
#\n と書くと \ という文字と n という文字が続いた文字列とみなされる。
#ログに含まれる改行は(たぶん)CRLFで、これは一般的な書き方でいうところの \r\n 。
#入力画面で改行を入れると CRLF になりそうだが、正規表現の入力欄では改行を入力できない。
やっぱり改行を含むパターンを作るのはあきらめた方がいいのかなあ・・・。
すみません、この下に盛大な勘違いを書いていたのですが、混乱の元になりそうなので、削除しました。
そして kaeru さんの自己レスがあったので追記。
>{{HOS:eventlog[Application,,"Error"].regexp(TEST)}=0 &
>{{HOS:eventlog[Application,,"Error"].regexp(通報不要)}=0
>再度確認を行ったところ、正常に動作致しました。
よく見ると、これで合ってますね。
heya - 投稿数: 319
一つ思いついたので追記。
試していませんが、ERE では [] 内での [:space:] などが使えるはずなので、
TEST(.|[[:space:]])通報不要
のようにすれば
TEST【改行を含む任意の文字列】通報不要
にマッチさせられるかもしれません。
kaeru - 投稿数: 263
>>heya様
ご回答、フォローありがとうございます。
>ERE では [] 内での [:space:]
承知致しました。
時間の隙間でテストしてみたいと思います。
重ねてご回答ありがとうございました。