Splunk Search

starttime, endtimeを代入することは可能でしょうか?

kaoriaraki
Explorer

2種類のシステムから出力されるログA,Bがあり、Aのログに含まれる時間の値を使って、Bのログを検索したいと考えています。
Log:Aを検索し、Aに含まれるUseStartおよびUseEndの値をLog:Bの検索時にそれぞれstarttime,endtimeに代入して使用することは可能でしょうか?可能な場合具体的な指定方法をアドバイスいただけると助かります。

Log:A(sourcetype=aaa)
2013/03/06 15:52:25 ServerIP=192.168.1.1 ServerUser=Admin01 UseStart=2013/03/06 8:00:00 UseEnd=2013/03/08 17:00:00

Log:B(sourcetype=bbb)
2013/03/06 15:55:39 ServerUser=Admin01 Message="Accepted password" ServerIP=192.168.1.1
2013/03/06 15:55:39 ServerUser=Admin01 Message="session closed" ServerIP=192.168.1.1
2013/03/06 15:55:39 ServerUser=Admin01 Message="session opened" ServerIP=192.168.1.1

Tags (2)
1 Solution

bananaman
Path Finder

いくつかの方法がありますが、基本的なサブサーチを利用した場合は
以下のようなサーチ例にて実現出来るかと思います。お試し下さい。

  1. Log:A 内の"UseStart"に相当するタイムスタンプを抽出
  2. Log:A 内の"UseEnd"に相当するタイムスタンプを抽出
  3. 1.と2. を次のサーチで使う"earliest"及び"latest"として、次のサーチへ渡す
  4. 1.~3.のサーチに続けて2番目のサーチとして Log:Bを対象とする

[search sourcetype="aaa"
| rex field=_raw "UseStart=(?\d+/\d+/\d+ \d+:\d+:\d+)"
| eval earliest = strptime(start, "%Y/%m/%d %H:%M:%S")
| rex field=_raw "UseEnd=(?\d+/\d+/\d+ \d+:\d+:\d+)"
| eval latest = strptime(end, "%Y/%m/%d %H:%M:%S")
| fields earliest,latest
| format "(" "(" " " ")" "OR" ")" ]
sourcetype="bbb"

[ ...] 内が1番目のサーチです。括弧の後、最後のsourcetype=....が2番目のサーチです。
勿論、ここでLog:Bの条件を更にフィルタすることも可能です。

View solution in original post

kaoriaraki
Explorer

意図した通りのサーチができました。ありがとうございます!

0 Karma

bananaman
Path Finder

いくつかの方法がありますが、基本的なサブサーチを利用した場合は
以下のようなサーチ例にて実現出来るかと思います。お試し下さい。

  1. Log:A 内の"UseStart"に相当するタイムスタンプを抽出
  2. Log:A 内の"UseEnd"に相当するタイムスタンプを抽出
  3. 1.と2. を次のサーチで使う"earliest"及び"latest"として、次のサーチへ渡す
  4. 1.~3.のサーチに続けて2番目のサーチとして Log:Bを対象とする

[search sourcetype="aaa"
| rex field=_raw "UseStart=(?\d+/\d+/\d+ \d+:\d+:\d+)"
| eval earliest = strptime(start, "%Y/%m/%d %H:%M:%S")
| rex field=_raw "UseEnd=(?\d+/\d+/\d+ \d+:\d+:\d+)"
| eval latest = strptime(end, "%Y/%m/%d %H:%M:%S")
| fields earliest,latest
| format "(" "(" " " ")" "OR" ")" ]
sourcetype="bbb"

[ ...] 内が1番目のサーチです。括弧の後、最後のsourcetype=....が2番目のサーチです。
勿論、ここでLog:Bの条件を更にフィルタすることも可能です。

melonman
Motivator

バックスラッシュが投稿時に消えてしまっているので、いかのようにdの前にバックスラッシュをいれれば大丈夫かと思います。

... | rex field=_raw "UseStart=(?\d+/\d+/\d+ \d+:\d+:\d+)" | ...

そして、サーチの最後に、以下を付け加えれば、表になりますが、こちらは結果に合わせて調整いただければと思います。

... | stats first(Message) last(Message) list(Message) by ServerUser ServerIP

0 Karma
Get Updates on the Splunk Community!

Detecting Remote Code Executions With the Splunk Threat Research Team

WATCH NOWRemote code execution (RCE) vulnerabilities pose a significant risk to organizations. If exploited, ...

Enter the Splunk Community Dashboard Challenge for Your Chance to Win!

The Splunk Community Dashboard Challenge is underway! This is your chance to showcase your skills in creating ...

.conf24 | Session Scheduler is Live!!

.conf24 is happening June 11 - 14 in Las Vegas, and we are thrilled to announce that the conference catalog ...