elasticsearch 如何在logstash中使用grok或gsub删除特定单词之前的部分字符串?
我有一个字符串字段“origin\u message”。它相当大(使用多行来获取邮件内容。例如“origin_message”: 预期结果: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 =
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
过滤器时,所有内容都在一行上,对吗?这就是我现在试图弄清楚的。不确定它是否是一行,但它是一个字符串字段当然可以