JSON キーとしての特定の値の抽出

IBM® Cloud Logsでは、 「抽出」 ルールを使用して、ログ全体を解析することなく、必要な特定の値を JSON キーとして抽出できます。

解析ルールとは異なり、抽出ルールは元のログをそのまま残し、ルートにフィールドを追加します。

開始前に

語句解析ルールは、 *「ルール・グループ」*内に編成されています。 各グループには、名前とルールのセットがあり、それらの間に論理関係があります。 ログは、ルール・グループの順序 (最初から最後まで) に従って処理されます。 その後、ルール・グループ内のルールの順序、およびルール・グループ間の論理演算子 (AND/OR) に従って処理されます。 ルールは、ログ・データを処理、解析、および再構成して、モニターおよび分析の準備をするのに役立ちます。 詳しくは、 ルール・グループの操作 を参照してください。

名前付き取り込みグループを使用した新規フィールドの定義

抽出ルールでは、RegEx-namedキャプチャグループを使用して新しいフィールドを定義します。

  • キャプチャーされたグループは、解析されたログ・フィールドになります。
  • 各グループに関連付けられている値がフィールドの値になります。
  • RegEx は、ログ全体と一致する必要はありません。
  • RegEx という名前のキャプチャー・グループ ( < > 内の値) とそれらがキャプチャーする値のみが、再構成されたログの一部になります。

抽出ルールの構成

以下のステップを実行します。

  1. 「データ・パイプライン」 アイコン 「データ・パイプライン」アイコン > 「ルールの構文解析」 をクリックし、 「新規ルール・グループ」 をクリックします。

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

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

  4. 「ルール」 セクションで、 「抽出」 「解析ルールの抽出」アイコン を選択します。

    1. 名前を入力します。

    2. オプションで、説明を入力します。

    3. ソース・フィールドを選択する。 これは、 RegEx が適用されるフィールドです。

    4. 「正規表現」 (RegEx) を入力します。

    5. ルールを有効にする場合は、状況を 「アクティブ」 に切り替えます。

  5. さらにルール・グループを追加するには、 「ルールの追加」 をクリックし、目的のルール・タイプを選択します。 「AND/OR」 を切り替えて、追加ルールの処理方法を選択します。

  6. ルールグループの作成]をクリックします。

例: 2 つの新規フィールドの作成

以下の例では、フィールド・メッセージから情報を抽出し、照会および視覚化できる「bytes」と「status」の 2 つの新規フィールドを作成します。

元のログは以下のとおりです。

{"level":"INFO", "message": "200 bytes sent status is OK"}

RegEx は以下のとおりです。

message"\s*:\s*"(?P<bytes>\d+)\s*.*?status\sis\s(?P<status>[^"]+)

フォーマットされたログは以下のとおりです。

{
    "level": "INFO",
    "message": "200 bytes sent status is OK",
    "Bytes": "200",
    "status": "OK"
}

元のログが構造化されていない場合、指定されたキャプチャー・グループに基づいてフィールドが追加され、元のログは text というフィールド内に保管されます。 前の例を使用すると、元のログが非構造化に変更されます。

元のログ:

"level":"INFO", "message": "200 bytes sent status is OK",

結果のログ:

{
    "bytes": "200",
    "text": "\"level\":\"INFO\", \"message\": \"200 bytes sent status is OK\"",
    "status": "OK"
}