如果有人能帮我解决问题,我感激不尽。
我正在尝试为以下示例创建单个grok定义。我的目标是将主题解析为一个字段。
如果主题始终存在,则以下工作正常。
t1=%{QS}, (%{NOTSPACE:key}=%{NOTSPACE:value}, )*subject=%{QS:subject}
但是,我需要处理3号样本,所以如果我改变如下的grok定义,那么样本No1。和No2。现在不行。
t1=%{QS}, (%{NOTSPACE:key}=%{NOTSPACE:value}, )*(subject=%{QS:subject})?
是否有适用于所有样品的良好的grok定义?
答案 0 :(得分:1)
你最好的选择可能只是有条不紊地解析主题:
if [message] =~ /subject/ {
grok {
match => { "message" => "subject=%{QS:subject}" }
}
}
您仍然可以执行无条件grok
,所有匹配都会添加到活动中。