JSON キーとしての特定の値の抽出
IBM® Cloud Logsでは、 「抽出」 ルールを使用して、ログ全体を解析することなく、必要な特定の値を JSON キーとして抽出できます。
解析ルールとは異なり、抽出ルールは元のログをそのまま残し、ルートにフィールドを追加します。
開始前に
語句解析ルールは、 *「ルール・グループ」*内に編成されています。 各グループには、名前とルールのセットがあり、それらの間に論理関係があります。 ログは、ルール・グループの順序 (最初から最後まで) に従って処理されます。 その後、ルール・グループ内のルールの順序、およびルール・グループ間の論理演算子 (AND/OR) に従って処理されます。 ルールは、ログ・データを処理、解析、および再構成して、モニターおよび分析の準備をするのに役立ちます。 詳しくは、
ルール・グループの操作 を参照してください。
名前付き取り込みグループを使用した新規フィールドの定義
抽出ルールでは、RegEx-namedキャプチャグループを使用して新しいフィールドを定義します。
- キャプチャーされたグループは、解析されたログ・フィールドになります。
- 各グループに関連付けられている値がフィールドの値になります。
- RegEx は、ログ全体と一致する必要はありません。
- RegEx という名前のキャプチャー・グループ (
< >内の値) とそれらがキャプチャーする値のみが、再構成されたログの一部になります。
抽出ルールの構成
以下のステップを実行します。
-
「データ・パイプライン」 アイコン
> 「ルールの構文解析」 をクリックし、 「新規ルール・グループ」 をクリックします。
-
「詳細」 セクションで、 「ルール・グループ名」 および *「ルール・グループの説明」*を入力します。
-
「ルール・マッチャー」 セクションで、ルール・グループに含まれるルールを適用するログを定義するアプリケーション、サブシステム、および重大度を構成します。
-
「ルール」 セクションで、 「抽出」
を選択します。
-
名前を入力します。
-
オプションで、説明を入力します。
-
ソース・フィールドを選択する。 これは、 RegEx が適用されるフィールドです。
-
「正規表現」 (RegEx) を入力します。
-
ルールを有効にする場合は、状況を 「アクティブ」 に切り替えます。
-
-
さらにルール・グループを追加するには、 「ルールの追加」 をクリックし、目的のルール・タイプを選択します。 「AND/OR」 を切り替えて、追加ルールの処理方法を選択します。
-
ルールグループの作成]をクリックします。
例: 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"
}