いまいち自分でもちゃんと理解しきれていないところがあったので、サーチモードの違いについて整理しました。
TL:DR
- Splunkは「高速モード」「スマートモード」「詳細モード」というサーチモードがあるよ
- Splunkデフォルトのサーチモードはスマートモードだよ
- Splunkはサーチモードと変換コマンドの有無によって、フィールドの自動抽出をするか判断するよ
- 変換コマンドとはSplunkのサーチコマンドの区別の一種だよ
- フィールドの自動抽出はデータの中身からフィールドと値の組み合わせをSplunkが自動判断してくれる機能だよ
- フィールドの自動抽出はする時よりしない時のほうがサーチ結果を返すスピードが速いよ
- 高速モードは自動抽出しないから他のモードよりサーチ結果を返すスピードが速いよ
サーチモードとは
- Splunkはサーチ時に3種類のサーチモードを選択することができます。
- Splunkはサーチ実行時にサーチ文に変換コマンドが含まれているかによってフィールドの自動抽出を行います。
- サーチモードは、保存済みサーチ(レポート/アラート)ごとに設定を保存できます。
- ダッシュボードのサーチは高速モードになります。
モード | 概要 |
---|---|
高速モード(Fast) | 変換コマンドの有無によらずフィールドの自動抽出を行わない。 |
スマートモード(Smart) | 変換コマンドがある場合はフィールドの自動抽出を行わず、変換コマンドがない場合はフィールドの自動抽出を行う。※Splunkデフォルトのサーチモード |
詳細モード(Detail) | 変換コマンドの有無によらずフィールドの自動抽出を行う。 |
変換コマンド?フィールドの自動抽出?は次項に説明します。
変換コマンドと非変換コマンドとは
Splunkはサーチ時に様々なSplunk専用コマンド(※)を組み合わせてサーチを行うことができますが、コマンドに応じて変換サーチ(transforming search)と非変換サーチコマンド(non-transforming search)という区別がされています。
※Splunk専用コマンドのことをサーチ処理言語(SearchProcessingLanguage as SPL)と呼んだりします。
種類 | 主なコマンド |
---|---|
変換 | stats,table,chart,timechart,top,rare,geostats,xyseries |
非変換 | 上記以外* |
ざっくりいうと、サーチ結果を表形式などに"変換"するコマンドを変換という扱いにしているようです。*詳細はマニュアルをご参照ください。 | |
https://docs.splunk.com/Documentation/Splunk/latest/Search/Aboutreportingcommands | |
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Commandsbytype#Transforming_commands |
フィールドの自動抽出とは
データに gendar=male など、Key=Valueという文字列が含まれている場合に、Splunkがその組み合わせを「フィールド=値」として自動的にフィールドの抽出をしてくれる機能です。
※json/csv/xmlなど構造化データをサーチする場合もある程度データ構造に従って自動抽出してくれるようです。
フィールド自動抽出は便利な機能ですが、一般的にサーチにかかる時間が自動抽出をしない場合より長くなります。特に1つのデータにたくさん文字列が含まれていると、それだけ自動抽出にかかる時間を要することになります。高速モードは自動抽出を一切行わないため、自動抽出を行うモード(スマート/詳細)よりもサーチが"高速"になります。
まとめ
サーチモードとフィールドの自動抽出の関連をまとめると以下になります。
↓サーチ文に | 高速モード | スマートモード | 詳細モード | |
---|---|---|---|---|
変換コマンドがある | → | フィールド自動抽出しない | フィールド自動抽出しない | フィールド自動抽出する |
変換コマンドがない | → | フィールド自動抽出しない | フィールド自動抽出する | フィールド自動抽出する |
(余談1)サーチモードの使い分けについて
Splunkにデータを取り込んだ初期段階で、データに「どんなデータが含まれているか?」「データの出現回数や頻度に何らかの傾向があるか?」といったことが判っていることは少ないと思います。スマートモードや詳細モードはそのような場合に"あたり"をつけるのに向いていると思います。
一方、データの分析がある程度進み、結果をダッシュボードやレポートで見せる段階では高速モードを使って必要最低限のフィールドを表示する(処理する)・・・というのがSplunkを使ってデータ分析結果を活用するにはベターかなと思います。
(余談2)保存済みサーチ(レポート/アラート)のサーチモードについて
保存済みサーチ(レポート/アラート)のサーチモードは、保存した時点のサーチモードが適用されます。つまり、詳細モードで実行したサーチを保存すると、その保存済みサーチは詳細モードで実行されます。(手動実行した場合のみ。)
一度保存したサーチのサーチモードを変える方法は、2019/7/31時点の最新版(7.3.0)では3通りのやり方があるようです。
1.「サーチ、レポート、アラート」画面で変更したいサーチの「編集」リンクから「詳細編集」(Advanced Edit)を開き、パラメータdisplay.page.search.modeの値を変更する。
2.保存済みサーチをサーチで開き、サーチモードを変更した状態で再度サーチを実行し、その状態で上書き保存する。
3.設定ファイル(savedsearches.conf)を直接修正する。※修正後に要splunk再起動
なお、現最新バージョン(7.3.0)のSplunkのGUIでは「サーチ、レポート、アラート」画面上で保存済みサーチのサーチモードを確認することができないようです。このあたり、次バージョン以降改善してほしいなあと思います。。。