在 Log Insight 中解析消息
Parse message in Log Insight
我想解析这条消息:
[2021-08-30T14:01:01.443908+00:00] technical.INFO: Webhook
"239dfb55-c8f3-4ae2-8974-22dadb7417ba" (wallet.create) has been
handle.
拥有:
UUID(此处:239dfb55-c8f3-4ae2-8974-22dadb7417ba)
括号里的字(这里是:wallet.create)
我可以得到UUID,但不能得到括号中的条款。
我认为我的正则表达式是正确的,但是它在 Log Insight 上不起作用:(
我的查询:
fields @message
| filter @message like /technical.INFO: Webhook "/
| parse @message /(?<webhookId>\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b)/
| parse @message /(?<@endpt_get>\(([^)]+)\)/
| sort @timestamp desc
| limit 5
括号中单词的正则表达式:
https://regex101.com/r/ewSm6O/1
如果我评论这行查询:
parse @message /(?<@endpt_get>\(([^)]+)\)/
enter image description here
我的成绩不错
我在上面评论的代码行阻止了结果,我return什么都没有。
你能帮帮我吗?
如果您的日志消息都将采用相同的格式,您可以使用 glob 而不是 regex(对于像这样复杂的事情,这可能更容易)
fields @message, @timestamp
| parse @message "technical.INFO: Webhook \"*\" (*) has been handle" as uuid, term_to_catch
| sort @timestamp by desc
| display @timestamp, uuid, term_to_catch
如果消息的某些部分(如 technical.INFO )发生变化,您可以随时 * 它们并放置一个虚拟变量来捕获,但随后什么都不做
| parse @message "*: Webhook \"*\" (*) has been handle" as type, uuid, term_to_catch
| display @timestamp, uuid, term_to_catch
或者 - 如果您坚持使用正则表达式 - 那么原因很可能是因为您没有将解析的结果存储为它们自己的变量,因此它们会相互覆盖
| parse @message /your*regex/ as uuid
| parse @message /your*second.regex/ as term_to_catch
也可能会得到您需要的。
我想解析这条消息:
[2021-08-30T14:01:01.443908+00:00] technical.INFO: Webhook "239dfb55-c8f3-4ae2-8974-22dadb7417ba" (wallet.create) has been handle.
拥有:
UUID(此处:239dfb55-c8f3-4ae2-8974-22dadb7417ba)
括号里的字(这里是:wallet.create)
我可以得到UUID,但不能得到括号中的条款。
我认为我的正则表达式是正确的,但是它在 Log Insight 上不起作用:(
我的查询:
fields @message
| filter @message like /technical.INFO: Webhook "/
| parse @message /(?<webhookId>\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b)/
| parse @message /(?<@endpt_get>\(([^)]+)\)/
| sort @timestamp desc
| limit 5
括号中单词的正则表达式:
https://regex101.com/r/ewSm6O/1
如果我评论这行查询:
parse @message /(?<@endpt_get>\(([^)]+)\)/
enter image description here
我的成绩不错
我在上面评论的代码行阻止了结果,我return什么都没有。
你能帮帮我吗?
如果您的日志消息都将采用相同的格式,您可以使用 glob 而不是 regex(对于像这样复杂的事情,这可能更容易)
fields @message, @timestamp
| parse @message "technical.INFO: Webhook \"*\" (*) has been handle" as uuid, term_to_catch
| sort @timestamp by desc
| display @timestamp, uuid, term_to_catch
如果消息的某些部分(如 technical.INFO )发生变化,您可以随时 * 它们并放置一个虚拟变量来捕获,但随后什么都不做
| parse @message "*: Webhook \"*\" (*) has been handle" as type, uuid, term_to_catch
| display @timestamp, uuid, term_to_catch
或者 - 如果您坚持使用正则表达式 - 那么原因很可能是因为您没有将解析的结果存储为它们自己的变量,因此它们会相互覆盖
| parse @message /your*regex/ as uuid
| parse @message /your*second.regex/ as term_to_catch
也可能会得到您需要的。