ルール・グループの操作
IBM® Cloud Logs では、構文解析ルールはルール・グループ内に整理される。 各グループには、名前とルールのセットがあり、それらの間に論理関係があります。 ログは、ルール・グループの順序 (最初から最後まで) に従って処理されます。 その後、ルール・グループ内のルールの順序、およびルール・グループ間の論理演算子 (AND/OR) に従って処理されます。 ルールは、ログ・データを処理、解析、および再構成して、モニターおよび分析の準備をするのに役立ちます。
ルール・グループの作成
IBM® Cloud Logs UI でルール・グループを作成するには、 「データ・パイプライン」 アイコン > 「ルールの構文解析」 をクリックし、 「新規ルール・グループ」 をクリックするか、いずれかのクイック・ルール作成オプションを選択します。
ルール・グループ定義には、いくつかのセクションがあります。 以下の手順でルールグループを作成する:
-
「詳細」 セクションで、 「ルール・グループ名」 および *「ルール・グループの説明」*を入力します。
各グループには名前があり、オプションで説明を含めることができます。
-
「ルール・マッチャー」 セクションで、ルール・グループに含まれるルールを適用するログを定義するアプリケーション、サブシステム、および重大度を構成します。
「ルール・マッチャー」 セクションでは、照会を定義します。 ルール・マッチャー照会に一致するログのみがグループによって処理されます。 このマッチングは、意図したログのみがグループ・ルールを通過するようにし、パフォーマンス上の理由で行われるようにする上で重要です。
ルール・マッチャー照会は、アプリケーション、サブシステム、および重大度のセットを選択することによって定義されます。 照会のすべてのコンポーネントに一致するログのみがグループによって処理されます。 セクション内のすべての項目はオプションです。 フィールドを選択しない場合、または「RegEx,」を定義しない場合、ルールグループはすべてのログに対して実行されます。
-
「ルール」 セクションで、データに適用するルールのシーケンスを構成します。
ルールの順序付けは、最終結果に影響するため、重要です。
規則のオプションには、以下のものがあります。
-
構文解析ルール: 非構造化テキストを JSON に変換するルール。
-
抽出: ログ全体を解析することなく、JSON キーとして必要な特定の値を抽出するためのルール。
-
JSON の抽出: JSON キーの値をメタデータ・フィールドに抽出するルール。
-
置換: ログ構造を修正する規則、ログ重大度を変更する規則、または情報を隠す規則。
-
ブロック: RegEx 式を使用して着信ログをフィルターで除外するルール。
-
タイム・スタンプ抽出: ログ・タイム・スタンプを、ログ・レコードに含まれているタイム・スタンプに置き換えるルール。
-
JSON フィールドのストリング化: JSON オブジェクトを stringify JSON フィールドに変換することによって、索引付きフィールドの量を削減するルール。
-
JSON フィールドの構文解析: エスケープまたはストリング化されたログを JSON 形式に変換するためのルール。
ルールを作成するときに、サンプル・ログ領域を使用してルールを検証できます。 この領域にログインを作成するか貼り付けます。これにより、ログを処理するルールの結果が表示されます。
-
ルール・グループの実行順序の変更
ルール・グループの順序を変更できます。 それらをドラッグしてリスト内で並べ替えることにより、順序を変更することができます。
ルール・グループの削除
ルール・グループを削除するには、そのグループをクリックし、 「ルール・グループの削除」 をクリックします。
ルール・グループの編集
ルール・グループを編集するには、グループをクリックして変更を行い、 「変更を保存」 をクリックします。
ルール・グループへの複数のルールの追加
ルール・グループを作成した後、ルール・グループにさらにルールを追加できます。
ルールグループにさらにルールを追加するには、以下の手順を実行する:
-
ルール・グループを選択します。 次に ADD RULEを選択する。
-
既存のルールと新しいルールの間の論理関係を選択します。
AND/ORロジックを使用できます。以下に例を示します。
Rule-1 AND Rule-2は、ログが常に両方のルールによって処理されることを意味します。Rule-1 OR Rule-2は、ログが Rule-1 または Rule-2のいずれかによって処理されることを意味します。どちらか一方が最初に一致するか、どちらも一致しない場合はどちらも一致しません。 つまり、 Rule-1 がログに一致する場合、 Rule-2 はそのログに適用されません。
ルール・グループ内のルールの実行順序の変更
ルール・グループ内のルールの実行順序を変更するには、そのルールを他のルールに対して相対的な新しい位置にドラッグします。
ルールの実行順序
ログが取り込まれると、ルール・グループが先頭から順に適用されます。
ルール・グループ内:
-
ルール・グループ・マッチャー照会が最初に適用されます。
構成されているアプリケーション、サブシステム、および重大度に一致するログのみが、構文解析ルールの適用を続行します。
-
構文解析ルールは、構文解析ルールUIで定義されたとおりにトップダウンで適用される。 他のルールより前に適用する必要がある場合は、ルールを別の位置にドラッグ&ドロップすることができます。
-
ルールグループ内のルールは、リストの最初のルールから最後のルールまで適用されます。
-
ANDまたはORの条件を選択することで、ルールグループ内のルールを組み合わせることができます。ANDを選択すると、正規表現がログ行に適用される場合、すべてのルールが試行され適用されます。ORを選択すると、ルールがログ行に一致すると、残りのルールは適用されません。
グループ内の
ORおよびAND演算子は、演算の数学的順序に従いません。ルールは即時に適用されるため、1 つのルールの出力が次のルールの入力になります。
-
ルールグループとルールの実行順序は重要であり、最終的なログの構造を定義する。
ブロック・ルールを最初に配置し、可能な場合はルール・マッチャーを使用して、ログが不必要に処理されないようにし、データ処理を高速化します。
例えば、Heroku の Postgres ログを解析する次の 2 つの規則について考えてみます。
フォロワー・ログの末尾には、 follower_lag_commits という項目があります。 この項目は、制限が少なく、他のすべてのフィールドが一致するため、リーダー・ルールが両方のログをキャプチャーすることを意味します。 フォロワーはフォロワー・ログにのみ一致します (最初のテスト・ストリングには追加項目がないため、フォロワーの例ではキャプチャーされません)。 フォロワー・ルールが最初に実行されます。
ルール・グループの検索
ルール・グループを素早く見つけるために、検索機能を使用してルールを検索できます。 フリー・テキスト検索フィールドでルールまたはグループ名を使用できます。
ルール・グループのオン/オフ
ルール・グループに関連付けられたトグルを使用して、ルール・グループをアクティブまたは非アクティブに設定できます。