メインコンテンツまでスキップ
Sumo Logic Japanese

アンカーを使用して予測パターンを parse する

parse operator (parse anchor とも呼ばれる) は、指定された開始アンカーと停止アンカーに従って文字列を parse し、ソート関数、グループ化関数など、クエリ内の以降の集計関数で使用するためにフィールドとしてラベル付けします。

このトピックでは、parse anchor UI ツールを使用して parse をクエリに追加し、parse anchor operator の構造に詳細情報を指定します。

構文

  • | parse "<start_anchor>*<stop_anchor>" as <field>
  • | parse "<start_anchor>*<stop_anchor>" as <field> [nodrop]
  • | parse [field=<field_name>] "<start_anchor>*<stop_anchor>" as <field>

オプション

  • nodrop オプションは parse 用語のセグメントと一致しないメッセージも結果に含めるようにします。詳細については、「Parse nodrop」を参照してください。 
  • field=fieldname オプションを使用すると、フィールドを指定して、デフォルト メッセージ以外を parse できます。詳細については、「Parse field」を参照してください。 

ルール

  • 抽出済みまたは parse されたフィールドなどのユーザ作成フィールドは、英数字およびアンダースコア (_) を使用して名前を付けることができます。フィールド名は英数字で始める必要があります。 
  • フィールドを指定しないと、受信メッセージのテキスト全体が使用されます。
  • ワイルドカードは parse されたフィールドのプレースホルダとして使用されます。ワイルドカードはスペースまたは他の文字で区切る必要があります。** は無効です。別の parse operator (parse regex など) を使用してください。
  • パターン文字列内のワイルドカードの数は、変数の数と一致する必要があります。
  • 1 つの parse operator で複数の抽出ができます。
  • (一重引用符ではなく) 二重引用符が付いた文字は文字列リテラルです。文字列の二重引用符をエスケープするにはバックスラッシュを使用します。例:
    • | parse "\"tier\" : *," as tier

parse anchor UI ツール

parse anchor UI ツールを使用して、parse するメッセージ テキストの強調表示、Parse フィールドの指定、および parse 操作の実行ができます。

parse anchor UI ツールを使用して parse するには:

  1. 検索を実行します。
  2. 検索結果で、parse 対象のテキストを含むメッセージを見つけます。
  3. テキストを強調表示して、右クリックし、[Parse the selected text (選択したテキストを parse)] を選択します。



    [Parse Text (テキストの parse)] ダイアログ ボックスが開き、強調表示したテキストが表示されます。


     
  4. 最初の parse フィールドのテキストを選択して、[Click to extract this value (クリックしてこの値を抽出)] をクリックします。
    強調表示したテキストがアスタリスク (*) に置き換わります。
    このスクリーンショットの例では、GET が parse アンカーで、その後の強調表示したテキストが最初の parse フィールドです。 

  5. [Fields (フィールド)] 領域に parse フィールドの名前 (スペースは使用しない) を入力します。

     
  6. 追加のフィールドを parse する場合は、フィールド名の後にコンマを追加し、parse 操作を繰り返します。次のスクリーンショットには、3 つの parse されたフィールド、urlstatus_codesize がこの順序で表示されています。3 つのフィールドは parse テキスト内の 3 つのアスタリスクに対応しています。
  7. [Submit (送信)] をクリックします。
    [Search (検索)] ページが再度開いて、検索に追加された作成済みの parse operator が表示されます。

  8. [Start (開始)] をクリックして、検索結果を表示します。これで parse 済みのメッセージが表示されます。

ログ メッセージ例:

Aug 2 04:06:08: host=10.1.1.124: local/ssl2 notice mcpd[3772]: User=jsmith@demo.com: severity=warning: 01070638:5: Pool member 172.31.51.22:0 monitor status down.

次の例では、start_anchor は "user="、stop_anchor は ":" です。これはメール アドレスの終わりを示します。アスタリスク (*) は parse される用語を表す glob です。次の例では、各メッセージに "user" という名前の新しいフィールドを作成して、そのフィールドにメール アドレスの値 (この例では jsmith@demo.com) を入力します。

... | parse "user=*:" as user 

parse operator では、1 つのコマンドで複数のフィールドを抽出することもできます。

... | parse "user=*: severity=*:" as user, severity | ... 

この例では、ログ メッセージ例から 2 つのフィールド user=jsmith@demo.com と severity=warning を作成します。

特殊文字を含む名前のフィールド

次の構文を使用して、特殊文字 (スペース、ダッシュ、バックスラッシュ、フォワードスラッシュなど) を含むフィールド名を作成できます。

... | parse "<string>" as %"<field name with special characters>"

たとえば、次のクエリではスペースを含む "Class ID" 句を parse できます。

... | parse "[Classification:*]" as %"Class ID"

改行をアンカーに使用する

ログが複数行形式の場合、メッセージ内の改行まで parse することもあります。これを行うには、次の正規表現を停止アンカーとして改行に使用します。 

  Linux ログ:   \n 
  Windows ログ:   
\r

たとえば、次のメッセージがログ内にあるとします。

  12:08:10,651 INFO sample_server ReportEmailer:178 - DEBUG SENDING MESSAGE: 
    To: example@sumologic.com 
    Subject: New line Breaks in Message

"To:" アドレスを取得するには、次のクエリを使用します。

... | parse "To: *\n" as toAddress

または

... | parse "To: *\r" as toAddress

 これにより、toAddress 列に example@sumologic.com が入力されます。

  • この記事は役に立ちましたか?