ルール・グループの操作

IBM® Cloud Logs では、構文解析ルールはルール・グループ内に整理される。 各グループには、名前とルールのセットがあり、それらの間に論理関係があります。 ログは、ルール・グループの順序 (最初から最後まで) に従って処理されます。 その後、ルール・グループ内のルールの順序、およびルール・グループ間の論理演算子 (AND/OR) に従って処理されます。 ルールは、ログ・データを処理、解析、および再構成して、モニターおよび分析の準備をするのに役立ちます。

ルール・グループの作成

IBM® Cloud Logs UI でルール・グループを作成するには、 「データ・パイプライン」 アイコン 「データ・パイプライン」アイコン > 「ルールの構文解析」 をクリックし、 「新規ルール・グループ」 をクリックするか、いずれかのクイック・ルール作成オプションを選択します。

ルール・グループ定義には、いくつかのセクションがあります。 以下の手順でルールグループを作成する:

  1. 「詳細」 セクションで、 「ルール・グループ名」 および *「ルール・グループの説明」*を入力します。

    各グループには名前があり、オプションで説明を含めることができます。

  2. 「ルール・マッチャー」 セクションで、ルール・グループに含まれるルールを適用するログを定義するアプリケーション、サブシステム、および重大度を構成します。

    「ルール・マッチャー」 セクションでは、照会を定義します。 ルール・マッチャー照会に一致するログのみがグループによって処理されます。 このマッチングは、意図したログのみがグループ・ルールを通過するようにし、パフォーマンス上の理由で行われるようにする上で重要です。

    ルール・マッチャー照会は、アプリケーション、サブシステム、および重大度のセットを選択することによって定義されます。 照会のすべてのコンポーネントに一致するログのみがグループによって処理されます。 セクション内のすべての項目はオプションです。 フィールドを選択しない場合、または「RegEx,」を定義しない場合、ルールグループはすべてのログに対して実行されます。

  3. 「ルール」 セクションで、データに適用するルールのシーケンスを構成します。

    ルールの順序付けは、最終結果に影響するため、重要です。

    規則のオプションには、以下のものがあります。

    • 構文解析ルール: 非構造化テキストを JSON に変換するルール。

    • 抽出: ログ全体を解析することなく、JSON キーとして必要な特定の値を抽出するためのルール。

    • JSON の抽出: JSON キーの値をメタデータ・フィールドに抽出するルール。

    • 置換: ログ構造を修正する規則、ログ重大度を変更する規則、または情報を隠す規則。

    • ブロック: RegEx 式を使用して着信ログをフィルターで除外するルール。

    • タイム・スタンプ抽出: ログ・タイム・スタンプを、ログ・レコードに含まれているタイム・スタンプに置き換えるルール。

    • JSON フィールドのストリング化: JSON オブジェクトを stringify JSON フィールドに変換することによって、索引付きフィールドの量を削減するルール。

    • JSON フィールドの構文解析: エスケープまたはストリング化されたログを JSON 形式に変換するためのルール。

    ルールを作成するときに、サンプル・ログ領域を使用してルールを検証できます。 この領域にログインを作成するか貼り付けます。これにより、ログを処理するルールの結果が表示されます。

ルール・グループの実行順序の変更

ルール・グループの順序を変更できます。 それらをドラッグしてリスト内で並べ替えることにより、順序を変更することができます。

ルール・グループの削除

ルール・グループを削除するには、そのグループをクリックし、 「ルール・グループの削除」 をクリックします。

ルール・グループの編集

ルール・グループを編集するには、グループをクリックして変更を行い、 「変更を保存」 をクリックします。

ルール・グループへの複数のルールの追加

ルール・グループを作成した後、ルール・グループにさらにルールを追加できます。

ルールグループにさらにルールを追加するには、以下の手順を実行する:

  1. ルール・グループを選択します。 次に ADD RULEを選択する。

  2. 既存のルールと新しいルールの間の論理関係を選択します。 AND/OR ロジックを使用できます。

    以下に例を示します。

    Rule-1 AND Rule-2 は、ログが常に両方のルールによって処理されることを意味します。

    Rule-1 OR Rule-2 は、ログが Rule-1 または Rule-2のいずれかによって処理されることを意味します。どちらか一方が最初に一致するか、どちらも一致しない場合はどちらも一致しません。 つまり、 Rule-1 がログに一致する場合、 Rule-2 はそのログに適用されません。

ルール・グループ内のルールの実行順序の変更

ルール・グループ内のルールの実行順序を変更するには、そのルールを他のルールに対して相対的な新しい位置にドラッグします。

ルールの実行順序

ログが取り込まれると、ルール・グループが先頭から順に適用されます。

ルール・グループ内:

  1. ルール・グループ・マッチャー照会が最初に適用されます。

    構成されているアプリケーション、サブシステム、および重大度に一致するログのみが、構文解析ルールの適用を続行します。

  2. 構文解析ルールは、構文解析ルールUIで定義されたとおりにトップダウンで適用される。 他のルールより前に適用する必要がある場合は、ルールを別の位置にドラッグ&ドロップすることができます。

    • ルールグループ内のルールは、リストの最初のルールから最後のルールまで適用されます。

    • AND または OR の条件を選択することで、ルールグループ内のルールを組み合わせることができます。 AND を選択すると、正規表現がログ行に適用される場合、すべてのルールが試行され適用されます。 OR を選択すると、ルールがログ行に一致すると、残りのルールは適用されません。

    グループ内の OR および AND 演算子は、演算の数学的順序に従いません。

    ルールは即時に適用されるため、1 つのルールの出力が次のルールの入力になります。

ルールグループとルールの実行順序は重要であり、最終的なログの構造を定義する。

ブロック・ルールを最初に配置し、可能な場合はルール・マッチャーを使用して、ログが不必要に処理されないようにし、データ処理を高速化します。

例えば、Heroku の Postgres ログを解析する次の 2 つの規則について考えてみます。

フォロワー・ログの末尾には、 follower_lag_commits という項目があります。 この項目は、制限が少なく、他のすべてのフィールドが一致するため、リーダー・ルールが両方のログをキャプチャーすることを意味します。 フォロワーはフォロワー・ログにのみ一致します (最初のテスト・ストリングには追加項目がないため、フォロワーの例ではキャプチャーされません)。 フォロワー・ルールが最初に実行されます。

ルール・グループのオン/オフ

ルール・グループに関連付けられたトグルを使用して、ルール・グループをアクティブまたは非アクティブに設定できます。