如何匹配grok中出现0次或1次的数据?
How to match a data that appears 0 or 1 times in grok?
如果有人能帮助我解决 logstash frok,我将不胜感激。
我正在尝试为以下示例创建一个 grok 定义。我的目标是将 subject 解析为一个字段。
- t1='t1', t2='t2', 主题='subj', t3='hoge'
- t1='t1'、主题='subj'、t3='hoge'
- t1='t1', t3='hoge'
如果 subject 始终存在,则以下工作正常。
t1=%{QS}, (%{NOTSPACE:key}=%{NOTSPACE:value}, )*subject=%{QS:subject}
但是,我需要处理 3 号样本,所以如果我如下更改 grok 定义,然后是 1 号样本。和No2。现在不工作。
t1=%{QS}, (%{NOTSPACE:key}=%{NOTSPACE:value}, )*(subject=%{QS:subject})?
是否有适用于所有示例的好的 grok 定义?
你最好的选择可能是有条件地解析主题:
if [message] =~ /subject/ {
grok {
match => { "message" => "subject=%{QS:subject}" }
}
}
您仍然可以进行无条件 grok
,所有比赛都将添加到活动中。
如果有人能帮助我解决 logstash frok,我将不胜感激。
我正在尝试为以下示例创建一个 grok 定义。我的目标是将 subject 解析为一个字段。
- t1='t1', t2='t2', 主题='subj', t3='hoge'
- t1='t1'、主题='subj'、t3='hoge'
- t1='t1', t3='hoge'
如果 subject 始终存在,则以下工作正常。
t1=%{QS}, (%{NOTSPACE:key}=%{NOTSPACE:value}, )*subject=%{QS:subject}
但是,我需要处理 3 号样本,所以如果我如下更改 grok 定义,然后是 1 号样本。和No2。现在不工作。
t1=%{QS}, (%{NOTSPACE:key}=%{NOTSPACE:value}, )*(subject=%{QS:subject})?
是否有适用于所有示例的好的 grok 定义?
你最好的选择可能是有条件地解析主题:
if [message] =~ /subject/ {
grok {
match => { "message" => "subject=%{QS:subject}" }
}
}
您仍然可以进行无条件 grok
,所有比赛都将添加到活动中。