2016-11-30 52 views
0

二○一六年十一月三十○日15不断匹配场09.3060 DEBUG 20 Company.Product.LoggerDataFilter [UOW:583ee57782fe0140c6dfbfd8] [DP:0]创建 DeviceDataTransformationRequest为记录器 [d:4E3239200C5032593D004100 ]。logstash在消息

%{TIMESTAMP_ISO8601:时间戳}%{LOGLEVEL:记录等级} \ S +%{INT:的threadId} %{DATA:loggerName}%{UOW}%{DATAPACKET}%{GREEDYDATA:消息} %{DEVICEID}

的输出是

{ 
    "timestamp": [ 
    "2016-11-30 15:43:09.3060" 
    ], 
    "loglevel": [ 
    "DEBUG" 
    ], 
    "threadId": [ 
    "20" 
    ], 
    "loggerName": [ 
    "Tts.IoT.DataLogger.Etl.Core.Filters.LoggerDataFilter" 
    ], 
    "correlationId": [ 
    "583ee57782fe0140c6dfbfd8" 
    ], 
    "datapacket": [ 
    "0" 
    ], 
    "message": [ 
    "Creating DeviceDataTransformationRequest for logger" 
    ], 
    "deviceId": [ 
    "4E3239200C5032593D004100" 
    ] 
} 

这是很好的 - 除了 - 消息现在缺乏的,我提取的DeviceID属性。 我希望它们都是 - 作为一个单独的领域,并且仍然保留在消息中。

你能这样做吗?

(在一个侧面说明...如何将结构化记录像serilog帮助在这方面?)

+0

到目前为止,'DEVICEID'出现在'message'内吗? – Kulasangar

+0

是的,比较“消息”结果与原始消息([D:4E32 ...])是DEVICEID(我有一个自定义Grok模式) – lapsus

回答

0

如何试图改变它

%{GREEDYDATA:消息}%{} DEVICEID

%{GREEDYDATA:testmessage} %{DEVICEID}
再增加一个字段

mutate { 
    add_field => { 
    "message" => "%{testmessage} %{DEVICEID}" 
    } 
    remove_field => ["testmessage"] 
}