0

私はsplunkにかなり慣れていません。3 つの hbase クラスターがあり、そのすべてに複数の ZooKeeper ノードとリージョン サーバーがリストされています。

クラスタ 1

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

クラスター2

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

Cluster3

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 機能を直接使用すると、3 つのクラスターのルールがこれになりました。

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 に答える