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

标签 elasticsearch logstash gsub logstash-grok grok

我有一个字符串字段“origin_message”。它非常大(用于接收邮件内容的多行代码。“origin_message”的示例:

Delivered-to: somemail@domain.com A LOT OF OTHER CONTENT Subject: Subject goes here AND THE REST OF THE 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", " "
    ]
}
}

最佳答案

不确定为什么,但是在将其复制到单独的“original_message”字段之前在“消息”字段上使用gsub可以解决此问题。

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

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

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

关于elasticsearch - 如何在Logstash中使用grok或gsub删除特定单词之前的字符串部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41762384/

相关文章:

spring - 使用Spring数据Elasticsearch存储库搜索进行别名并保持冲突

elasticsearch - 使用 Docker 尝试销售或应用程序。 Elasticsearch 连接问题

elasticsearch - Logstash无法在Windows 10中创建索引

ruby - 使用 select 而不是 gsub 来避免在 Ruby 中进行多个正则表达式评估

R:重命名数据框中变量的子集

r - 使用 R 中的 gsub 部分替换字符串中的正则表达式模式?

elasticsearch - 如何使用Elasticsearch生成数字属性的分位数分布?

couchdb - 沙发床和可能吗?

Elasticsearch 无法访问 : Connection refused

elasticsearch - ElasticSearch在使用LogStash进行索引时分配自己的ID