首页 > 解决方案 > Grok 使用嵌套 JSON 解析日志文件

问题描述

我正在尝试使用 Grok 解析器(在 Datadog 的日志服务内部)来提取以下日志行中的 json 键:值(别担心,我随机化了一些值):

[INFO]  2021-08-09T23:20:48.282Z    49be9ba-000c-4d90-1011-10101001 Received event: {"PayloadData": "Yq==", "WirelessDeviceId": "abcd1234-abc12-3456-78910-abc9adkasd", "WirelessMetadata": {"LoRaWAN": {"ADR": true, "Bandwidth": 125, "ClassB": false, "CodeRate": "4/5", "DataRate": "3", "DevAddr": "019cf43e", "DevEui": "844oda0000006a80", "FCnt": 2530, "FOptLen": 0, "FPort": 10, "Frequency": "903900000", "Gateways": [{"GatewayEui": "abc123fffp09fd12", "Rssi": -102, "Snr": 8}], "MIC": "31p41ed2", "MType": "UnconfirmedDataUp", "Major": "LoRaWANR1", "Modulation": "LORA", "PolarizationInversion": false, "SpreadingFactor": 7, "Timestamp": "2021-08-09T23:20:47Z"}}}

但我无法完全弄清楚如何正确地做到这一点。Grok 感觉非常乏味和脆弱。日志的格式与上面相同,但显然值在不断变化。

关于如何开始正确的道路的任何建议?

标签: jsonparsingloggingdatadoggrok

解决方案


推荐阅读