このトピックでは、EPLクエリを記述してルールの基準を定義する方法について説明します。EPLは、大量のイベントや時間ベースのイベント データを扱う宣言型言語です。この言語は、イベントのフィルタリングと集計を表現するために使われ、複数のイベント ストリームのスライディング ウィンドウを結合することもできます。EPLには、イベントの複雑な時間因果関係を表現するためのパターン セマンティックも含まれます。
ルールの基準がルール ビルダで指定できるものよりも複雑な場合には、詳細なEPLルールを記述します。
EPL構文の説明は、このガイドの対象外です。
- EPLのドキュメントは、http://www.espertech.com/esper/documentation.phpを参照してください。
- EPLオンライン ツールについては、http://esper-epl-tryout.appspot.com/epltryout/mainform.htmlを参照してください。
前提条件
詳細なルールを追加するための前提条件を次に示します。
- イベント処理言語(EPL)についての知識があること。
- ESAアノテーションを使って、EPLステートメントをアラート生成用にマークすることを理解していること。
手順
詳細EPLルールを追加するには、次の手順を実行します。
- 構成>[ESAルール]に移動します。
-
[ルール名]フィールドに、固有の記述名を入力します。
この名前はルール ライブラリに表示されるため、他のルールと区別しやすいものにしてください。
-
[説明]フィールドに、ルールによって検出されるイベントの説明を入力します。
説明の先頭部分はルール ライブラリに表示されます
-
評価版ルール全体でメモリの閾値を超えたときに、ルールが自動的に無効になるように、[評価版ルール]を選択します。
評価版ルール モードは、ルールが効率的に実行されているかどうかを確認し、メモリ不足によるダウンタイムを回避するための安全措置として使用してください。詳細については、「評価版ルールの使用」を参照してください。
- [重大度]で、ルールを[低]、[中]、[高]、[クリティカル]のいずれかに分類します。
-
ルールの基準を定義するには、EPLでクエリを記述します。
注:メタ キー名では、ピリオドではなく、必ずアンダースコアを使用します。たとえば、
ec_outcome
は正しい名前ですが、ec.outcome
は誤りです。 -
ESAで動的ステートメント名を生成するには、メタ キーを中括弧で囲み、このアノテーションを構文に含める必要があります。
@Name("RIG {ip_src} {alias_host} {ec_activity}")
ここで、
- RIGはステートメント名の静的な部分です。
- {ip_src}、{alias_host}、{ec_activity}がステートメント名の動的な部分です。
注:ステートメント名の動的な部分のメタのいずれかがNULL値を持つ場合は、静的なテキストとして表示されます。
ルールがアラートを生成する場所には、次のESAアノテーションを構文に含めます。
@RSAAlert
ESAアノテーションの詳細については、「ESAアノテーション」を参照してください。