我正在尝试使用grok将某个日志文件解析为字段,以便在filebeat的摄取管道上使用。这是我的grok模式现在的样子:
%{TIMESTAMP_ISO8601:log_time} %{NOTSPACE:device_id} %{DATA:OS} %{GREEDYDATA:message}
一切正常,但是message字段会像这样关闭:
"message": [
[
"a:d:l: Notifying connector 'DEVICE DISCONNECTED' [sn=0046750038, version=8.0, model=Moto Z2 Play, manufacture=motorola]"
我想让这些项目在消息作为单独的字段。例如:版本到版本字段,模型到模型,制造到制造。这是我正在处理的日志:
2022-07-18 11:55:54,327 [0046750038] [Android] a:d:l: Notifying connector 'DEVICE DISCONNECTED' [sn=0046750038, version=8.0, model=Moto Z2 Play, manufacture=motorola]
我是一个处理grok的初学者,一直在尝试通过我在互联网上看到的东西来实现它,但仍然无法实现。如果有人能帮忙,我会很高兴的!
致以最亲切的问候。
在这种情况下可以使用grok和kv
grok
{
match => {"message" => "%{TIME:TIMESTAMP_ISO8601} [%{WORD:device_id}] [%{DATA:OS}] %{GREEDYDATA:some} '%{GREEDYDATA:status}' [%{GREEDYDATA:device_details}]"}
}
kv {
source => "device_details"
field_split_pattern => ","
value_split => "="
}