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

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

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

このトピックでは、パーサ アンカー UI ツールを使用してパースをクエリに追加し、パーサ アンカー オペレータの構造に詳細情報を指定します。

構文

  • | 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 nodrop」を参照してください。 
  • field=fieldname オプションを使用すると、フィールドを指定して、デフォルト メッセージ以外をパースできます。詳細については、「Parse field」を参照してください。 

ルール

  • 抽出済みまたはパース済みフィールドなどのユーザ作成フィールドは、英数字およびアンダースコア (_) を使用して名前を付けることができます。フィールド名は英数字で始める必要があります。 
  • フィールドを指定しないと、受信メッセージのテキスト全体が使用されます。
  • ワイルドカードは抽出済みフィールドのプレースホルダとして使用されます。ワイルドカードはスペースまたは他の文字で区切る必要があります。** は無効です。
  • パターン文字列内のワイルドカードの数は、変数の数と一致する必要があります。
  • 1 つのパース オペレータで複数の抽出ができます。

パース アンカー UI ツール

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

パース アンカー UI ツールを使用してパースするには:

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



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


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

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

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

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

ログ メッセージ例:

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

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

パース オペレータでは、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 "[Classification:*]" as %"Class ID"

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

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

 Linux Logs-  "\n"

 Windows Logs- "\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 nodrop

または

... | parse "To:*\r" as ToAddress nodrop

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

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