web-dev-qa-db-ja.com

2つのクエリを組み合わせて1つの回答を得る方法をSplunk

私はSplunkに非常に慣れていないので、基本的に深いところに落とされました!!言語にも非常に新しいので、以下のヘルプやヒントは素晴らしいでしょう。

取得しようとしている結果は、クエリに参加して、ユーザー名、ID、およびログイン数を取得することです。

クエリは、diff source、sourcetype、およびHostからのものです。

クエリ1はユーザー名とID、クエリ2はユーザー名とログイン数です。

クエリ1:userName = "" entityNumber = "" | eval userName = upper(userName)| dedup userName、entityNumber | userの名前をUserに変更します。テーブルUser、entityNumber

クエリ2:「ログインに成功しました。」 | rex field = _raw "ユーザー[\":] (?[^\"IP])" | eval User = upper(User)|テーブルユーザー|ユーザーごとの統計カウント

よろしくお願いします。 J

2
James

Skoelpinが言ったように、 joinコマンド を使用することをお勧めします:

myQuery1 | join commonField [search myQuery2]

あなたの状況では、これは次のようなものにつながります:

userName="" entityNumber="" | eval userName=upper(userName) | dedup userName, entityNumber | rename userName as User | table User, entityNumber 
| join User 
[search "Successfully logged in." | rex field=_raw "User[\":](?[^\"IP])"| eval User=upper(User) | Table User | stats count by User]

クエリが遅くなる可能性があること、および提案されたskoelpinのようなインデックスを指定してサブクエリを最適化する必要があることに注意してください。

1
Akah

これを試してください、それはユーザーに参加します。検索ではインデックスとソースタイプも指定する必要があります

userName = "" entityNumber = "" | eval userName = upper(userName)| dedup userName、entityNumber | userの名前をUserに変更します。テーブルユーザー、エンティティ番号|ユーザーに参加[| 「正常にログインしました。」を検索します。 | rex field = _raw "User \": "| eval User = upper(User)| table User | Stats count by User]

0
skoelpin