FER (Field Extraction Rules) の作成
FER (Field Extraction Rules) は、ゼロから作成することもできますし、データ ソースによってはドロップダウン メニューからテンプレートを選択して作成することもできます。
FER (Field Extraction Rules) を作成するには、FER (Field Extraction Rules) の管理ロール権限が必要です。
制限事項
- FER (Field Extraction Rules) は最大 50 件、フィールドは最大 200 個までの制限があります。ログのメタデータとして作成された FER (Field Extraction Rules) からのフィールドについては、200 のフィールドが同じクォータを共有します。フィールドは [Fields (フィールド)] ページで管理できます。
- FER (Field Extraction Rules) は、最大 16K (16,384) 文字に制限されています。
- フィールドはデータの取り込み時に parse されるため、FER (Field Extraction Rules) は以降のデータにのみ適用されます。FER を作成する前に取り込まれたデータを parse したい場合は、クエリでデータを parse するか、または履歴データを抽出するための Scheduled View を作成してください。
新しい FER (Field Extraction Rules) の作成
FER (Field Extraction Rules) を作成するには、次の手順を実行します。
- [Manage Data (データの管理)] > [Settings (設定)] > [FER (Field Extraction Rules)] に移動します。
- [Add (追加)] をクリックします。
- 以下のオプションを入力します。
- Rule Name (ルール名): ルールを識別しやすい名前を入力します。
- Scope (範囲): parse が必要なログのサブセットを指定するキーワードと組み込みのメタデータ フィールドを入力します。範囲は、アドホック検索の最初のパイプ (|) の前の部分と考えてください。範囲を使用して、ルールに対して検索を実行します。カスタム メタデータ フィールドはここではサポートされていません。収集のこの時点では、まだデータへのインデックス付けは行われていません。
- Parse Expression (parse 式):
- サポートされている parse および search operator を使用して有効な parse 式を入力します。
フィールドにはルール名が関連付けられているため、必要に応じて特定の 1 つのフィールドを多くのルールで parse することもできます。
たとえば、単一のフィールドを parse するには、次のような定義を使用します。
parse "message count = *," as msg_count
複数のフィールドを parse するには、次のような定義を使用します。parse "[hostId=*] [module=*] [localUserName=*] [logger=*] [thread=*]" as hostId, module, localUserName, logger, thread
- または parse テンプレートを選択します。
- サポートされている parse および search operator を使用して有効な parse 式を入力します。
- Templates.詳細については、下記の「テンプレートを使用した FER (Field Extraction Rules) の作成」を参照してください。
- [Add (追加)] をクリックします。
テンプレートを使用した FER (Field Extraction Rules) の作成
parse 式を作成する代わりに、リストからテンプレートを選択し、内容を確認してからクリックして適用することができます。テンプレートを適用すると、既存の parse 式は上書きされます。
テンプレートで新しい FER (Field Extraction Rules) を作成する手順
- [Manage Data (データの管理)] > [Settings (設定)] > [FER (Field Extraction Rules)] に移動します。
- [Add (追加)] をクリックします。
- [Rule Name (ルール名)] と [Scope (範囲)] に入力します。
- parse テンプレートのドロップダウンをクリックすると、利用可能なテンプレートが表示されます。
- テンプレートを選択して [Use Template (テンプレートを使用)] をクリックします。テンプレートが parse 式に適用されます。
- 適用された parse 式を確認します。
- parse されたフィールドにルールが parse するフィールド名が表示されます。ルールを割り当てるフィールドを選択します。[Fields (フィールド)] テーブル スキーマに存在しないフィールドには、[New (新規)] というテキストが緑色で強調表示されます。新しいフィールドを選択すると、テーブル スキーマにそのフィールドが自動的に作成されます。フィールド テーブル スキーマは [Fields (フィールド)] ページで表示および管理できます。
- [Save (保存)] をクリックして、ルールを作成します。
ルール設計のベスト プラクティス
データを抽出したいデータのサブセットを特定するために、最も正確なキーワードを指定しましょう。必要なデータのみを抽出して、それ以外は抽出しないように、範囲はできる限り狭く設定してください。範囲を広くすると、Sumo Logic は parse したいフィールドでより多くのデータを調べることになり、フィールドが実際に必要ではないときに抽出されてしまうこともあります。
複数の細かいルールを作成しましょう。複雑なルールを構築するよりも、基本的な範囲を指定したルールを複数作成し、複数回検索を実行してください (結果は加法的になります)。他の検索と同じように OR や AND もサポートされます。たとえば、Apache ログの応答コードを parse するルールを作成して、別のルールで応答時刻を parse することができます。これらを組み合わせることで、必要な情報をすべて入手できます。
必要のないフィールドは抽出しないようにしましょう。ログにすべて存在する最小限のフィールドのみを抽出してください。範囲に含めるすべてのフィールドはすべての検索で使用されるため、余分なフィールドを加えると、必要のない結果も返されます。最もよく使用されるフィールドを抽出するフィールドを多く作成するのがよいでしょう。最初に、共通データ ソースを見て、最も頻繁に抽出されるフィールドを確認します。次に、これらの Source から最も頻繁に parse されるフィールドはどれであるかを調べて、それらのフィールドを自動的に抽出するためのルールを作成します。
個々のログ パターンと一致するフィールド名に対して FER で複数の parse nodrop ステートメントを作成しましょう。異なる parse ステートメントを用意することで、いずれか 1 つのみがログ メッセージと一致してフィールド値を返すため、実質的に OR ステートメントのように機能します。
ルールを作成する前に範囲をテストする。検索結果で戻す必要のあるすべてのメッセージからフィールドを抽出できることを確認してください。範囲をテストするには、潜在的なルールを検索として実行します。
定義する範囲にすべてのフィールドが含まれるようにしましょう。データにフィールド抽出を適用する際には、すべてのフィールドが存在してインデックス化されるようにしなければなりません。わずか 1 つのフィールドでも欠けているメッセージは、結果から除外されてしまいます。つまり、オール オア ナッシング、ということです。ある意味で互いに独立している複数のフィールド セットに対しては 2 つのルールを作成してください。
範囲が独立していて別々であり、同じメッセージとは一致しない場合は、複数の FER でフィールド名を再利用しましょう。スペースを節約して、200 個のフィールド制限内でより多くの FER を作成できるように、重複しない FER であれば同じフィールド名を再利用できます。
同じ FER を適用する同じメッセージでは、同じフィールド名を使用しないでください。複数の FER が同じフィールド名で同じメッセージを処理すると、いずれかのルールが適用されなくなります。この場合、特定のフィールド名に適用されるルールはランダムに選ばれます。同じメッセージに適用される複数の FER では、同じフィールド名を使用しないでください。
サポートされている parse および search operator
FER (Field Extraction Rules) の parse 式では、以下の operator を使用できます。
- parse regex
- parse anchor
- parse nodrop
- csv
- フィールド
- json
- keyvalue
- num