Splunkでイベントをグループ化する
[Master Joining Datasets
Without Using Join])https://conf.splunk.com/files/2019/slides/FNC2751.pdf)
や
About event grouping and correlation
に書いてあることを改めてまとめてみたいと思います。
でも書いてなかったか〜
解説
- データの1つのサブセットは静的なままか、ほとんど変化しないですか?
-
lookup
を使ってください
-
- 検索条件を単純な分離として書けますか?
- 条件付き eval 式でグループ化を定義できますか?
- 一定時間以上の大きなグループを分割しますか?
-
transaction
を使ってください
-
- IDなどのフィールド値でグループ化を定義できますか?
- このフィールドは再利用されますか?(そうでなければ、それらは一意です)
- グループ化されたイベントの全文を見る必要がありますか?
-
transaction
を使ってください
-
- 開始や終了などのパターンでグループ化を定義できますか?
-
transaction
を使ってください
-
-
stats
を使ってください - コマンド一つでは無理です。
- 一定時間以上の大きなグループを分割しますか?
-
join
かappend
を使ってください。
transaction
人気
条件付き eval 式でグループ化を定義できますか? がここの肝だと思う。
Splunkで先月比のグラフをつくるとか、検索期間とかindexとかsourcetypeが別な検索結果をくっつけようとした時、単純に考えるとjoin
を使いたくなります。
でもjoin
が使える≒stats
でまとめられる。のはず。
例
あんまりよくない例だけど
index=_audit earliest=-2w@d
| eval period=if(_time < relative_time(now(),"-1w@d"),"last_week","current_week")
| timechart cont=f count by period
| eval weekday=strftime(_time,"%A")
| stats max(_time) as _time sum(*) as * by weekday
| fields - weekday
| sort _time
index=_audit earliest=-2w@d
| eval period=if(_time < relative_time(now(),"-1w@d"),"last_week","current_week")
| timechart cont=f count by period
| eval weekday=strftime(_time,"%A")
| stats max(_time) as _time sum(*) as * by weekday
| fields - weekday
| sort _time
2行目のeval
でやっているように、条件に応じてラベルをつけてあげれば、あとは集計(stats
,chart
,timechart
)でなんとかなる。
timechart
後にstats
はイベントがない期間を0
にすることもできていろいろと応用が聞きますね
evalで条件はこんな感じでもかけますので、いろいろと頑張りがいがあります。
(index=_audit earliest=-60m) OR (index=_internal user=* earliest=-10m)
| eval header=index.":".user
| timechart cont=f span=1m count by header
| rename VALUE_* as "*"
timechart
は引数が一つなので、最初にくっつけてしまえば大丈夫です。
まとめ
個人的な感想では
join << stats < dedup なので、sort
して一番上の値になるのであれば、dedup
が一番速いです。
coalesce
を使えば、どっちか片方にしかないフィールドもまとめられます。
join
は検索時間が倍になるので、検索範囲が多い場合は
- 一括検索
-
eval
等で条件分離 -
stats
等で集計
を頑張りましょう。
リクエストがありましたら、twitter、Qiita、Splunk>Answersでどうぞ。
Author And Source
この問題について(Splunkでイベントをグループ化する), 我々は、より多くの情報をここで見つけました https://qiita.com/toshikawa/items/f01314c5e2e2701daa4f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .