我有一个如下的日志条目:
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
我有几个问题:
由于我使用的spath不带'path'参数,因此它以auto_exec模式运行,并且仅使用前5000个字符,因此未绘制我的整个表格。如果我指定路径,则输出为我认为的列表形式,我不知道该如何绘制表格。
是否有更好的方法来解决这个问题?
是否还有一种方法可以在给定的时间戳记下获取表。比如显示一个表或事件的时间戳,然后使用事件在那个时间戳上绘制表?
谢谢