JSON结构
JSON结构的日志经常由软件组件生产,并被推广为伐木最佳实践。JSON格式化日志易于由各种软件组件生产和消耗,并且是人类可读的。
在日志搜索中展开JSON格式
要在日志搜索中扩展JSON格式,请启用展开json.在日志显示部分下的选项。启用此选项将使有效的JSON日志消息显示为扩展的JSON对象。
JSON解析规范
系统将自动解析按照规定格式化的JSON格式的日志事件JSON规范(IETF RFC 4627)。要利用“分解”选项,条目必须是单个对象({...})或JSON对象数组。嵌入在非结构化数据中嵌入的JSON对象仍将识别为键,但您将无法展开JSON层次结构。笔记
如果有多个键在JSON对象中共享相同名称,则解析器将将最后一个键解释为正确的密钥。
嵌套的json.
您可以使用JSON层次结构进行查询和警报。例如,如果您像下面的示例一样发送日志。
杰森
1
{
2
“体积”:“抱怨”那
3.
“当前的”:{
4.
“乐队”:“rednex”那
5.
“歌曲”:“棉眼乔”那
6.
“成员”:[
7.
{“名”:“肯特”那“姓”:“Olander”}那
8.
{“名”:“城市的”那“姓”:“Landgren”}那
9.
{“名”:“乔纳斯”那“姓”:“Lundstrom”}那
10.
{“名”:“tor”那“姓”:“尼尔森”}
11.
]
12.
}那
13.
“下一个”:{
14.
“乐队”:“石民司”那
15.
“歌曲”:“Finnegan的唤醒”那
16.
“成员”:[
17.
{“名”:“罗尼”那“姓”:“德鲁”}那
18.
{“名”:“卢克”那“姓”:“凯利”}那
19.
{“名”:“Ciaran”那“姓”:“Bourke”}那
20.
{“名”:“巴尼”那“姓”:“mckenna”}
21.
]
22.
}
23.
}
我们使用点表示法为嵌套对象和数组位置的整数。下面我们提供了一些使用点表示法和数组位置的示例查询,您可能会发现有用。
示例查询
你想找到卷是拖欠的
其中(卷=“blaring”)
您想找到当前频段是rednex时。
其中(current.band =“rednex”)
您想找到一名名为“Ciaran”的小型人员
哪里(Next.members.2.firstname =“ciaran”)
这里是关于上面的日志消息示例的查询和生成的匹配的更多示例。
json dot符号 |
火柴 |
|---|---|
Current.Band. |
雷诺克斯 |
Current.Song. |
棉眼睛乔 |
目前 |
“ |
当前.mbers.0 |
“ |
当前.mbers.1.firstname. |
城市的 |
当前.mbers.2.lastname. |
Lundstrom |
警报
如果有人试图使用像“Next.Band”=“Nickelback”这样的模式尝试粘贴一些Nickelback,则可以设置警报,这可以标记消息或根据标签或警报设置消息。
笔记
不支持深度超过10个级别的JSON条目。他们不会被解析。在存储之前完全解决嵌套键,即当前.members不是一个关键
可能需要更新任何预先存在的警报或保存的查询。如果有任何警报或查询,则针对子对象搜索(例如,上面示例中的(频带)),更改可能会破坏您的查询。
我们建议更新您的查询以支持旧查询和新查询。因此,使用上面的示例,您可以查询(频带或Current.Band)。