field=<field_name>
という parse 構文を追加すると、すでに parse されたフィールドで parse したり、最初にメタデータ フィールド値 (_collector、_source など) で parse したりできます。
この追加構文は、標準の Parse Anchor や Parse Regex operator で使用できます。
構文
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 します。 次のように追加の parse 操作に field=<field_name>
構文を加えて実行します。
parse "User=*:" as user_email | parse field=user_email "*@*" as user_name, domain
上記クエリの結果は次のようになります。
field=<field_name>
構文は、ログから指定して parse されたフィールドに限定するだけではありません。この構文は、_collector、_source、_sourceName などの事前定義済みメタデータ フィールドも parse できます。たとえば、命名形式がすべて HostName_10.10.10.1 の Collector の長いリストがある場合、このメタデータ フィールド値を parse して、IP アドレスを取得できます。
parse field=_collector "HostName_*" as host_ip