繁体   English   中英

Logstash grok 模式提取字符串的一部分以开头和结尾

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM