【发布时间】:2017-03-07 13:45:42
【问题描述】:
我正在尝试过滤与我拥有的少数模式匹配的日志。例如:
E/vincinity/dholland_view_sql_global/IN/Cluster_Node/SSL-CACHE/Dsal1
F/vincinity/dholland_view_sql_local/IN/Cluster_Node3/SSL-CACHE/Dsal4
R/vincinity/dholland_view_sql_bran/IN/Cluster_Node/Sample/vr1.log
现在我想从一堆日志中 grep 这 3 条路径:基本上我要提取的模式是包含“vincinity”、“sql”和“IN”的日志,所以使用正则表达式它只是*vincinity*sql*IN*
我试过这个 grok 过滤器:
grok {
match => { "Vinc" => "%{URIPATHPARAM:*vincinity*sql*IN*}" }
}
然后我在 kibana 中得到 _grokparsefailure - 我是 grok 的新手,所以也许我没有正确处理这个问题。
【问题讨论】:
-
你的表达很接近。
(?<field_name>.*?vincinity.*?sql.*?IN.*)可能适合你。.*?构造是.*的非贪婪等价物,因此应该使其性能更好一些。更少的子字符串搜索。
标签: elasticsearch logstash logstash-grok