ルールエンジンのマッチング条件

Splunk On-Callアラートのルールのマッチング条件について。

マッチング条件は、ルールが適用されるタイミングを決定します。アラートのペイロード内に存在する任意のフィールドを選択し、直接マッチングやワイルドカードマッチングを使用するか、または正規表現を使用して、そのフィールドの特定の値にマッチさせることができます。

要件

このインテグレーションは以下のバージョンのSplunk On-Callと互換性があります:

  • エンタープライズ

フィールド名

タイムラインでインシデントを表示する場合、フィールド名は左に、値は右に表示されます:

フィールド名は左、値は右。

上の例では、対象フィールドは entity_display_name フィールドで、その値はフレーズ This is an incident! です。マッチング条件は以下の通りです。

アラートルールエンジンで、entity_display_nameが*this is an incident*ワイルドカードマッチセットと一致する場合。

ルーティングキーのマッチング

ワイルドカードと正規表現のマッチングに加えて、[Associated routing key] セレクタを介してルーティングキーのマッチングを明示的に定義できます。これにより、ワイルドカードまたは正規表現のマッチングセクションで指定されたマッチングパラメータに AND 論理が提供されます。

注: [Associated routing key] セレクタによるルーティングキーのマッチングは、上部バーのワイルドカードまたは正規表現のマッチング基準を使用して他のルーティングキーとマッチングしたり、[Transform these alert fields] セクションを使用してルーティングキーを操作したりできません。これは、他のマッチングパラメータや変換パラメータと一緒に使用するために、特にルーティングキーの AND マッチング条件のみを提供します。

ワイルドカードマッチング

ルールでは、文字列の一部またはすべてに一致する簡略化されたワイルドカード構文を使用してアラートフィールド値にマッチングできます。アスタリスク(*)は 0 文字以上とマッチングし、マッチングパターン内の任意の場所で使用できます。

ワイルドカードの例

フレーズ

一致する

一致しない

*.mydomain.tld

www.mydomain.tld www.subdomain.mydomain.tld db778.mydomain.tld

mydomain.tld x.mydomain.tld/with/a/long/path/suffix.html

db-*.*

db-123.foobar.baz db-abc123.bazfoo.bar

db000.barfoo.baz db-123

*db-mydomain*

123 db-mydomain abc``|br| ``foo-db-mydomain-bar

db123-mydomain db.mydomain

正規表現によるマッチング

正規表現は、検索パターンを定義する文字です。正規表現を使用するルールを設定するには、メニューオプションを [RegEx Match] に変更します。オプションが表示されない場合は、サポートに連絡して詳細設定をオンにしてください。

注: 正規表現ルールはタイムアウトの対象となり、細工された表現がSplunk On-Callインスタンスの安定性にリスクをもたらす場合は自動的に無効化されます。

次の制限が適用されます。

  • Java正規表現に対応しています。

  • 表現は現在128文字に制限されています。

  • 大文字小文字を区別しない方法で複数行の入力にマッチさせるには、正規表現の先頭に (?si) を追加します。

  • 前のテクニックは入力文字列全体にマッチするので、正規表現の最初と最後に .* を追加する必要がある場合があります。

正規表現の例

フレーズ

一致する

一致しない

^\d+(\.\d+)?

2 2.4 50 5.125

b2.4 version 2.4

^\d{3}-\d{3}-\d{4}$

123-123-1234 111-222-3333

number: 123-123-1234 123-123-1234 US

\w{2,}

ab abc abcd 123abcd abcd123

1 a1 1a

c(at|ar)?

cat car catalyst carbon a la carte

chart clark

ブーリアンロジック

異なるマッチング条件を持つルールを複製することで、ディスジャンクションロジック( OR )を使用することができます。

一連の連続ルールは、正しく順序付けられればルールエンジンの基本的な AND ロジックを実現できます。スコープ制限ルールと同様に、最初のルールは後続のルールが処理できる新しいフィールドを作成する必要があります、

ルールの処理順序

アラートルールは、次の 3 つの基準を使用して処理の順序を決定します。

  • アラートルールの上から下に並べる順序

  • 各ルールのオプションの Stop after this rule has been applied 設定

  • Associated routing keyに基づくマッチングルーティングキーを持つルール

取り込まれた各アラートについて、Associated routing key が一致しないすべてのルールは、上から下の順序で処理されます。ルールが Stop after this rule has been applied 設定とマッチングする場合、そのアラートのアラートルールの適用が停止します。最後に、 Associated routing key に基づく特定のマッチングルーティングキーを持つルールが適用されます。これらのルールは最後に適用されるため、この値が別のアラートルールによって変更された場合に、アラートの最終ルーティングキーとマッチングできます。

ANDロジックの例

次の例では、entity_id フィールドの disk space と、host_name フィールドの stage-db-26という名前をキャプチャし、両方の条件が満たされた場合にのみ、これらのアラートを INFO イベントに変換します。

最初のルールのマッチング条件は、最初の希望するフレーズをキャッチし、変数展開を使って2番目のフィールドの値を新しく宣言されたフィールドにインポートします。

Splunk On-Callアラートルールエンジンで、entity_idが *disk space* に一致する場合、new_matching_fieldを${{host_name}}に設定します。

2番目のルールのマッチング条件は、1つ目のルールの下に置かなければならないが、新しく宣言されたフィールドの値 stage-db-26 をチェックし、適切なアクションを取ります。

VictorOpsアラートルールエンジン、new_matching_fieldが*stage-db-26*にマッチする場合、message_typeをINFOに設定します