JSON结构
JSON结构化日志由软件组件定期生成,并被推广为日志记录的最佳实践。JSON格式的日志很容易被各种软件组件生成和使用,并且是人类可读的。
在日志搜索中展开JSON格式
要在日志搜索中扩展JSON格式,请启用展开JSON.选项。启用此选项将使一个有效的JSON日志消息显示为一个扩展的JSON对象。
JSON解析规范
系统会自动解析JSON格式的日志事件格式符合JSON规范(IETF RFC 4627)。要利用以下方法选项,条目必须是单个对象({...})或JSON对象数组。嵌入在非结构化数据中嵌入的JSON对象仍将识别为键,但您将无法展开JSON层次结构。笔记
如果有多个键在JSON对象中共享相同名称,则解析器将解释最后一个键作为正确的密钥。
嵌套的JSON
您可以使用JSON层次结构进行查询和警报。例如,如果您正在像下面的示例一样发送日志。
json
1{2“体积”:“抱怨”,3.“当前”:{4“乐队”:“rednex”,5“歌”:“棉花眼睛乔”,6“成员”:[7{“firstname”:“肯特”,“姓”:“奥兰德”},8{“firstname”:“城市”,“姓”:“Landgren”},9{“firstname”:“乔纳斯”,“姓”:“Lundstrom”},10{“firstname”:“托”,“姓”:“尼尔森”}11]12},13“下一个”:{14“乐队”:“石民司”,15“歌”:“《芬尼根的守灵》时”,16“成员”:[17{“firstname”:“罗尼”,“姓”:“画”},18{“firstname”:“路加福音”,“姓”:“凯利”},19{“firstname”:“Ciaran”,“姓”:“伯克”},20.{“firstname”:“巴尼”,“姓”:“mckenna”}21]22}23}
我们用点符号表示嵌套对象,用整数表示数组位置。下面我们提供了一些使用点符号和数组位置的查询示例,您可能会觉得有用。
示例查询
你想知道什么时候音量过大
(体积=“刺耳”)
您想找到当前频段是rednex时。
其中(current.band =“rednex”)
您想找到名为“Ciaran”的小型人员的成员
(next.members.2的地方。firstname = " Ciaran”)
下面是基于上面日志消息示例的查询和结果匹配的更多示例。
json dot符号 |
匹配 |
---|---|
Current.Band. |
rednex |
current.song |
棉花盯着乔 |
current.members |
“ |
current.members.0 |
“ |
当前..MEMBERS.1.FIRSTNAME. |
城市 |
当前..MEMBERS.2.LASTNAME. |
Lundstrom |
报警
你可以设置一个警告,如果有人试图用“下一个”这样的模式粘上五分钱乐队。Band " = " nickelback "这可以标记消息或发送电子邮件的基础标签或警报设置。
笔记
不支持深度超过10级的Json条目。它们将不会被解析。嵌套键在存储之前被完全解析,即当前键。成员不是关键
任何预先存在的警报或保存的查询可能需要更新。如果有任何针对子对象的警报或查询(例如上面例子中的where(band)),更改可能会破坏查询。
我们建议更新您的查询,以支持旧的和新的查询。所以使用上面的例子,你可以查询where(band OR current.band)。