Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Logstash config--根据正则表达式捕获组添加字段_Regex_Split_Logstash_Logstash Grok_Logstash Configuration - Fatal编程技术网

Regex Logstash config--根据正则表达式捕获组添加字段

Regex Logstash config--根据正则表达式捕获组添加字段,regex,split,logstash,logstash-grok,logstash-configuration,Regex,Split,Logstash,Logstash Grok,Logstash Configuration,因此,我有一个hostname字段,看起来像: amma-pr-app-03.hst.hosting.com 我制作了以下正则表达式: ([^-]{4,5})-(pr|st)-(app|svc|srv)-(d+) 它应该分成4个捕获组——在本例中为 安装-安马 域-pr 服务-应用程序 节点-03 鉴于当前的捕获组,我将如何变异 我尝试添加字段,然后使用$1中的值 有人对此有什么建议吗?您可以这样命名您的捕获组: (?<field_name>pattern) (?<insta

因此,我有一个hostname字段,看起来像:

amma-pr-app-03.hst.hosting.com

我制作了以下正则表达式:

([^-]{4,5})-(pr|st)-(app|svc|srv)-(d+)

它应该分成4个捕获组——在本例中为

安装-安马

域-pr

服务-应用程序

节点-03

鉴于当前的捕获组,我将如何变异

我尝试添加字段,然后使用$1中的值


有人对此有什么建议吗?

您可以这样命名您的捕获组:

(?<field_name>pattern)
(?<installation>[^-]{4,5})-(?<domain>(pr|st))-(?<service>(app|svc|srv))-(?<node>(\d+))
(?模式)
使用此选项,您的grok图案可以如下所示:

(?<field_name>pattern)
(?<installation>[^-]{4,5})-(?<domain>(pr|st))-(?<service>(app|svc|srv))-(?<node>(\d+))
(?[^-]{4,5})-(?(pr|st))-(?(app|svc|srv))-(?(\d+)

作为一个问题,这是否适用于filebeat添加的字段?主机名不是日志文件本身的一部分,而是发送日志时filebeat添加的内容的一部分。据我所知,我的logstash配置与“message”字段匹配,该字段位于该字段之前。您手动添加或使用Filebeat自动添加的任何字段都应该可以在您的logstash筛选器中访问。酷,让我来测试一下(有人刚刚重新启动了我的VM,但您的答案似乎完全符合我的需要)这似乎不起作用,我在以下位置提出了一个新问题: