Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 日志模式的grok过滤器_Regex_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash Grok - Fatal编程技术网 elasticsearch,logstash-grok,Regex,elasticsearch,Logstash Grok" /> elasticsearch,logstash-grok,Regex,elasticsearch,Logstash Grok" />

Regex 日志模式的grok过滤器

Regex 日志模式的grok过滤器,regex,elasticsearch,logstash-grok,Regex,elasticsearch,Logstash Grok,我有一个日志模式,就是这个表单 field1|field2|field3|field4|field5| key1=value1 key2=value2 key3=value3 键值对可以按任意顺序排列。键2可能早于键1 我能够解析field1-field5。但不确定如何为键值对执行此操作 %{GREEDYDATA:fieldValue1}\|%{GREEDYDATA:fieldValue2}\|%{GREEDYDATA:fieldValue3}\|%{GREEDYDATA:fieldValue

我有一个日志模式,就是这个表单

field1|field2|field3|field4|field5| key1=value1 key2=value2 key3=value3
键值对可以按任意顺序排列。键2可能早于键1

我能够解析field1-field5。但不确定如何为键值对执行此操作

%{GREEDYDATA:fieldValue1}\|%{GREEDYDATA:fieldValue2}\|%{GREEDYDATA:fieldValue3}\|%{GREEDYDATA:fieldValue4}\|%{GREEDYDATA:fieldValue5}\|
我可以在
grok
中创建键值映射,然后发送特定的键值吗???
有什么建议吗?

您可以使用kv筛选器解析其他部分。比如:

grok {
    match => { "message" => "%{GREEDYDATA:fieldValue1}\|%{GREEDYDATA:fieldValue2}\|%{GREEDYDATA:fieldValue3}\|%{GREEDYDATA:fieldValue4}\|%{GREEDYDATA:fieldValue5}\| %{GREEDYDATA:keyValue}" }
 }
kv {
    source => "keyValue"
}

您可以使用kv过滤器来解析其他部分。比如:

grok {
    match => { "message" => "%{GREEDYDATA:fieldValue1}\|%{GREEDYDATA:fieldValue2}\|%{GREEDYDATA:fieldValue3}\|%{GREEDYDATA:fieldValue4}\|%{GREEDYDATA:fieldValue5}\| %{GREEDYDATA:keyValue}" }
 }
kv {
    source => "keyValue"
}

如果始终有3个键值对,则只需添加3个
\s*(?\w+)=(?\w+)
:尝试
%{GREEDYDATA:fieldValue1}\\\\\\%{GREEDYDATA:fieldValue2}\\\\\\\%{GREEDYDATA:fieldValue4}\\\\%{GREEDYDATA:fieldValue5}\\\\\s*(?\w+)=(?\w+)\s*(?\w+)\s*(?\w+)\w=(?\w+)如果始终有键值对,您只需添加3个
\s*(?\w+)=(?\w+)
:尝试
%{GREEDYDATA:fieldValue1}\\\\\%{GREEDYDATA:fieldValue2}\\\\\\\\%{GREEDYDATA:fieldValue4}\\\\\\\\\\\s*(?\w=(?\w+)(?\w+)\w+)\s*(?\w+)=(?\w+)\s*(?\w=(?\w+)+)\s*(?\alpert=(?\w=)))。完美的谢谢阿尔伯特。完美的