如何根据splunk中的第一条消息来标记集群
How to label a cluster based on the first Message in splunk
我正在尝试实现以下功能
生成一个 timechart
显示服务器中发生的不同错误的数量
我可以使用下面的查询来实现
index = "my_host" LogLevel=ERROR
| eval Message=mvindex(field1,1)
| timechart count(LogLevel) BY Message
这会生成如下图
按预期工作,现在问题是当我尝试对消息进行聚类时
index = "my_host" LogLevel=ERROR
| eval Message=mvindex(field1,1)
| eval Message=mvindex(field1,1) | cluster t=0.2 field=Message showcount=true labelonly=true | timechart count(LogLevel) BY cluster_label
图表完全符合预期,我现在的挑战是如何标记标签 [1, 2, 3, 4, ...]
用户不友好
是否可以将此标签更改为消息字段但仍按 cluster_label 分组?
您需要将消息字段关联到 cluster_label 字段,然后在 timechart
命令中使用新字段。我能够这样做:
index = "my_host" LogLevel=ERROR
| eval Message=mvindex(field1,1)
| eval Message=mvindex(field1,1)
| cluster t=0.2 field=Message showcount=true labelonly=true
| bin span=30m _time
| stats count, first(Message) as CL by cluster_label, _time
| timechart max(count) BY CL
需要 stats
命令来获取每个 cluster_label 的第一条消息,并且需要 bin
来按 _time 对事件进行分组,因此 timechart
将正常工作。在 bin
命令中选择跨度以匹配您的时间 window。
这种方法的一个缺点是 timechart
命令不能自动 select 一个跨度,因为这是由 bin
完成的。
我正在尝试实现以下功能
生成一个 timechart
显示服务器中发生的不同错误的数量
我可以使用下面的查询来实现
index = "my_host" LogLevel=ERROR
| eval Message=mvindex(field1,1)
| timechart count(LogLevel) BY Message
这会生成如下图
按预期工作,现在问题是当我尝试对消息进行聚类时
index = "my_host" LogLevel=ERROR
| eval Message=mvindex(field1,1)
| eval Message=mvindex(field1,1) | cluster t=0.2 field=Message showcount=true labelonly=true | timechart count(LogLevel) BY cluster_label
图表完全符合预期,我现在的挑战是如何标记标签 [1, 2, 3, 4, ...]
用户不友好
是否可以将此标签更改为消息字段但仍按 cluster_label 分组?
您需要将消息字段关联到 cluster_label 字段,然后在 timechart
命令中使用新字段。我能够这样做:
index = "my_host" LogLevel=ERROR
| eval Message=mvindex(field1,1)
| eval Message=mvindex(field1,1)
| cluster t=0.2 field=Message showcount=true labelonly=true
| bin span=30m _time
| stats count, first(Message) as CL by cluster_label, _time
| timechart max(count) BY CL
需要 stats
命令来获取每个 cluster_label 的第一条消息,并且需要 bin
来按 _time 对事件进行分组,因此 timechart
将正常工作。在 bin
命令中选择跨度以匹配您的时间 window。
这种方法的一个缺点是 timechart
命令不能自动 select 一个跨度,因为这是由 bin
完成的。