1. Kiwi Syslog Server
8.3 Rules / Filters / Actions (ルール/フィルター/アクション)
8.3.2 フィルター
ここでは、使用できるフィルターを紹介します。
8.3.2.1 Simple (シンプル) フィルター
概要
単純な 1 行のフィルターです。メッセージに含まれている 1 つまたは複数のテキストや IP アド レスのマッチングに有効です。
Feild リストで、IP address、Hostname、Messate text のいずれかを選択した場合に使用でき ます。
文字列はダブルクォーテーション (””) で囲んで入力します。複数の検索文字列をダブルク ォーテーション (””) で囲んで指定すると、文字列 A または文字列 B のどちらかに一致する メッセージの検索が可能です。
Include: “link up” “link down”
上記のように指定すると link up もしくは link down という 2 つのテキストに対するマ ッチングが行われます。
詳細
Simple(シンプル)フィルターでは検索対象の文字列を 1 行で指定します。複数の文字列を指 定する場合、ダブルクォーテーション (””) で区切った各検索文字列を 1 行に並べて指定し ます。フィルターは指定された文字のいずれか(OR 条件)のマッチングを行います。
[C]: 大文字小文字を区別するかを指定します。オンの場合、大文字小文字を区別します。
[S]: 部分一致か完全一致検索かを指定します。オンの場合、部分一致検索を行います。
例:
上図のようにフィルターを指定した場合、大文字/小文字を問わずPOP3、SMTP、MAPIという 文字列のいずれかがメッセージテキストに含まれていればフィルターは真となります。
注記: [S] ボタンが押下げられている場合、部分一致検索を行います。テキストのどこかに 検索文字列が含まれているものすべてが対象となります。
上図のようにフィルターを指定した場合は、メッセージテキストがフィルター文字列に完全に 一致していれば、フィルター結果が真となります。つまり、The link is down というメッセ ージテキストであれば、フィルターは真となります。
注記:
[C] ボタンが押下げられている場合、大文字小文字も完全に一致している必要が あります。
[S] ボタンが押下げられていない場合、フィルター条件文字列とメッセージテキスト は一文字ごとに完全に一致している必要があります。
8.3.2.2 Complex (複合) フィルター
概要
複数行にわたる複雑なフィルターです。メッセージ内に指定したテキストや IP アドレスが含ま れているか含まれていないかを複雑に組み合わせて検索したいときに使用します。複数の検 索文字列をそれぞれダブルクォーテーション(””)で囲んで指定し、ブール演算処理を行いま す。
AND、OR、NOT-OR、NOT-AND 演算と含まない文字列の指定(Exclude)が可能です。
Feild リストで、IP address、Hostname、Messate text のいずれかを選択した場合に使用でき ます。
詳細
複合フィルターでは複数の検索文字列を指定できます。検索文字列は[(A または B) およ び (C または D)]しかし[(E または F)および(G または H)]は除外するというように互いに組 み合わせることで複雑なマッチング処理を実行できます。
各検索文字列はダブルクォーテーション(””)で囲み、1 行に並べて指定します。フィルターは 指定された文字のいずれか(OR 条件)のマッチングを行います。
[C]: 大文字小文字を区別するかを指定します。オンの場合、大文字小文字を区別します。
[S]: 部分一致か完全一致検索かを指定します。オンの場合、部分一致検索を行います。
ブランクのフィールドは無視されます。
最初の 2 つのフィールドがブランクで、3,4 番目でテキストを指定すると指定した文字列を含ま ないテキストを検索します。一致するテキストが見つからなかった場合に結果は真となりま す。
例 1:
注記: [S] ボタンが押下げられている場合、部分一致検索を行います。テキストのどこかに 検索文字列が含まれていれば、フィルター結果が真となります。
上記のようにフィルターを指定した場合、大文字小文字を問わず fox、quick、helloのい
ずれかの文字列を含み、さらに over あるいは the を含むが hello および brown を 含まないメッセージテキストがあれば、フィルター結果が真となります。
例 2:
上図は、指定した文字列を含まないメッセージをフィルターする例です。
chickenあるいはduckを含まないメッセージテキストがあれば、結果が真となります。最初 の 2 つのフィールドがブランクであることに注意してください。これらのフィールドはフィルター 処理で無視されます。
注記::
And フィールドは指定する必要がなければブランクのままで構いません。
And フィールドに文字列を指定した場合は、その上のフィールドにも何らかの文字 列を入力する必要があります。
8.3.2.3 RegExp (正規表現) フィルター
概要
Unix タイプの正規表現一致を使います。テキストの数字の範囲、文字やシンボルで合致条件 を作るのに有効です。テキスト中の位置の指定なども可能で、最も自由度の高いテキスト検 索方法です。
AND、OR、NOT-OR、NOT-AND 演算と含まない文字列の指定(Exclude)が可能です。
Feild リストで、IP address、Hostname、Messate text のいずれかを選択した場合に使用でき ます。
詳細
正規表現フィルターでは Unix タイプの正規表現引数を用いて “どこ” で “どんな” テキスト を検索するのかを厳密にコントロールできます。
各検索文字列はダブルクォーテーション(””)で囲み、1 行に並べて指定します。フィルターは 指定された文字のいずれか(OR 条件)のマッチングを行います。
[C]: 大文字小文字を区別するかを指定します。オンの場合、大文字小文字を区別します。
ブランクのフィールドは無視されます。
最初の 2 つのフィールドがブランクで、3,4 番目でテキストを指定すると指定した文字列を含ま ないテキストを検索します。一致するテキストが見つからなかった場合に結果は真となりま す。
例:
上記のようにフィルターを指定した場合、The で始まり(大文字小文字の区別あり) dog で終 わるメッセージテキストでchickenとduckを含まないものがあれば、結果は真となります。
上図は、指定した文字列を含まないメッセージをフィルターする例です。
先頭がTheで始まらずdogで終わないメッセージテキストがあれば、フィルターは真を返しま す。最初の 2 つのフィールドがブランクであることに注意してください。これらのフィールドはフ ィルター処理で無視されます。
注記:
And フィールドは指定する必要がなければブランクのままで構いません。
And フィールドに文字列を指定した場合は、その上のフィールドにも何らかの文字 列を入力する必要があります。
正規表現構文
以下は、正規表現フィルターに使用できる特殊文字および文字列です。
文字 説明
^ 文字列の始まり
$ 文字列の終わり
. 任意の文字
? 直前の文字を0回あるいは1回含む文字列
例: 10? は 1 と 10 にマッチします。
* 直前の文字を0回あるいは 1 回以上繰り返す文字列 例: 10* は1、10、1000などにマッチします。
+ 直前の文字を 1 回以上繰り返す文字列
例: 10+ は10、1000などにマッチします。
\ 次の文字をエスケープします。構文に特殊文字を含める場合に必須です。
例: \.\*\+\\ は .*+\ にマッチします。
特殊印字不能文字(タブなど)をエンコードする際にも必要です。
x|y xかyのどちらかにマッチします。
例: z|wood は z または wood にマッチします。
(z|w)oo は zoo または wood にマッチします。
{n} n は非負整数。直前の文字をn回繰り返している文字列にマッチします。
例: o{2} はBob の o にマッチしませんが、foooood の 最初の 2 つの o にマッチします。
{n,} n は非負整数。直前の文字を最低n回繰り返している文字列にマッチします。
例: o{2,} は Bob の o にマッチしませんが、foooood の すべての o にマッチします。
o{1,} は o+、o{0,} は o* と同等です。
{ n , m } m と n は非負整数。直前の文字を最低n 回、最高 m 回繰り返している文字列 にマッチします。
例: o{1,3} はfooooood の最初の3つの o にマッチします。
o{0,1} は o? と同等です。
[ xyz ] 文字セット。括弧内の文字が含まれているものすべてにマッチします。
例: [abc] は plain の a にマッチします。
[^ xyz ] 否定文字セット。括弧内以外の文字が含まれているものすべてにマッチします。
例: [^abc] は plain の p にマッチします。
[ a-z ] 文字の範囲。指定した範囲に含まれる文字にマッチします。
例: [a-z] はアルファベット小文字の a から z までの文字にマッチします。
[^ m-z ] 否定文字の範囲。指定した範囲に含まれない文字にマッチします。
例: [m-z] は m から z 以外の任意の文字にマッチします。
\b 語句の境界―すなわち語句の区切り位置やスペース(空白)にマッチします。
例: er\b は never の er にマッチしますが verb の er にはマッチしま せん。
\B 語句の境界以外にマッチします。
例: ea*r\B は never early の ear にマッチします。
\d 数字にマッチします。[0-9] と同等です。
\D 数字以外の文字にマッチします。 [^0-9] と同等です。
\f 改ページにマッチします。
\n 改行にマッチします。
\q 引用符または ASCII 34
\r キャリッジリターンにマッチします。
\s スペース、タブ、改ページ等空白文字にマッチします。
[ \f\n\r\t\v] と同等です。
\S 非空白文字にマッチします。[^ \f\n\r\t\v] と同等です。
\t タブにマッチします。
\v 垂直タブにマッチします。
\w 下線を含む文字にマッチします。 [A-Za-z0-9_] と同等です。
\W 文字以外の記号にマッチします。 [^A-Za-z0-9_] と同等です。
\num num(正の整数)にマッチします。記憶済みマッチに戻って参照します。
例: "(.)\1 は 2 つの連続した同一文字にマッチします。
\ n 8 進エスケープ値であるnにマッチします。8 進エスケープ値は 1 桁、2 桁または 3 桁の値です。
例: \11および\011は両方ともタブ文字にマッチします。
\0011は\001および1と同等です。8 進エスケープ値は 256 以下の値を指定 してください。これを超える値を指定すると最初の 2 桁のみが対象となります。
正規表現では ASCII コードを使用できます。
\xn 16 進エスケープ値であるnにマッチします。16 進エスケープ値は 2 桁です。
例: \x41はAにマッチします。\x041は\x04および1と同等です。
正規表現では ASCII コードを使用できます。
例:
"^stuff" stuffで始まる任意の文字列
"stuff$" stuffで終わる任意の文字列
"o.d" old、odd、ord等
"o[ld]d" oldまたはoddのみ
"o[^l]d" odd、ordではあるがoldではない
"od?" o又はod
"od*" o、od、odd
"od+" od、odd等
"\." 小数点(エスケープ文字が必要)
"[A-Z][a-z]*" 大文字で開始する単語
"[0-9]+" 任意の数字列
"[1-9]+[1-9]*" 0 で始まらない任意の数字列
"[+\-]?[0-9]*[\.]?[0-9]*" 符号と小数点つきの任意の数字 (2 つのエスケープ文字が必要)
"dst=\qLOCAL MACHINE\q" dst=”LOCAL MACHINE”を検索