ルールエンジンのマッチング条件
Splunk On-Callアラートのルールのマッチング条件について。
マッチング条件は、ルールが適用されるタイミングを決定します。アラートのペイロード内に存在する任意のフィールドを選択し、直接マッチングやワイルドカードマッチングを使用するか、または正規表現を使用して、そのフィールドの特定の値にマッチさせることができます。
要件
このインテグレーションは以下のバージョンのSplunk On-Callと互換性があります:
-
エンタープライズ
フィールド名
タイムラインでインシデントを表示する場合、フィールド名は左に、値は右に表示されます:
上の例では、対象フィールドは entity_display_name フィールドで、その値はフレーズ This is an incident! です。マッチング条件は以下の通りです。
ルーティングキーのマッチング
ワイルドカードと正規表現のマッチングに加えて、[Associated routing key] セレクタを介してルーティングキーのマッチングを明示的に定義できます。これにより、ワイルドカードまたは正規表現のマッチングセクションで指定されたマッチングパラメータに AND 論理が提供されます。
ワイルドカードマッチング
ルールでは、文字列の一部またはすべてに一致する簡略化されたワイルドカード構文を使用してアラートフィールド値にマッチングできます。アスタリスク(*)は 0 文字以上とマッチングし、マッチングパターン内の任意の場所で使用できます。
ワイルドカードの例
|
フレーズ |
一致する |
一致しない |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
正規表現によるマッチング
正規表現は、検索パターンを定義する文字です。正規表現を使用するルールを設定するには、メニューオプションを [RegEx Match] に変更します。オプションが表示されない場合は、サポートに連絡して詳細設定をオンにしてください。
次の制限が適用されます。
-
Java正規表現に対応しています。
-
表現は現在128文字に制限されています。
-
大文字小文字を区別しない方法で複数行の入力にマッチさせるには、正規表現の先頭に
(?si)を追加します。 -
前のテクニックは入力文字列全体にマッチするので、正規表現の最初と最後に
.*を追加する必要がある場合があります。
正規表現の例
|
フレーズ |
一致する |
一致しない |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ブーリアンロジック
異なるマッチング条件を持つルールを複製することで、ディスジャンクションロジック( 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番目のフィールドの値を新しく宣言されたフィールドにインポートします。
2番目のルールのマッチング条件は、1つ目のルールの下に置かなければならないが、新しく宣言されたフィールドの値 stage-db-26 をチェックし、適切なアクションを取ります。