現在位置: ホーム / みらくるブログ / ".*" は不要です!【MIRACLE ZBX 1.8, 2.0, 2.2】

".*" は不要です!【MIRACLE ZBX 1.8, 2.0, 2.2】

正規表現に関する設定のほとんどで ".*" は意味をなしていません!

正規表現のTipsの続きです

以前の記事で、正規表現関連の設定で誤りが多いと指摘しました。

今回はその話の続きです。

 

".*" が意味をなしていない

logrt[]のキー設定において多いです。

POSIX正規表現において、"." は「任意の一文字」、"*" は「直前の記述の0回以上の繰り返し」となります。ですので、".*" は「任意の一文字の0回以上の繰り返し」となります。なので、".*" は何にでもマッチします。

 

試しに以下を試してください。

$ echo (任意の文字列) | egrep ".*"
(任意の文字列)
$ echo $?
0
$ echo | egrep ".*"

$ echo $?
0

 

なので、logrt[]キーにて、ファイルパートを示す部分に、"^zabbix_agentd.log.*" では不要となります。同様に、トリガー関数を使用して regexp(.*)=1 とする部分も不要です。

 

ちなみに、設定したキーが想定どおりに動作するかは、下記のように確認することができます。

$ cd /var/log/zabbix
$ ls | egrep "^zabbix_agentd.log"

 

ただし、想定外のファイルが出力されていないとテストの意味がありませんが…

 

".*" を使うテクニック

次に、".*" を上手く使うテクニックを紹介します。

ZabbixのWeb UIから正規表現を入力するときに、前後のどちらか、もしくは両方に" "(空白)を入力してみましょう。

OKボタンを押して成功すると思いますが、確認すると空白が削除されていると思います。これは入力時に前後の空白を自動的に削除するためです。

これを回避するための手段として、".* foo" のようにすることがあります。また、"[ ]foo"のような入力としても同様の効果が得られます。