正規表現(数値1桁)を使用した抑止エラー(Windows Event Log)の設定方法について
いつもお世話になっております。
表題の件、ご教授頂きたくお願い致します。
環境情報 ----------------
Zabbix version:3.0.4
CentOS:7.2
----------------------------
抑止エラーの設定がしたく"正規表現と条件式"で対応しようと考えております。
※正規表現を使用しない条件の作成だと255文字の制限にかかる為
以下例のような正規表現(T1)で"数値1桁"を入れたいと考えておりますが
正規表現のテストで数値:11以降に関しても、結果が該当(真)してしまいます。
【例】正規表現 ---------
名前 :T1
条件式 :1/2/3/4/5/6/7/8/9/10
条件h式の形式 :いずれかの文字列が含まれる
区切り文字 :/
名前 :T2
条件式 :aaa/bbb/ccc/ddd/eee/fff
条件h式の形式 :いずれかの文字列が含まれる
区切り文字 :/
-------------------------
【例】条件式 -----------
{EL:eventlog[System].logseverity(0)}=4 and
{EL:eventlog[System].logeventid(@T1)}=0 and
{EL:eventlog[System].regexp(@T2)}=0 and
{EL:eventlog[System].nodata(30)}<>1
-------------------------
正規表現で"数値1桁"を入れる方法または別途対応方法などございましたら
教えていただけると幸いです。
何卒、よろしくお願い致します。
TNK - 投稿数: 4731
以下の正規表現ではいかがでしょうか?
条件式の形式: 結果が真
条件式: ^[0-9]$
TORA_cs - 投稿数: 16
TNK様
目的の正規表現が出来ました。
いつもありがとうございます。
TORA_cs - 投稿数: 16
追加のご質問、申し訳ございません。
正規表現(数値1桁)を使用した条件式に関して、255文字制限に到達してしまいます。
下記に例を記載させていただきます。
実施したい事としては、正規表現に記載した項目(数字、文字)は抑止エラーとするです。
※下記例の正規表現(C1、C2、C3)に関しては実際は相当量となっております
条件式の書き方で工夫すべき点などございましたら
教えていただけると幸いです。
■条件式 --------------------------------------------------
{EL:eventlog[System].logseverity(0)}=4 and
{EL:eventlog[System].logeventid(@N1)}=0 and
{EL:eventlog[System].logeventid(@N2)}=0 and
{EL:eventlog[System].logeventid(@N3)}=0 and
{EL:eventlog[System].logeventid(@N4)}=0 and
{EL:eventlog[System].logsource(@C1)}=0 and
{EL:eventlog[System].logsource(@C2)}=0 and
{EL:eventlog[System].logsource(@C3)}=0 and
{EL:eventlog[System].nodata(30)}<>1
■正規表現 ------------------------------------------------
名前: N1
条件式にの形式: 結果が真
条件式: ^[1]$
名前: N2
条件式にの形式: 結果が真
条件式: ^[7]$
名前: N3
条件式にの形式: 結果が真
条件式: ^[9]$
名前: N4
条件式にの形式: いずれかの文字列が含まれる
条件式: 11/18/230/640/902
名前: C1
条件式にの形式: いずれかの文字列が含まれる
条件式: aaa/bbb/ccc/ddd
名前: C2
条件式にの形式: いずれかの文字列が含まれる
条件式: eee/fff/ggg/hhh
名前: C3
条件式にの形式: いずれかの文字列が含まれる
条件式: iii/jjj/kkk/lll
--------------------------------------------------------------
以上、何卒よろしくお願い致します。
TNK - 投稿数: 4731
N1~N4は、以下のようにまとめられるかもしれません。
条件式の形式: 結果が真
条件式: ^1$|^7$|^9$|11|18|230|640|902
TORA_cs - 投稿数: 16
TNK様
お教えいただきました内容で正規表現のテストを実施したところ出来ました。
いつもありがとうございます。
TORA_cs - 投稿数: 16
TNK様
再度のご返信申し訳ございません。
色々な値を入力しテストを行っているのですが、【110】や【180】などの値でも
結果が真となってしまいます。
>条件式の形式: 結果が真
>条件式: ^1$|^7$|^9$|11|18|230|640|902
TNK - 投稿数: 4731
もともとご提示頂いた条件が、
ですので、「110」には「11」が含まれますし、「180」には「18」が
含まれるので条件を満たしています。
「11」とか「18」という数値だけで前後に何も文字がつかないので
あれば、その部分の条件をそれぞれ「^11$」「^18$」にすれば良
いと思います。
他の数値も同様であるならば、すべての文字列パターンに同様
の指定を行うようにしてください。
例: ^1$|^7$|^9$|^11$|^18$|^230$|^640$|^902$
TORA_cs - 投稿数: 16
TNK様
詳細なご説明ありがとうございます。
正規表現での文字列パターンの指定について理解不足でした。
またいただきました情報で目的がクリアできそうです。
※テストも実施済みです
いつもありがとうございます。
heya - 投稿数: 319
>例: ^1$|^7$|^9$|^11$|^18$|^230$|^640$|^902$
この場合、 ^(1|7|9|11|18|230|640|902)$ とした方がシンプルになりますね。
TORA_cs - 投稿数: 16
heya様
ご返信ありがとうございます。
かなり文字数が削減されシンプルになりました。
ありがとうございます。
TORA_cs - 投稿数: 16
何卒、よろしくお願い致します。