[英]Find a character based on position and match everything after in regex and logstash
这是我的字符串:
msg:检测到恶意软件/病毒 - Rtf.Exploit.CVE_2017_11882-6584355-0:消息被拒绝发送:公告:明天假期
上面的字符串是一个日志行。 我想找到第三个冒号并匹配它后面的所有内容。 Announcement: Holiday Tomorrow
是一个主题标题,所以我可以有一个冒号或没有。
到目前为止我试过这个
[^:]+$ // Holiday Tomorrow
(?<=:).*$ // Malware/Virus detected - Rtf.Exploit.CVE_2017_11882-6584355-0:Message denied for delivery:Announcement: Holiday Tomorrow"
我将在我的 logstash 配置中使用正则表达式。
grok {
match {
"msg" => "(regex here)%{GREEDYDATA:subject}"
}
}
试试这个(但我对 lagstash 一无所知):
(?:.+?:){3}(.*)
捕获组 1 将有你想要的
跳过 3 .+:
并捕获其余部分。
为此特定日志放弃了 logstash 中的正则表达式。 相反,我修改了我的日志/字符串以具有“主题 - ”部分。 所以logstash配置可以很简单从此
msg:检测到恶意软件/病毒 - Rtf.Exploit.CVE_2017_11882-6584355-0:消息被拒绝传送:主题 - 公告:明天假期
对此
msg:检测到恶意软件/病毒 - Rtf.Exploit.CVE_2017_11882-6584355-0:消息被拒绝传送:主题 - 公告:明天假期
grok {
match {
"msg" => "Subject - %{GREEDYDATA:headerSubject}"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.