field=<field_name> というパース構文を追加すると、すでに抽出したフィールドでパースしたり、最初にメタデータ フィールド値 (_collector、_source など) でパースしたりできます。

この追加構文は、標準の Parse AnchorParse Regex オペレータで使用できます。

構文

  • parse field=<field> "<start_anchor>*<stop_anchor>" as <field>
  • parse regex field=<field> "<start expression>(?<fieldname><field expression>)<stop expression>"

ログ メッセージ例:

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.

まず、次の parse ステートメントを使用して、ログ メッセージから User を取得します。これにより、user_email というフィールドに値 jsmith@demo.com が入力されます。

parse "User=*:" as user_email

このフィールドを取得したので、このメール アドレスから名前とドメインもパースします。  次のように追加の parse 操作に field=<field_name>  構文を加えて実行します。

parse "User=*:" as user_email | parse field=user_email "*@*" as user_name, domain

上記クエリの結果は次のようになります。

field=<field_name>  構文は、ログから指定してパースしたフィールドに限定するだけではありません。この構文は、_collector、_source、_sourceName などの事前定義済みメタデータ フィールドもパースできます。たとえば、命名フォーマットがすべて HostName_10.10.10.1 のコレクタの長いリストがある場合、このメタデータ フィールド値をパースして、IP アドレスを取得できます。

parse field=_collector "HostName_*" as host_ip