在splunk中将大json绘制为表格

时间:2018-08-17 14:23:10

标签: splunk splunk-query

我有一个如下的日志条目:

  

16AUG2018_23:46:03.801 36782:140312466769856 INFO [monitor.py:102]   msg = {“ report”:[{“ name”:“ task1”,“ status”:“ Running”,“ cluster”:   “ gghi1”,“ pid”:“ 98982”,“ core”:“ 12”},{“ name”:“ task2”,“ status”:   “正在运行”,“集群”:“ gghx3”,“ pid”:“ 12232”,“核心”:“ 15”},{“名称”:   “ task3”,“ status”:“ Down”,“ cluster”:“ gghi1”,“ pid”:“ 91932”,“ core”:   “ 13,41”},{“ name”:“ task4”,“ status”:“正在运行”,“ cluster”:“ xdds2”,   “ pid”:“ 12112”,“ core”:“ 2-55”}]}

JSON数组中的条目更多,并且具有超过5000个字符。

我想在splunk上绘制一张表(用于名称,状态,群集和核心)。我想使用最新的此类事件来绘制表格。我使用了以下搜索。

sourcetype=montask | sort _time desc | head 1 
  | rex "msg=(?<msg>.*)" 
  | spath input=msg 
  | rename "report{}.*" AS *
  | eval zipped=mvzip(core, mvzip(cluster, mvzip( name, status, "#"), "#"), "#")
  | mvexpand zipped
  | eval zipped=split( zipped, "#" )
  | eval core=mvindex( zipped, 0 )
  | eval cluster=mvindex( zipped, 1 )
  | eval name=mvindex( zipped, 2 )
  | eval status=mvindex( zipped, 3 )
  | table name, status, cluster, core

我有几个问题:

  1. 由于我使用的spath不带'path'参数,因此它以auto_exec模式运行,并且仅使用前5000个字符,因此未绘制我的整个表格。如果我指定路径,则输出为我认为的列表形式,我不知道该如何绘制表格。

  2. 是否有更好的方法来解决这个问题?

  3. 是否还有一种方法可以在给定的时间戳记下获取表。比如显示一个表或事件的时间戳,然后使用事件在那个时间戳上绘制表?

谢谢

0 个答案:

没有答案