[英]Logstash grok pattern to extract a part of String starts with and ends with
我正在尝试提取应用程序 ID。
作为一个例子,我需要提取
应用程序_1621858977521_0074
从以下日志行
/yarn/container-logs/application_1621858977521_0074/container_1621858977521_0074_01_000004 [2021-06-08 05:40:06,231] INFO Changing view acls groups to: (org.apache.spark.SecurityManager)
我尝试了以下自定义 grok 模式,但不起作用。
%{(^application_:/$):appID}%
感谢您的建议和帮助
您可以使用
/(?<applicationId>application(?:_[0-9]+)+)/
快速的替代方案是:
/(?<applicationId>application(?:_\w+)+)/
/(?<applicationId>application_[^/]*)
请参阅正则表达式演示。
模式(添加/
作为路径分隔符):
/
- 一个/
字符(?<applicationId>application(?:_[0-9]+)+)
- 组“applicationId”: application
,然后是一个或多个重复的_
和一个或多个数字/
- 一个/
字符[^/]*
- 除/
之外的零个或多个字符。Grok 调试器使用给定的字符串显示以下 output :
{
"applicationId": [
[
"application_1621858977521_0074"
]
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.