elasticsearch 如何在logstash中使用grok或gsub删除特定单词之前的部分字符串?,elasticsearch,logstash,gsub,logstash-grok,grok,elasticsearch,Logstash,Gsub,Logstash Grok,Grok" /> elasticsearch 如何在logstash中使用grok或gsub删除特定单词之前的部分字符串?,elasticsearch,logstash,gsub,logstash-grok,grok,elasticsearch,Logstash,Gsub,Logstash Grok,Grok" />

elasticsearch 如何在logstash中使用grok或gsub删除特定单词之前的部分字符串?

elasticsearch 如何在logstash中使用grok或gsub删除特定单词之前的部分字符串?,elasticsearch,logstash,gsub,logstash-grok,grok,elasticsearch,Logstash,Gsub,Logstash Grok,Grok,我有一个字符串字段“origin\u message”。它相当大(使用多行来获取邮件内容。例如“origin_message”: 预期结果: Subject goes here AND THE REST OF THE MESSAGE 有没有办法在“主题:”短语之前删减所有内容 我尝试了以下过滤器,但没有成功: filter { mutate { add_field => { "original_message" => "%{message}" } convert =

我有一个字符串字段“origin\u message”。它相当大(使用多行来获取邮件内容。例如“origin_message”:

预期结果:

Subject goes here AND THE REST OF THE MESSAGE
有没有办法在“主题:”短语之前删减所有内容

我尝试了以下过滤器,但没有成功:

filter {
mutate {
    add_field => { "original_message" => "%{message}" }
    convert => {
        "original_message" => "string"
    }

    gsub => [
        "original_message", "^(.*)Subject", " "
    ]
}
}

不知道为什么,但在复制“消息”字段之前,在“消息”字段上使用gsub来分隔“原始消息”字段修复了该问题

filter {
mutate {
    gsub => ["message", "^(.*)Subject", " "]
    add_field => { "original_message" => "%{message}" }

    convert => {
        "original_message" => "string"
    }
}
}

@Val,谢谢验证。问题似乎与模式无关。

不确定原因,但在复制“消息”字段之前,在“消息”字段上使用gsub来分隔“原始消息”字段,解决了问题

filter {
mutate {
    gsub => ["message", "^(.*)Subject", " "]
    add_field => { "original_message" => "%{message}" }

    convert => {
        "original_message" => "string"
    }
}
}

@Val,谢谢验证。问题似乎与模式无关。

使用
gsub
是正确的。当我使用此模式
“^(.*)主题:
,我得到以下输出
“主题转到此处,其余消息”
不幸的是,这在我的情况下不起作用。可能是因为使用多行代码输入数据?我仍然有完整的原始消息。但当事件点击
gsub
过滤器时,所有内容都在一行上,对吗?这就是我现在试图弄清楚的。不确定它是否是一行,但它是一个字符串字段当然可以。使用
gsub
是正确的。当我使用此模式
“^(.*)Subject:
,我得到以下输出
“Subject在这里,其余的消息”
不幸的是,这在我的情况下不起作用。可能是因为使用多行代码输入数据?我仍然有完整的原始消息。但当事件点击
gsub
过滤器时,所有内容都在一行上,对吗?这就是我现在试图弄清楚的。不确定它是否是一行,但它是一个字符串字段当然可以