我的日志中有相同的域名:
queryname= domain.com
queryname= sub1.domain.com
queryname= sub-2.sub1.domain.com
queryname= suB3.sub-2.sub1.domain.com
我想只在logstash中进入没有子域的域。如何在mutate gsub中做到这一点?
尝试这样做,但它不起作用
mutate {
gsub => [ "queryname", "(?!([a-zA-Z0-9\-]{0,61})\.([a-zA-Z]{2,6})$)", "" ]
}
有点困惑,会很高兴任何建议。感谢
答案 0 :(得分:0)
试试这个RegEx:
queryname=\s*([\w-]+\.)*(\w+\.\w+)$
工作原理:
queryname=\s* # 'queryname= ' Part
( # Sub-Domains
[\w-]+ # Letters
\. # . (Dot)
)* # Sub-Domains are Optional
( # domain.com
\w+ # Letters (domain)
\. # . (Dot)
\w+ # Letters (com)
)
$ # ... String ends with Sub-Domain
该域名将存储在第二组
中