0

我对 splunk 还很陌生。我们有三个 hbase 集群,所有这些集群都有多个 zookeeper 节点和区域服务器,就像我在下面提到的那样。

集群 1

test101.blah.com
test102.blah.com
..
test199.blah.com

集群 2

test201.blah.com
test202.blah.com
..
test299.blah.com

集群 3

test301.blah.com
..
test399.blah.com

我正在尝试过滤以特定集群为中心的日志。所以我使用生成器来创建像这样的过滤语句host="test101.blah.com" or host=test102.blah.com"..or host="test199.blah.com",并为其他集群构建相同的查询。

我知道它效率低下。有没有一种有效的方法通过正则表达式或通过 splunk 的模式匹配来做到这一点?

4

2 回答 2

3

我找到了一个更简单的替代方法来解决这个问题而无需正则表达式,但直接使用 splunk 功能,我对三个集群的规则最终是这样的。

host>="test101*" AND host<="test199*" 
host>="test201*" AND host<="test299*"
host>="test301*" AND host<="test399*"
于 2013-03-19T20:51:03.577 回答
0

按集群搜索示例主机名的最简单答案是: 对于 Cluster1:host="test1*" 对于 Cluster2:host="test2*" 对于 Cluster3:host="test3*"

如果您在大型数据集上执行大量此类操作,您可能需要测试比较的效率。

您可能希望能够通过集群执行进一步的操作,例如统计数据或时间表,因此我建议您使用 eval、rex、props.conf 中的字段提取或创建自定义字段来为“集群”创建一个新字段在索引时间进行最快的搜索。

例如,对于“rex”,这会从您的基本搜索中获取事件并在“host”字段中查找“test”模式,然后将以下数字捕获到名为“cluster”的字段中:

 | rex field=host "(?i)test(?P<cluster>[\\d])"

所以现在您可以按集群显示统计信息:

 | rex field=host "(?i)test(?P<cluster>[\\d])" | stats count by cluster
于 2013-03-26T17:01:36.527 回答