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)。