Splunk Enterprise 6.3.0 サーチリファレンス

Splunk Enterprise 6.3.0
サーチリファレンス:
作成⽇時:2015/09/04 15:46
Copyright (c) 2016 Splunk Inc. All Rights Reserved
Table of Contents
はじめに
『サーチリファレンス』マニュアルにようこそ
このマニュアルの使⽤⽅法
6
6
6
クイックリファレンス
サーチコマンドのチートシート
Splunk Enterprise クイックリファレンスガイド
コマンドクイックレファレンス
カテゴリ別サーチコマンド
SQL ユーザーの⽅へ
データタイプの⼀覧
7
7
8
8
12
19
22
関数
評価関数
統計およびグラフ関数
40
40
47
時間書式変数と修飾⼦
⽇付と時間の書式変数
サーチの時間修飾⼦
49
49
51
サーチコマンドリファレンス
abstract
accum
addcoltotals
addinfo
addtotals
analyzefields
anomalies
anomalousvalue
anomalydetection
append
appendcols
appendpipe
arules
associate
audit
autoregress
bin
bucket
bucketdir
chart
cluster
cofilter
collect
concurrency
contingency
convert
correlate
crawl
datamodel
dbinspect
dedup
削除
delta
53
53
53
54
55
55
57
58
60
62
64
66
67
68
69
71
71
72
73
74
74
83
85
85
87
90
92
95
96
97
99
101
103
103
diff
erex
eval
eventcount
eventstats
extract (kv)
fieldformat
フィールド
fieldsummary
filldown
fillnull
findkeywords
findtypes
folderize
foreach
format
gauge
gentimes
geom
geostats
head
highlight
history
iconify
⼊⼒
inputcsv
inputlookup
iplocation
join
kmeans
kvform
loadjob
localize
localop
lookup
makecontinuous
makemv
makeresults
map
metadata
metasearch
multikv
multisearch
mvcombine
mvexpand
nomv
outlier
outputcsv
outputlookup
outputtext
overlap
pivot
predict
rangemap
rare
正規表現
relevancy
reltime
rename
replace
106
107
108
114
115
116
117
119
119
121
121
122
123
124
124
126
127
128
129
130
133
134
134
135
136
137
138
139
141
144
145
146
147
147
148
149
150
151
152
153
155
156
158
158
159
161
161
162
163
164
165
166
167
170
170
172
172
173
173
174
rest
return
reverse
rex
rtorder
run
savedsearch
script
scrub
search
searchtxn
selfjoin
sendemail
set
setfields
sichart
sirare
sistats
sitimechart
sitop
sort
spath
stats
strcat
streamstats
table
tags
tail
timechart
top
transaction
transpose
trendline
tscollect
tstats
typeahead
typelearner
typer
uniq
untable
where
x11
xmlkv
xmlunescape
xpath
xyseries
175
176
177
178
179
180
180
181
181
182
185
186
187
189
190
190
191
192
192
193
194
196
199
204
205
207
209
210
210
217
219
225
225
226
227
229
230
230
231
231
232
232
234
234
235
236
内部サーチコマンド
内部コマンドについて
collapse
dispatch
dump
geomfilter
runshellscript
sendalert
236
236
236
237
237
238
238
239
CLI でのサーチ
CLI でのサーチについて
CLI のサーチ構⽂
240
240
240
はじめに
『サーチリファレンス』マニュアルにようこそ
このマニュアルは、Splunk サーチ処理⾔語 (SPL) のリファレンスガイドです。『サーチリファレンス』には、構
⽂、説明と例とともにサーチコマンドの⼀覧が掲載されています。さらに、コマンドのカテゴリ、コマンドで使⽤
できる関数、サーチ処理⾔語 (SPL) と SQL の関係に関するクイックリファレンスも含まれています。
はじめに
Splunk Enterprise やサーチを利⽤したことがない場合は、まず『サーチチュートリアル』をご覧ください。この
チュートリアルでは、サーチとレポートについて解説しています。データの追加、データのサーチ、簡単なレポー
トやダッシュボードの作成について確認できます。
Splunk Enterprise インスタンスでサーチを開始する前に:
インスタンスにデータを追加してください。データ取り込みの⽅法は、『データの取り込み』マニュアルを
参照してください。
インデックスとデータの処理の仕組みについては、『インデクサーとインデクサーのクラスタの管理』マ
ニュアルを参照してください。
フィールドと、ホスト、ソースタイプ、イベントタイプなどのナレッジオブジェクトについては、『ナレッ
ジ管理』マニュアルを参照してください。
サーチマニュアル
『サーチ』マニュアルでは、サーチの作成と最適化について詳細に解説しています。
サーチの種類
イベントの取得
時間範囲の指定
サブサーチの使⽤
統計テーブルおよびチャートの作成
イベントのグループ化と相関
将来のフィールドの予測
クイックリファレンス情報
Splunk Enterprise クイックリファレンスガイドには以下が含まれます。
Splunk Enterprise の機能に関する説明
⼀般的なサーチコマンド
サーチの最適化に関するヒント
evalとstats コマンドの関数
サーチの例
正規表現
⽂字列をタイムスタンプに変換するためのフォーマット
カテゴリ別サーチコマンド のトピックでは、アクションの種類ごとにコマンドが整理されています。
例えば、報告 カテゴリのコマンドは、変換サーチの作成に使⽤されます。報告コマンドはチャートやその他
のデータの可視化に必要な統計データのテーブルを返します。
このトピックでは各コマンドの簡単な説明のほか、このマニュアルのコマンドリファレンスのセクションにある詳
細情報へのリンクが含まれます。
サーチコマンドチートシート は便利なサーチ処理⾔語 (SPL) リファレンスとして活⽤できます。このチートシー
トでは説明と例を確認できます。
次へ進む前に、「このマニュアルの使⽤⽅法」でルールを参照してください。
PDF の作成
PDF版のサーチリファレンスについては、ページ左側の⾚い [Download Search Reference as PDF ] のリン
クをクリックしてください。これにより、PDF 版のマニュアルが⽣成されます。保存、印刷すれば、後で読むこ
ともできます。
このマニュアルの使⽤⽅法
このマニュアルは、サーチコマンドの構⽂、説明、および使⽤例を探しているユーザーの⽅向けのリファレンスガ
イドです。
各トピックのレイアウト
サーチコマンドの各トピックは、説明、構⽂、例、関連項⽬に分かれています。
6
説明
コマンドの⽬的を説明します。コマンドの使⽤⽅法に関する詳細が含まれることもあります。複雑なコマン
ドについては、別途、使⽤⽅法が解説されています。
構⽂
各サーチコマンドの完全な構⽂と引数について解説されています。コマンドの中には、指定できるオプショ
ンのある引数を持つものもあります。この場合、引数に指定できるオプションは、引数の説明に続いて⽰さ
れます。
必要な引数
必要なパラメータとその構⽂の⼀覧です。
オプション引数
オプションで指定できるパラメータとその構⽂の⼀覧です。
例
コマンドの使⽤⽅法を⽰す例です。
関連項⽬
関係するコマンドや同様のコマンドへのリンクが含まれています。
コマンドの構⽂に関する規則
コマンドの引数は、使⽤される順番で構⽂の中に現れます。
必須の引数と省略できるオプション引数が存在しています。これらの引数は、アルファベット順に表⽰されていま
す。各引数ごとに、構⽂ と説明 の項⽬があります。デフォルト など、引数に関する情報がある場合は、その他の
項⽬で解説されています。
論理値
このドキュメントでは、倫理値が 「true」、「false」と表記されます。コマンドでは他の表記も使⽤できます。
たとえば、「true」の代わりに「T」、「TRUE」、「1」が使えます。
フォーマットに関する規則
斜体
斜体はいくつかの場⾯で使⽤されます。
構⽂
コマンドの構⽂では、⼀部の引数が斜体で表⽰されます。
この引数には、⼀連のオプションから選んだ値を指定します。たとえば、 bin コマンドには
bucketing-options 引数がありますが、ここにはbins、minspan、span、start-end のオプションがありま
す。
引数は指定する名前のプレースホルダといえます。たとえば、多くのコマンドでは、引数にフィール
ド名を指定する必要があります。この引数は <field> と表⽰されます。
マニュアルの名前
Splunk のドキュメントで別のマニュアルが⾔及される場合、こうしたマニュアルの名前は斜体で表記され
ています。
クイックリファレンス
サーチコマンドのチートシート
チーシートでは、Splunk サーチ処理⾔語 (SPL) について確認できます。
チートシートPDF
サーチコマンドチートシートはコマンドの完全なクイックリファレンスで、説明と例も記載されています。チート
シートは、8 ページの PDF ファイルです。PDF を開き、ご使⽤中のコンピューターに保存できます。
サーチコマンドのチートシートを開く
注意: パイプ演算⼦の前にサーチがあることを⽰すため、チートシートの例では先頭に省略記号 (...) が使⽤されて
います。先頭のパイプは、サーチコマンドが⽣成コマンドで、コマンドラインインターフェイスや Splunk Web
が、サーチの前に search コマンドを付けることを防⽌します。
関連項⽬
Splunk Enterprise クイックリファレンスガイド
カテゴリ別サーチコマンド
7
Splunk Answers
ここで⽬的の情報が⾒つからない場合は、Splunk Answers に寄せられた、他の Splunk ユーザーが経験したサー
チ⾔語に関する問題と回答を確認してください。
Splunk Enterprise クイックリファレンスガイド
PDF 版のクイックリファレンスガイド
Splunk Enterprise クイックリファレンスガイド (バージョン 6.1 で更新) は、PDF ファイルのみで提供されてい
ます。これは 6 ページのリファレンスカードで、サーチの概念、コマンド、関数と例が記載されています。
Splunk Enterprise クイックリファレンスガイドを開く
PDFを開き、ご使⽤中のコンピューターに保存できます。
注意: パイプ演算⼦の前にサーチがあることを⽰すため、クイックリファレンスの例では先頭に省略記号 (...) が使
⽤されています。先頭のパイプは、サーチコマンドが⽣成コマンドで、コマンドラインインターフェイスや
Splunk Web が、サーチの前に search コマンドを付けることを防⽌します。
関連項⽬
サーチコマンドチートシート
カテゴリ別サーチコマンド
Splunk Answers
ここで⽬的の情報が⾒つからない場合は、Splunk Answers に寄せられた、他の Splunk ユーザーが経験したサー
チ⾔語に関する問題と回答を確認してください。
コマンドクイックレファレンス
サーチコマンドクイックレファレンステーブル
下記の表には、簡単な説明、説明ページへのリンクとともに、すべてのサーチコマンドが⼀覧化されています。完
全な構⽂および使⽤例については、コマンド名をクリックし、各コマンドの説明トピックを開きます。
⼀部のコマンドは、同じ関数を使⽤します。これらの関数のほか、その説明と例を含む⼀覧については、「評価関
数」と「統計およびグラフ関数」を参照してください。
コマンド
説明
関連コマンド
abstract
各サーチ結果のサマリーを⽣成します。
highlight
accum
指定された数値フィールドの現在までの合計値を保持し
ます。
autoregress, delta, trendline,
addcoltotals
以前のイベントのすべての数値フィールドの合計を含む
イベントを算出します。
addtotals、 stats
addinfo
現在のサーチについて、共通の情報を含むフィールドを
追加します。
search
addtotals
各結果のすべての数値フィールドの合計を算出します。
addcoltotals、 stats
analyzefields
他の離散型フィールドを予測できるかどうか、数値
フィールドを分析します。
anomalousvalue
anomalies
イベントの「unexpectedness」 (意外さ) スコアを算
出します。
anomalousvalue
不正な、または異常なサーチ結果を探します。
append
サブサーチの結果を現在の結果に追加します。
appendcols
サブサーチの結果フィールドを現在の結果に追加します
(最初の結果を最初の結果に、2 番⽬の結果を 2 番⽬の
結果に、以降同様)。
append, appendcsv, join, set
appendpipe
現在の結果セットに適⽤した、サブパイプラインの結果
を追加します。
append、appendcols、join。 set
arules
フィールド値間の相関ルールを検索します。
associate, correlate
associate
フィールド間の相関関係を識別します。
correlate, contingency
audit
ローカル監査インデックスに保管されている、監査証跡
情報を返します。
streamstats
anomalousvalue, cluster, kmeans,
outlier
analyzefields, anomalies, cluster,
kmeans, outlier
appendcols, appendcsv, appendlookup,
join, set
accum, autoregress, delta, trendline,
8
autoregress
bin,
移動平均を計算するためにデータを設定します。
accum, autoregress, delta, trendline,
streamstats
連続した数値を離散集合に配置します。
chart, timechart
bucketdir
フィールド値を上位レベルのグループに置換します
(ファイル名をディレクトリで置換するなど)。
cluster, dedup
chart
グラフ化するために、結果を表形式で出⼒します。「統
計およびグラフ関数」も参照してください。
bin,sichart, timechart
cluster
類似イベントをクラスタ化します。
collect, stash
サーチ結果をサマリーインデックスに保管します。
overlap
concurrency
期間 (duration) フィールドを使って、各イベントの同
時 (concurrent) イベント数をサーチします。
timechart
2 つのフィールドの分割表を作成します。
associate, correlate
convert
フィールド値を数値に変換します。
eval
correlate
異なるフィールドの相関関係を算出します。
associate, contingency
crawl
インデックスを作成する新たなソースのファイルシステ
ムをクロールします。
datamodel
データモデルまたはデータモデルオブジェクトを調査
し、データモデルオブジェクトをサーチします。
dbinspect
指定したインデックスに関する情報を返します。
dedup
指定した基準に⼀致する後続の結果を削除します。
delete
特定のイベントまたはサーチ結果を削除します。
delta
隣接する結果間でフィールド値の差異を算出します。
diff
2 つのサーチ結果の差異を返します。
dispatch
⻑期間稼働するストリーミングレポートをカプセル化し
ます。
erex
類似の値を持つフィールドを⾃動抽出するための、例ま
たはカウンタ例の値を指定できます。
eval
式を計算して、値をフィールドに保管します。「評価関
数」も参照してください。
where
eventcount
インデックス内のイベント数を返します。
dbinspect
eventstats
すべてのサーチ結果に、サマリー統計情報を追加しま
す。
stats
extract, kv
サーチ結果から、フィールドと値のペアを抽出します。
kvform, multikv, xmlkv, rex
fieldformat
出⼒時に値を変更せずにフィールドを表⽰する⽅法を指
定します。
eval, where
fields
サーチ結果からフィールドを削除します。
fieldsummary
すべてのフィールドまたはフィールドのサブセットのサ
マリー情報を⽣成します。
file
このコマンドは、もうサポートされていませ
ん。inputcsv を参照してください。
filldown
NULL 値を最後の⾮ NULL 値で置換します。
fillnull
NULL 値を指定値で置換します。
findtypes
提案するイベントタイプのリストを⽣成します。
folderize
上位レベルのグループを作成します (ファイル名をディ
レクトリで置換するなど)。
foreach
ワイルドカード指定されたフィールドリスト内の各
フィールドに対して、テンプレート化されたストリーミ
ングサブサーチを実⾏します。
format
サブサーチの複数の結果を⼊⼿し、⼀つの結果にまとめ
ます。
discretize
anomalies, anomalousvalue, cluster,
kmeans, outlier
contingency,
counttable,
ctable
gauge
結果をゲージグラフでの表⽰に適した形式に変換しま
9
pivot
uniq
accum, autoregress, trendline,
streamstats
extract、kvform、multikv、regex、rex。
xmlkv
analyzefields, anomalies,
anomalousvalue, stats
fillnull
typer
eval
gauge
す。
gentimes
時間範囲結果を⽣成します。
geostats
世界地図に表⽰する地域ビンにクラスタ化される統計情
報を⽣成します。
stats, xyseries
head
指定した結果の最初の n 件を返します。
reverse, tail
highlight
Splunk Web で指定した単語を強調表⽰します。
history
イベントリストまたはテーブル形式でサーチの履歴を返
します。
input
Splunk が処理するソースを Splunk に追加または無効
にします。
inputcsv
指定した CSV ファイルから、サーチ結果を読み込みま
す。
loadjob, outputcsv
inputlookup
指定した静的ルックアップテーブルからサーチ結果を読
み込みます。
inputcsv、join、lookup。 outputlookup
iplocation
IP アドレスから場所情報を抽出します。
join
サブサーチの結果をメインサーチの結果に組み合わせま
す。
kmeans
選択フィールドに対して、K-Means クラスタリングを
実施します。
kvform
フォームテンプレートを使ってサーチ結果から値を取得
します。
extract, kvform, multikv, xmlkv, rex
loadjob
前に完了したサーチジョブのイベントまたは結果を読み
込みます。
inputcsv
localize
サーチ結果が⾒つかった時間範囲のリストを返します。
map, transaction
localop
Splunk に後続のコマンド (このコマンドに続くすべて
のコマンド) を、リモートピア上ではなくローカルに実
⾏するように指⽰します。
lookup
明⽰的にフィールド値のルックアップを起動します。
makecontinuous
フィールドを X 軸連続にします (グラフ/時間グラフが
開始)。
chart, timechart
makemv
サーチ時に、指定フィールドを複数値フィールドに変更
します。
mvcombine, mvexpand, nomv
map
ループ演算⼦、各サーチ結果に対してサーチを実⾏しま
す。
metadata
指定したインデックスまたは分散サーチピアから、ソー
ス、ソースタイプ、またはホストのリストを返します。
dbinspect
metasearch
論理式内の単語に基づいて、インデックスからイベント
のメタデータを取得します。
metadata、 search
multikv
テーブルで書式設定された (table-formatted) イベント
からフィールド値 (field-values) を抽出します。
multisearch
複数のストリーミングサーチ を同時実⾏します。
append, join
mvcombine
サーチ結果内で 1 つのフィールド値が異なっている複
数のイベントを、複数値フィールドを持つ単⼀の結果に
まとめます。
mvexpand, makemv, nomv
mvexpand
複数値フィールドの値を、その各値を持つ個別のイベン
トにデプロイします。
mvcombine, makemv, nomv
nomv
指定した複数値フィールドを、サーチ時に単⼀値フィー
ルドに変更します。
makemv, mvcombine, mvexpand
outlier
範囲外の数値を削除します。
outputcsv
サーチ結果を指定した CSV ファイルに出⼒します。
inputcsv, outputtext
outputlookup
サーチ結果を、指定した静的ルックアップテーブルに書
き込みます。
inputlookup、lookup、outputcsv。
outputtext
結果の raw テキストフィールド (_raw) を
ドに出⼒します。
overlap
サマリーインデックス内で、時間が重なる、または⾒逃
したイベントをサーチします。
collect
pivot
特定のデータモデルオブジェクトに対して、ピボット
サーチを実⾏します。
<code>datamodel
search
appendcols, lookup, selfjoin
anomalies, anomalousvalue, cluster,
outlier
anomalies, anomalousvalue, cluster,
kmeans
10
_xml
フィール
outputlookup
outputtext
predict
時系列アルゴリズムを使って、フィールドの将来の値を
予測します。
rangemap
RANGE フィールドに、⼀致する範囲名を設定します。
rare
フィールドの⼀番少ない値を表⽰します。
sirare, stats, top
regex
指定した正規表現に⼀致しない結果を削除します。
rex、 search
relevancy
イベントとクエリーの⼀致度を計算します。
reltime
「now」と「_time」間の差をユーザーが認識できる値
に変換し、その値をサーチ結果の reltime フィールドに
追加します。
rename
指定フィールドの名前を変更します (ワイルドカードを
使って複数のフィールドを指定できます)。
replace
指定フィールドの値を、指定値に置換します。
rest
REST エンドポイントにアクセスして、返されたエン
ティティをサーチ結果として表⽰します。
return
サブサーチから返す値を指定します。
format, search
reverse
結果の並び順を逆にします。
head, sort, tail
rex
「groups」という名前の Perl 正規表現を指定し、サー
チ時にフィールドを抽出します。
extract, kvform, multikv, xmlkv, regex
rtorder
リアルタイムサーチからイベントをバッファに格納し
て、可能な時にそれらを時間の昇順に⽣成します。
run
「script」を参照してください。
savedsearch
保存済みサーチのサーチ結果を返します。
script, run
サーチの⼀環として外部 Perl または Python スクリプ
トを実⾏します。
scrub
サーチ結果を匿名化します。
search
Splunk Enterprise インデックスから、⼀致するイベン
トを探します。
searchtxn
指定したサーチ制約内のトランザクションイベントを検
索します。
transaction
selfjoin
結果を⾃⾝と結合します。
join
sendemail
サーチ結果を指定したメールアドレスに送信します。
set
サブサーチで⼀連の操作 (union、diff、intersect) を実
⾏します。
append, appendcols, join, diff
setfields
すべての結果のフィールド値を共通値に設定します。
eval、fillnull、 rename
sichart
サマリーインデックス版の chart。
chart、sitimechart、timechart
sirare
サマリーインデックス版の rare。
rare
sistats
サマリーインデックス版の stats。
stats
sitimechart
サマリーインデックス版の timechart。
chart、sichart、timechart
sitop
サマリーインデックス版の top。
上
sort
サーチ結果を指定フィールドで並べ替えます。
reverse
spath
構造化データフォーマット XML および JSON から
フィールドを抽出するための、直接的な⼿段を提供しま
す。
xpath
stats
統計情報を提供します。必要に応じてフィールド別にグ
ループ化します。「統計およびグラフ関数」も参照して
ください。
eventstats, top, rare
strcat
⽂字列値を連結します。
streamstats
ストリーミングを利⽤して、サマリー統計情報をすべて
eventstats、stats
のサーチ結果に追加します。
table
指定フィールドを使ってテーブルを作成します。
fields
tags
サーチ結果の指定フィールドに、タグを使って注釈を付
けます。
eval
tail
指定した結果の最後の n 件を返します。
head, reverse
対応する統計情報テーブルで、タイムライングラフを作
11
x11
convert
timechart
成します。「統計およびグラフ関数」も参照してくださ
い。
chart, bucket
top
フィールドで⼀番多い値を表⽰します。
rare, stats
transaction
各結果をトランザクションにグループ化します。
transpose
サーチ結果の⾏を列として再フォーマットします。
trendline
フィールドの移動平均を算出します。
timechart
tscollect
後ほど tstats コマンド で使⽤するために、結果を tsidx
ファイルに書き込みます。
collect, stats, tstats
tstats
tscollect コマンドで作成された tsidx ファイルの統計
情報を算出します。
stats, tscollect
typeahead
指定されたプリフィックスの先⾏⼊⼒情報を返します。
typelearner
提案するイベントタイプを⽣成します。
typer
typer
サーチ結果の eventtype を算出します。
typelearner
uniq
前の結果と完全に重複する任意のサーチを削除します。
dedup
untable
結果を、表形式から stats 出⼒に似た形式に変換しま
す。xyseries および maketable と逆の処理を⾏います。
where
データに任意のフィルタリングを実⾏します。「評価関
数」も参照してください。
eval
x11
季節パターンを削除して、データの傾向を判断できま
す。
predict
xmlkv
XML キーと値のペアを抽出します。
extract, kvform, multikv, rex
xmlunescape
XML のエスケープを解除します。
xpath
XML パスを再定義します。
xyseries
結果をグラフ化に適した形式に変換します。
PDF 版のサーチコマンドチートシート
サーチコマンドチートシートはコマンドの完全なクイックリファレンスで、説明と例も記載されています。チート
シートは、8ページの PDF ファイルです。PDF を開き、ご使⽤中のコンピューターに保存できます。
サーチコマンドのチートシートを開く
注意: チートシートの例では、パイプ記号の前にサーチがあることを⽰すために省略記号 (...) を使っています。先
頭のパイプは、サーチコマンドが⽣成コマンドで、コマンドラインインターフェイスや Splunk Web が、サーチ
の前に search コマンドを付けることを防⽌します。
カテゴリ別サーチコマンド
以下の表にサーチコマンドを使⽤カテゴリ別に⽰します。⼀部のコマンドは、指定するオプションによって、複数
のカテゴリに該当することもあります。
相関
これらのコマンドは、相関サーチの作成に使⽤できます。
コマンド
説明
append
サブサーチの結果を現在の結果に追加します。
appendcols
サブサーチの結果フィールドを現在の結果に追加します (最初の結果を最初の結果
に、2 番⽬の結果を 2 番⽬の結果に、以降同様)。
appendpipe
現在の結果セットに適⽤した、サブパイプラインの結果を追加します。
arules
フィールド値間の相関ルールを検索します。
associate
フィールド間の相関関係を識別します。
contingency, counttable,
ctable
correlate
2 つのフィールドの分割表を作成します。
異なるフィールドの相関関係を算出します。
12
diff
2 つのサーチ結果の差異を返します。
join
メイン結果パイプラインの結果をサブサーチの結果に組み合わせます
lookup
明⽰的にフィールド値のルックアップを起動します。
selfjoin
結果を⾃⾝と結合します。
set
サブサーチで⼀連の操作 (union、diff、intersect) を実⾏します。
stats
統計情報を提供します。必要に応じてフィールド別にグループ化します。「統計
およびグラフ関数」を参照してください。
transaction
各結果をトランザクションにグループ化します。
⽇付とインデックス
これらのコマンドは、データの詳細の学習、データソースの追加と削除、サマリーインデックス内のデータの管理
に使⽤できます。
データの表⽰
これらのコマンドは、インデックス内のデータに関する情報を返します。データやインデックスが変更されること
はありません。
コマンド
説明
audit
ローカル監査インデックスに保管されている、監査証跡情報を返します。
datamodel
データモデルまたはデータモデルオブジェクトに関する情報を返します。
dbinspect
指定したインデックスに関する情報を返します。
eventcount
インデックス内のイベント数を返します。
metadata
指定したインデックスまたは分散サーチピアから、ソース、ソースタイプ、また
はホストのリストを返します。
typeahead
指定されたプリフィックスの先⾏⼊⼒情報を返します。
データの管理
インデックスにデータソースを追加する、またはインデックスから特定のデータを削除するために使⽤できるコマ
ンドです。
コマンド
説明
crawl
インデックスに追加する新たなソースのファイルシステムをクロールします。
delete
特定のイベントまたはサーチ結果を削除します。
input
Splunk が処理するソースを Splunk に追加または無効にします。
サマリーインデックスの管理
これらのコマンドは、サマリーインデックスの作成と管理に使⽤されます。
コマンド
説明
collect, stash
サーチ結果をサマリーインデックスに保管します。
overlap
サマリーインデックス内で、時間が重なる、または⾒逃したイベントをサーチし
ます。
sichart
サマリーインデックス版の chart。サマリーインデックスに対して、後ほど chart
サーチを実⾏するために必要な情報を算出します。
13
sirare
サマリーインデックス版の rare。サマリーインデックスに対して、後ほど rare
サーチを実⾏するために必要な情報を算出します。
sistats
サマリーインデックス版の stats。サマリーインデックスに対して、後ほど stats
サーチを実⾏するために必要な情報を算出します。
sitimechart
サマリーインデックス版の timechart。サマリーインデックスに対して、後ほど
timechart サーチを実⾏するために必要な情報を算出します。
sitop
サマリーインデックス版の top。サマリーインデックスに対して、後ほど top
サーチを実⾏するために必要な情報を算出します。
フィールド
フィールドまたはフィールド値の追加、抽出、および変更に使⽤できるコマンドです。フィールド操作に最も役⽴
つコマンドは、 eval とその 統計およびグラフ関数です。
フィールドの追加
新しいフィールドを追加するには、これらのコマンドを使⽤します。
コマンド
説明
accum
指定された数値フィールドの現在までの合計値を保持します。
addinfo
現在のサーチについて、共通の情報を含むフィールドを追加します。
addtotals
各結果のすべての数値フィールドの合計を算出します。
delta
隣接する結果間でフィールド値の差異を算出します。
eval
式を計算して、値をフィールドに保管します。「評価関数」も参照してくださ
い。
iplocation
IP アドレスに基づいて市、国、緯度、経度などの場所情報を追加します。
lookup
設定されたルックアップテーブルに対して、明⽰的にフィールド値ルックアップ
を開始して、ルックアップテーブルからイベントにフィールドを追加します。
multikv
テーブルで書式設定された (table-formatted) イベントからフィールド値 (fieldvalues) を抽出します。
rangemap
RANGE フィールドに、⼀致する範囲名を設定します。
relevancy
イベントがクエリとどれだけ⼀致しているかを⽰す関連フィールドを追加しま
す。
strcat
⽂字列値を連結し、結果を指定フィールドに保存します。
フィールドの抽出
サーチ結果から新しいフィールドを抽出するさまざまな⽅法を提供しています。
コマン
ド
erex
extract,
kv
説明
類似の値を持つフィールドを⾃動抽出するための、例またはカウンタ例の値を指定できます。
サーチ結果から、フィールドと値のペアを抽出します。
kvform
フォームテンプレートを使ってサーチ結果から値を取得します。
rex
「groups」という名前の Perl 正規表現を指定し、サーチ時にフィールドを抽出します。
spath
構造化データフォーマット XML および JSON からフィールドを抽出するための、直接的な⼿段
を提供します。
xmlkv
XML キーと値のペアを抽出します。
14
フィールドおよびフィールド値の変更
フィールドまたはその値を変更するには、これらのコマンドを使⽤します。
コマンド
説明
convert
フィールド値を数値に変換します。
filldown
NULL 値を最後の⾮ NULL 値で置換します。
fillnull
NULL 値を指定値で置換します。
makemv
サーチ時に、指定フィールドを複数値フィールドに変更します。
nomv
指定した複数値フィールドを、サーチ時に単⼀値フィールドに変更します。
reltime
「now」と「_time」間の差をユーザーが認識できる値に変換し、その値をサーチ
結果の reltime フィールドに追加します。
rename
指定したフィールドの名前を変更します。複数のフィールド名を指定するには、
ワイルドカードを使⽤します。
replace
指定フィールドの値を、指定値に置換します。
異常の検索
データの異常を検索するには、これらのコマンドを使⽤します。⼀般的ではないまたは範囲外のイベントとフィー
ルドのサーチ、または同様のイベントのクラスタ化。
コマンド
説明
analyzefields, af
他の離散型フィールドを予測できるかどうか、数値フィールドを分析します。
anomalies
イベントの「unexpectedness」 (意外さ) スコアを算出します。
anomalousvalue
不正な、または異常なサーチ結果を探します。
cluster
類似イベントをクラスタ化します。
kmeans
選択フィールドに対して、K-Means クラスタリングを実施します。
outlier
範囲外の数値を削除します。
rare
フィールドの⼀番少ない値を表⽰します。
地理的場所
これらのコマンドは、サーチ結果に地域情報を追加します。
コマンド
説明
iplocation
IP アドレスに基づいて市、国、緯度、経度などの場所情報を返します。
geostats
世界地図に表⽰する地域ビンにクラスタ化される統計情報を⽣成します。
予測とトレンド
これらのコマンドは将来の値を予測し、視覚エフェクトの作成に利⽤できるトレンド線を計算します。
コマンド
説明
predict
時系列アルゴリズムを使って、フィールドの将来の値を予測します。
trendline
フィールドの移動平均を算出します。
x11
季節パターンを削除して、データの傾向を判断できます。
15
レポート
これらのコマンドは、変換サーチ の作成に使⽤されます。これらのコマンドはチャートや他のデータ視覚化に必
要な統計データテーブルを返します。
コマンド
説明
addtotals
各結果のすべての数値フィールドの合計を算出します。
bin, discretize
連続した数値を離散集合に配置します。
chart
グラフ化するために、結果を表形式で出⼒します。「統計およびグラフ関数」も
参照してください。
contingency, counttable,
ctable
2 つのフィールドの分割表を作成します。
correlate
異なるフィールドの相関関係を算出します。
eventcount
インデックス内のイベント数を返します。
eventstats
すべてのサーチ結果に、サマリー統計情報を追加します。
gauge
結果をゲージグラフでの表⽰に適した形式に変換します。
makecontinuous
フィールドを X 軸連続にします (グラフ/時間グラフが開始)。
outlier
範囲外の数値を削除します。
rare
フィールドの⼀番少ない値を表⽰します。
stats
統計情報を提供します。必要に応じてフィールド別にグループ化します。「統計
およびグラフ関数」も参照してください。
streamstats
ストリーミングを利⽤して、サマリー統計情報をすべてのサーチ結果に追加しま
す。
timechart
対応する統計情報テーブルで、タイムライングラフを作成します。「統計および
グラフ関数」も参照してください。
top
フィールドで⼀番多い値を表⽰します。
trendline
フィールドの移動平均を算出します。
untable
結果を、表形式から stats 出⼒に似た形式に変換します。xyseries および
と逆の処理を⾏います。
xyseries
結果をグラフ化に適した形式に変換します。
maketable
結果
これらのコマンドは、サーチ結果の管理に使⽤できます。たとえば、⼀連の結果を他の結果へ追加、結果からのイ
ベントのフィルタリング、結果の再フォーマットなどの作業を⾏うことができます。
アラート
サーチ結果をメールで送信するには、このコマンドを使⽤します。
コマンド
sendemail
説明
サーチ結果をインラインで、または添付ファイルとして、指定した 1 つまたは複
数のメールアドレスに送信します。
追加
1 つの結果セットを、他のセットまたはそれ⾃⾝に追加します。
16
コマンド
説明
append
サブサーチの結果を現在の結果に追加します。
appendcols
サブサーチの結果フィールドを現在の結果に追加します (最初の結果を最初の結果
に、2 番⽬の結果を 2 番⽬の結果に、以降同様)。
join
メイン結果パイプラインの結果をサブパイプラインの結果と、SQL のように結合
します。
selfjoin
結果を⾃⾝と結合します。
フィルター
現在の結果からイベントやフィールドを削除する場合に使⽤します。
コマン
ド
説明
dedup
指定した基準に⼀致する後続の結果を削除します。
fields
サーチ結果からフィールドを削除します。
mvcombine
サーチ結果内で 1 つのフィールド値が異なっている複数のイベントを、複数値フィールドを持つ単
⼀の結果にまとめます。
regex
指定した正規表現に⼀致しない結果を削除します。
searchtxn
指定したサーチ制約内のトランザクションイベントを検索します。
table
指定フィールドを使ってテーブルを作成します。
uniq
前の結果と完全に重複する任意のサーチを削除します。
where
データに任意のフィルタリングを実⾏します。「評価関数」も参照してください。
フォーマット
現在の結果を再フォーマットする場合に使⽤します。
コマンド
説明
untable
結果を、表形式から stats 出⼒に似た形式に変換します。xyseries および
と逆の処理を⾏います。
xyseries
結果をグラフ化に適した形式に変換します。
maketable
⽣成
イベントを⽣成または返す場合に使⽤します。
コマンド
説明
gentimes
時間範囲に⼀致する結果を返します。
loadjob
前に完了したサーチジョブのイベントまたは結果を読み込みます。
mvexpand
複数値フィールドの値を、その各値を持つ個別のイベントにデプロイします。
savedsearch
保存済みサーチのサーチ結果を返します。
search
Splunk インデックスから、⼀致するイベントを探します。このコマンドは、各
サーチパイプラインの先頭に暗黙的に存在しており、他の⽣成コマンドで開始す
ることはありません。
グループ化
17
現在の結果をグループ化または分類する場合に使⽤します。
コマンド
説明
cluster
類似イベントをクラスタ化します。
kmeans
選択フィールドに対して、K-Means クラスタリングを実施します。
mvexpand
複数値フィールドの値を、その各値を持つ個別のイベントにデプロイします。
transaction
各結果をトランザクションにグループ化します。
typelearner
提案するイベントタイプを⽣成します。
typer
サーチ結果の eventtype を算出します
並べ替え
現在のサーチ結果を並べ替える場合に使⽤します。
コマンド
説明
head
指定した結果の最初の n 件を返します。
reverse
結果の並び順を逆にします。
sort
サーチ結果を指定フィールドで並べ替えます。
tail
指定した結果の最後の n 件を返します。
読み込み
外部ファイルまたは前のサーチから結果を読み込む場合に使⽤します。
コマンド
説明
inputcsv
指定した CSV ファイルから、サーチ結果を読み込みます。
inputlookup
指定した静的ルックアップテーブルからサーチ結果を読み込みます。
loadjob
前に完了したサーチジョブのイベントまたは結果を読み込みます。
書き込み
現在のサーチ結果の出⼒⽅法を定義する場合に使⽤します。
コマンド
説明
outputcsv
サーチ結果を指定した CSV ファイルに出⼒します。
outputlookup
サーチ結果を、指定した静的ルックアップテーブルに書き込みます。
outputtext
結果の raw テキストフィールド (_raw) を
sendemail
サーチ結果をインラインで、または添付ファイルとして、指定した 1 つまたは複
数のメールアドレスに送信します。
_xml
フィールドに出⼒します。
サーチ
コマンド
説明
map
ループ演算⼦、各サーチ結果に対してサーチを実⾏します。
search
Splunk インデックスから、⼀致するイベントを探します。このコマンドは、各
サーチパイプラインの先頭に暗黙的に存在しており、他の⽣成コマンドで開始す
ることはありません。
18
sendemail
サーチ結果をインラインで、または添付ファイルとして、指定した 1 つまたは複
数のメールアドレスに送信します。
localop
Splunk に後続のコマンド (このコマンドに続くすべてのコマンド) を、リモート
ピア上ではなくローカルに実⾏するように指⽰します。
サブサーチ
サブサーチ で使⽤できるコマンドです。
コマンド
説明
append
サブサーチの結果を現在の結果に追加します。
appendcols
サブサーチの結果フィールドを現在の結果に追加します (最初の結果を最初の結果
に、2 番⽬の結果を 2 番⽬の結果に、以降同様)。
appendpipe
現在の結果セットに適⽤した、サブパイプラインの結果を追加します。
format
サブサーチの複数の結果を⼊⼿し、⼀つの結果にまとめます。
join
サブサーチの結果をメインサーチの結果に組み合わせます。
return
サブサーチから返す値を指定します。
set
サブサーチで⼀連の操作 (union、diff、intersect) を実⾏します。
時間
時間範囲に基づいてサーチする、または時間情報をイベントに追加する場合に使⽤します。
コマンド
説明
gentimes
時間範囲に⼀致する結果を返します。
localize
サーチ結果が⾒つかった時間範囲のリストを返します。
reltime
「now」と「_time」間の差をユーザーが認識できる値に変換し、その値をサーチ
結果の reltime フィールドに追加します。
SQL ユーザーの⽅へ
SQL と Splunk サーチ処理⾔語 (SPL) の対応は完全ではありませんが、SQL に慣れている場合は、簡単な⽐較に
より、容易にサーチコマンドの最初の理解を進めることができます。
概念
データベースの⽤語を使うと、Splunk Enterprise は暗黙の時間ディメンションを持つ半構造の分散型⾮リレー
ショナルデータベースです。⼀般的な観点からすると、Splunk Enterprise はデータベースではありません。リ
レーショナルデータベースでは、すべてのテーブル列をあらかじめ定義しておく必要があり、また新しいハード
ウェアをつないでも⾃動的に拡張されることはありません。ただし、Splunk はデータベースの世界の多くの概念
と類似性があります。
データベース
の概念
Splunk
Enterprise
の概念
メモ
SQL クエリ
Splunk サーチ Splunk Enterprise サーチは、インデックス作成されたデータを取得し、変換
とレポート作成操作を実⾏します。サーチ結果はパイプ⽂字を使⽤して、コ
マンドからコマンドに受け渡し、結果のフィルタリング、変更、順序変更、
グループ化を⾏うことができます。
テーブル/
ビュー
サーチ結果
サーチ結果は、データベースで動的に⾏と列が⽣成されるテーブルのビュー
と考えることができます。
インデックス
インデックス
Splunk Enterprise では、すべての値とフィールドのインデックスが作成され
ます。⼿動で追加、更新、破棄する必要はありません。インデックス列を考
慮する必要もありません。すべてを素早く⾃動的に取得することができま
す。
row
結果/イベント
Splunk Enterprise の検索結果は、テーブルの⼀⾏に相当する、フィールド
19
(または、列)の値のリストです。イベントは、タイムスタンプと raw テキ
ストを持つ結果になります。⼀般的にイベントは、以下のようなログファイ
ルからのレコードになります。
173.26.34.223 - - [01/Jul/2009:12:05:27 -0700] "GET /trade/app?action=logout
HTTP/1.1" 200 2953
列
field
Splunk Enterprise でフィールドは、サーチによって動的に返されます。ある
サーチでは特定のフィールドセットが返され、また別のサーチでは別のセッ
トが返されます。raw データからフィールドの抽出⽅法を指⽰し、その後も
う⼀度同じサーチを実⾏すると前回よりも多くのフィールドが返されること
もあります。Splunk Enterprise は、データ型とは結びつけられていません。
データベース/
スキーマ
インデック
ス/App
データベースがテーブルの集合から構成されているように、Splunk でイン
デックスはデータの集合体です。そのデータの詳細な知識、抽出⽅法、実⾏
するレポートなどが、Splunk の App に保管されています。
SQLからSplunk Enterprise へ
以下の例では、Splunk のフィールド「source」の値を、「table」の代理として使⽤しています。Splunk でソー
ス (source) は、ファイル、ストリーム、または他のデータの取り込み元の⼊⼒を表しています
(例:/var/log/messages or UDP:514)。
ある⾔語を他の⾔語に変換する場合、元の⾔語には独特の⽤語が含まれているため変換作業には時間がかかりま
す。以降のサーチ例はもっと簡潔にすることもできますが、並列性と明確性のために、テーブルとフィールド名は
SQL と同じままにしています。また、サーチの場合は FIELDS コマンドを使って列をフィルタリングする必要は
ほとんどありません。ユーザーインターフェイスにより⼿軽な⼿段が⽤意されており、また論理演算サーチでも
「AND」が暗黙的に仮定されるため、明⽰的に指定する必要はありません。
SQL コマンド
SELECT *
SQL の例
Splunk Enterprise の例
SELECT *
source=mytable
FROM mytable
WHERE
SELECT *
source=mytable mycolumn=5
FROM mytable
WHERE mycolumn=5
SELECT
AND/OR
AS (エイリアス)
SELECT mycolumn1, mycolumn2
source=mytable
FROM mytable
| FIELDS mycolumn1, mycolumn2
SELECT *
source=mytable
FROM mytable
AND (mycolumn1="true" OR mycolumn2="red")
WHERE (mycolumn1="true" OR mycolumn2="red")
AND mycolumn3="blue"
AND mycolumn3="blue"
SELECT mycolumn AS column_alias
source=mytable
FROM mytable
| RENAME mycolumn as column_alias
| FIELDS column_alias
BETWEEN
SELECT *
source=mytable mycolumn>=1 mycolumn<=5
FROM mytable
WHERE mycolumn
BETWEEN 1 AND 5
GROUP BY
SELECT mycolumn, avg(mycolumn)
source=mytable mycolumn=value
FROM mytable
| STATS avg(mycolumn) BY mycolumn
WHERE mycolumn=value
| FIELDS mycolumn, avg(mycolumn)
GROUP BY mycolumn
HAVING
SELECT mycolumn, avg(mycolumn)
source=mytable mycolumn=value
FROM mytable
| STATS avg(mycolumn) BY mycolumn
WHERE mycolumn=value
| SEARCH avg(mycolumn)=value
GROUP BY mycolumn
| FIELDS mycolumn, avg(mycolumn)
HAVING avg(mycolumn)=value
20
LIKE
SELECT *
source=mytable mycolumn="*some text*"
FROM mytable
注意: Splunk Enterprise でもっとも⼀般
的に使⽤されているサーチの使⽤例 (すべ
てのフィールドに対して⼀部の⽂字列を
サーチする) は、SQL ではほとんど不可能
です。以下のサーチでは、どこかに「some
text」を含むすべての⾏が返されます。
WHERE mycolumn LIKE "%some text%"
source=mytable "some text"
ORDER BY
SELECT *
source=mytable
FROM mytable
| SORT -mycolumn
ORDER BY mycolumn desc
SELECT DISTINCT
SELECT DISTINCT mycolumn1, mycolumn2
source=mytable
FROM mytable
| DEDUP mycolumn1
| FIELDS mycolumn1, mycolumn2
SELECT TOP
INNER JOIN
SELECT TOP 5 mycolumn1, mycolumn2
source=mytable
FROM mytable
| TOP mycolumn1, mycolumn2
SELECT *
source=mytable1
FROM mytable1
| JOIN type=inner mycolumn [ SEARCH
source=mytable2 ]
INNER JOIN mytable2
ON mytable1.mycolumn = mytable2.mycolumn
注意: 結合を⾏うには、他にも 2 種類の⽅
法があります。
コマンドを使って、外部テーブ
ルからフィールドを追加します。
lookup
... | LOOKUP myvaluelookup mycolumn OUTPUT
myoutputcolumn
サブサーチの使⽤:
source=mytable1 [
SEARCH source=mytable2
mycolumn2=myvalue
| FIELDS mycolumn2
]
LEFT (OUTER)
JOIN
SELECT *
source=mytable1
FROM mytable1
| JOIN type=left mycolumn [ SEARCH
source=mytable2 ]
LEFT JOIN mytable2
ON mytable1.mycolumn=mytable2.mycolumn
SELECT INTO
SELECT *
source=old_mytable
INTO new_mytable IN mydb2
| EVAL source=new_mytable
FROM old_mytable
| COLLECT index=mydb2
注意: ⼀般的に COLLECT は、コストが⾼
い計算で算出されたフィールドを Splunk
に保管するために⽤いられます。そうする
ことにより、それ以降のアクセスが⾼速に
なります。この現在の例は特殊なものです
が、SQL のコマンドと⽐較するために記載
しています。ソースの名前は orig_source
に変更されます。
TRUNCATE TABLE
TRUNCATE TABLE mytable
source=mytable
| DELETE
INSERT INTO
INSERT INTO mytable
VALUES (value1, value2, value3,....)
21
注意: SELECT INTO も参照してくださ
い。サーチ⾔語で個別のレコードは追加さ
れませんが、必要に応じて API を使って追
加することができます。
UNION
SELECT mycolumn
source=mytable1
FROM mytable1
| APPEND [ SEARCH source=mytable2]
UNION
| DEDUP mycolumn
SELECT mycolumn FROM mytable2
UNION ALL
SELECT *
source=mytable1
FROM mytable1
| APPEND [ SEARCH source=mytable2]
UNION ALL
SELECT * FROM mytable2
DELETE
UPDATE
DELETE FROM mytable
source=mytable1 mycolumn=5
WHERE mycolumn=5
| DELETE
UPDATE mytable
注意: Splunk でレコードを更新する際に
は、いくつか考慮しておくことがありま
す。まず、新しい値を Splunk Enterprise
に追加し (INSERT INTO を参照)します。
最新の結果が先に返されるため、古い値の
削除を気にする必要はありません。次に、
取得時には最新の値のみが使われるよう
に、常に結果から重複項⽬を排除すること
ができます (SELECT DISTINCT を参
照)。最後に、実際に古いレコードを削除で
きます (DELETE を参照)。
SET column1=value, column2=value,...
WHERE some_column=some_value
データタイプの⼀覧
このトピックはすでに失効しています。
このページには、サーチ⾔語の構⽂を定義するために使⽤するデータタイプが記載されています。これらの例にあ
るコマンドについては、コマンドクイックレファレンスを参照してください。
after-opt
構⽂: timeafter=<int>(s|m|h|d)?
説明: endtime に追加する時間 (時間領域を時間の前⽅向に拡張)
anovalue-action-option
構⽂: action=(annotate|filter|summary)
説明: アクションが ANNOTATE の場合、変則な値が存在するイベントに、値の変則性スコアを⽰す新たな
フィールドが追加されます。アクションが FILTER の場合、変則値を持つイベントは隔離されます。アク
ションが SUMMARY の場合、各フィールドの変則性の統計を要約したテーブルが⽣成されます。
anovalue-pthresh-option
構⽂: pthresh=<num>
説明: 値を変則とみなすために、満たす必要がある確度閾値 (10 進数)
associate-improv-option
構⽂: improv=<num>
説明: ターゲットキーの最低エントロピー向上値つまり、「エントロピー (ターゲットキー) - エントロピー
(ターゲットキーに与えられた参照キー/値)」が、この値以上でなければなりません。
associate-option
構⽂: <associate-supcnt-option>|<associate-supfreq-option>|<associate-improv-option>
説明: Associate コマンドのオプション。
associate-supcnt-option
構⽂: supcnt=<int>
説明: 「参照キー=参照値」の組み合わせが現れる最低回数です。正の整数でなければなりません。
associate-supfreq-option
構⽂: supfreq=<num>
説明: 「参照キー=参照値」の組み合わせの登場頻度 (合計イベント数に対する割合)
22
before-opt
構⽂: timebefore=<int>(s|m|h|d)?
説明: starttime から差し引く時間 (時間領域を時間の後⽅向に拡張)
bucket-bins
構⽂: bins=<int>
説明: 離散化に使⽤するビンの最⼤数です。この上限境界ガイダンスを使⽤して、ビンが適切な境界にス
ナップされます。
例: bins=10
bucket-span
構⽂: span=(<span-length>|<log-span>)
説明: 各バケツのサイズ。
例: span=2d
例: span=5m
例: span=10
bucket-start-end
構⽂: (start=|end=)<num>
説明: 数値バケツの最⼩/最⼤範囲を設定します。
bucketing-option
構⽂: <bucket-bins>|<bucket-span>|<bucket-start-end>
説明: 離散化オプション
by-clause
構⽂: by <field-list>
説明: グループ化するフィールド。
例: BY addr, port
例: BY host
cmp
構⽂: =|!=|<|<=|>|>=
説明: なし
collapse-opt
構⽂: collapse=<bool>
説明: 他の単語のプレフィックスでイベントカウントが同じ単語を表⽰しないかどうかを⽰します
例: collapse=f
collect-addinfo
構⽂: 構⽂なし
説明: なし
collect-addtime
構⽂: addtime=<bool>
説明: イベントに _raw フィールドが存在しない場合に、各イベントの先頭に時間を付けるかどうかを指定
します。次の時間の中で、最初に⾒つかったフィールドが使⽤されます:info_min_time、_time, now()。デ
フォルトは真です。
collect-arg
構⽂: <collect-addtime> | <collect-index> | <collect-file> | <collect-spool> | <collect-marker> |
<collect-testmode>
説明: なし
collect-file
構⽂: file=<string>
説明: イベントの書き込み先ファイル名。省略可。デフォルトは「<random-num>_events.stash」になり
ます。ファイル名内にプレースホルダとして $timestamp$、$random$ を使⽤できます。これらのプレー
スホルダは、それぞれタイムスタンプ、および乱数に置換されます。
collect-index
構⽂: index=<string>
説明: Splunk がイベントを追加するインデックス名。注意:イベントを追加するインデックスは存在して
23
いなければなりません。インデックスは⾃動的には作成されません。
collect-marker
構⽂: marker=<string>
説明: 各イベントに追加する⽂字列で、通常はキーと値のペアになります。省略可。デフォルトは「」で
す。
collect-spool
構⽂: spool=<bool>
説明: 真 (True) を設定すると (デフォルト)、サマリーインデックスファイルが Splunk のスプールディレク
トリに書き込まれ、そこで⾃動的にインデックスが作成されます。偽 (False) を設定した場合、ファイルは
$SPLUNK_HOME/var/run/splunk に書き込まれます。
collect-testmode
構⽂: testmode=<bool>
説明: テストモードとリアルモードを切り替えます。テストモードでは、結果は新しいインデックスには書
き込まれません。ただし、サーチ結果は、まるでインデックスに送信されたかのように表⽰が変更されま
す。(デフォルトは false)
comparison-expression
構⽂: <field><cmp><value>
説明: なし
connected-opt
構⽂: connected=<bool>
説明: フィールドが空でない場合にのみ関連します。トランザクションのフィールドと整合性のあるまたは
整合性のないイベントを、新しいトランザクションで開く (connected=t) か、またはトランザクションに追
加するかを指定します。トランザクションが必要とするフィールドを持つけれども、トランザクション内で
これらのフィールドがどれもインスタンス化されていない (前のイベント追加により) 場合、イベントは⾮不
整合および⾮整合にできます。
contingency-maxopts
構⽂: (maxrows|maxcols)=<int>
説明: 最⼤の⾏数または列数。フィールドの⼀意の値数がこの最⼤値を超えた場合は、もっとも少ない値が
無視されます。0 は、⾏数/列数が無制限であることを表します。
contingency-mincover
構⽂: (mincolcover|minrowcover)=<num>
説明: ⾏または列フィールドに対して、この割合の値のみをカバーします。必要な値の割合をカバーするた
めに必要なエントリ数が、maxrows または maxcolsを超えた場合、maxrows または maxcols が優先され
ます。
contingency-option
構⽂: <contingency-maxopts>|<contingency-mincover>|<contingency-usetotal>|<contingencytotalstr>
説明: 分割表のオプションです。
contingency-totalstr
構⽂: totalstr=<field>
説明: 合計⾏/列のフィールド名
contingency-usetotal
構⽂: usetotal=<bool>
説明: ⾏合計、列合計を追加します。
convert-auto
構⽂: auto("(" (<wc-field>)?")")?
説明: 最適な⽅法を使って、フィールドを⾃動的に数字に変換します。既知の変換タイプを使って特定
フィールド内のすべての値を変換できない場合、そのフィールドは放置され変換処理は⾏われません。
例: ...| convert auto(*delay) as *delay_secs
例: ...| convert auto(*) as *_num
例: ...| convert auto(delay) auto(xdelay)
例: ...| convert auto(delay) as delay_secs
例: ...| convert auto
例: ...| convert auto()
例: ...| convert auto(*)
24
convert-ctime
構⽂: ctime"("<wc-field>?")"
説明: エポック時を ASCII 形式のユーザーが理解できる時間に変換します。変換形式を指定するには、
timeformat オプションを使⽤します。
例: ...| convert timeformat="%H:%M:%S" ctime(_time) as timestr
convert-dur2sec
構⽂: dur2sec"("<wc-field>?")"
説明: 期間の形式「D+HH:MM:SS」を秒数に変換します。
例: ...| convert dur2sec(*delay)
例: ...| convert dur2sec(xdelay)
convert-function
構⽂: <convert-auto>|<convert-dur2sec>|<convert-mstime>|<convert-memk>|<convertnone>|<convert-num>|<convert-rmunit>|<convert-rmcomma>|<convert-ctime>|<convert-mktime>
説明: なし
convert-memk
構⽂: memk"(" <wc-field>?")"
説明: {KB、MB、GB} 系のサイズ表記を KB に変換します。
例: ...| convert memk(VIRT)
convert-mktime
構⽂: mktime"("<wc-field>?")"
説明: ユーザーが理解できる時間⽂字列をエポック時に変換します。変換元時刻の形式を正しく指定するに
は、timeformat オプションを使⽤します。
例: ...| convert mktime(timestr)
convert-mstime
構⽂: mstime"(" <wc-field>?")"
説明: MM:SS.SSS 形式の値を秒数に変換します。
convert-none
構⽂: none"(" <wc-field>?")"
説明: 他のワイルドカードが存在する場合は、⼀致するフィールドが変換されません。
例: ...| convert auto(*) none(foo)
convert-num
構⽂: num"("<wc-field>?")"
説明: auto() と同様に、変換できない値を除いて削除されます。
convert-rmcomma
構⽂: rmcomma"("<wc-field>?")"
説明: 値からコンマを削除します。たとえば、 '1,000,000.00' -> '1000000.00'
convert-rmunit
構⽂: rmunit"(" <wc-field>?")"
説明: 値の先頭の数字を探し、後続のテキストを削除します。
例: ...| convert rmunit(duration)
copyresults-dest-option
構⽂: dest=<string>
説明: 結果のコピー先となる宛先ファイル⽂字列は SPLUNK_HOME からの相対パスとして解釈され、(1)
.csv ファイルを指す必要があります (2) ファイルはetc/system/lookups/ または etc/apps/<appname>/lookups/ になければなりません。
copyresults-sid-option
構⽂: sid=<string>
説明: 結果をコピーするジョブのサーチ IDです。このコマンドを実⾏するユーザーには、この ID が指す
ジョブに対する権限が必要であることに注意してください。
correlate-type
構⽂: type=cocur
説明: 計算する相関関係の種類です。現在の所は、2 つのフィールドが同じイベント内に存在した回数の割
合を含んだ、共起相関関係マトリックスしか利⽤できません。
25
count-opt
構⽂: count=<int>
説明: 返す結果の最⼤数
例: count=10
crawl-option
構⽂: <string>=<string>
説明: crawl.conf の設定に優先します。
例: root=/home/bob
daysago
構⽂: daysago=<int>
説明: 最近の n ⽇間をサーチします。(「startdaysago」と同等)
debug-method
構⽂: optimize|roll|logchange|validate|delete|sync|sleep|rescan
説明: debug コマンドで使⽤できるコマンド。
dedup-consecutive
構⽂: consecutive=<bool>
説明: 連続したイベントのみを削除します。
dedup-keepempty
構⽂: keepempty=<bool>
説明: イベントに 1 つまたは複数の指定フィールドに NULL 値が存在する場合、イベントは保持される
(keepempty=true の場合) か、または破棄されます。
dedup-keepevents
構⽂: keepevents=<bool>
説明: すべてのイベントを保持し、代わりに特定の値を削除します。
default
構⽂: 構⽂なし
説明: なし
delim-opt
構⽂: delim=<string>
説明: トランザクションのイベントフィールドにある元のイベント値を区切るために使⽤する⽂字列
email_address
構⽂: <string>
説明: なし
例: [email protected]
email_list
構⽂: <email_address> (, <email_address> )*
説明: なし
例: "[email protected], [email protected]"
end-opt
構⽂: endswith=<transam-filter-string>
説明: サーチまたは eval フィルタリング式。あるイベントがこの条件を満たすと、新しいトランザクション
の終了としてマークされます。
例: endswith=eval(speed_field > max_speed_field/12)
例: endswith=(username=foobar)
例: endswith=eval(speed_field > max_speed_field)
例: endswith="logout"
enddaysago
構⽂: enddaysago=<int>
説明: 終了時間を設定するためのショートカット。 終了時間 = 現在 - (n ⽇)
endhoursago
26
構⽂: endhoursago=<int>
説明: 終了時間を設定するためのショートカット。 終了時間 = 現在 - (n 時間)
endminutesago
構⽂: endminutesago=<int>
説明: 終了時間を設定するためのショートカット。 終了時間 = 現在 - (n 分)
endmonthsago
構⽂: endmonthsago=<int>
説明: 開始時間を設定するためのショートカット。 開始時間 = 現在 - (nヶ⽉)
endtime
構⽂: endtime=<string>
説明: すべてのイベントはこの時刻以前でなければなりません。
endtimeu
構⽂: endtime=<int>
説明: 終了時刻をエポックから n 秒に設定します。(UNIX 時間)
erex-examples
構⽂: ""<string>(, <string> )*""
説明: なし
例: "foo, bar"
eval-bool-exp
構⽂: (NOT|!)?(<eval-compare-exp>|<eval-function-call>) ((AND|OR|XOR) <eval-expression>)*
説明: なし
eval-compare-exp
構⽂: (<field>|<string>|<num>) (<|>|<=|>=|!=|=|==|LIKE) <eval-expression>
説明: なし
eval-concat-exp
構⽂: ((<field>|<string>|<num>) (.<eval-expression>)*)|((<field>|<string>) (+ <eval-expression>)*)
説明: フィールドと⽂字列を連結します
例: first_name."".last_nameSearch
Eval 式
構⽂: <eval-math-exp> | <eval-concat-exp> | <eval-compare-exp> | <eval-bool-exp> | <eval-functioncall>
Description: 宛先フィールドの値を表す、リテラル、フィールド、演算⼦、および関数の組み合わせ。
eval を使って実⾏できる基本的な操作を以下に⽰します。これらの評価が正常に機能するためには、操作の
種類に応じて有効な値を使⽤する必要があります。たとえば、追加の例外処理では、値が数値でないと算術
操作で有効な結果を得ることはできません。また、Splunk では 2 つのオペランドが両⽅とも⽂字列の場
合、それを連結することができます。「.」が存在する値を連結する場合は、実際の種類に関係なく両⽅の値
が⽂字列として処理されます。
eval-field
構⽂: <field>
説明: 評価した値のフィールド名
例: velocity
eval-function
構⽂:
abs|case|cidrmatch|coalesce|exact|exp|floor|if|ifnull|isbool|isint|isnotnull|isnull|isnum|isstr|len|like|ln|log|lower|match|max|md5|mi
説明: eval が使⽤する関数
例: md5(field)
例: typeof(12) + typeof("string") + typeof(1==2) + typeof(badfield)
例: searchmatch("foo AND bar")
例: sqrt(9)
例: round(3.5)
例: replace(date, "^(\d{1,2})/(\d{1,2})/", "\2/\1/")
例: pi()
例: nullif(fielda, fieldb)
例: random()
例: pow(x, y)
例: mvfilter(match(email, "\.net$") OR match(email, "\.org$"))
27
例: mvindex(multifield, 2)
例: null()
例: now()
例: isbool(field)
例: exp(3)
例: floor(1.9)
例: coalesce(null(), "Returned value", null())
例: exact(3.14 * num)
例: case(error == 404, "Not found", error == 500, "Internal Server Error", error == 200, "OK")
例: cidrmatch("123.132.32.0/25", ip)
例: abs(number)
例: isnotnull(field)
例: substr("string", 1, 3) + substr("string", -3)
例: if(error == 200, "OK", "Error")
例: len(field)
例: log(number, 2)
例: lower(username)
例: match(field, "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")
例: max(1, 3, 6, 7, "f"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")oo", field)
例: like(field, "foo%")
例: ln(bytes)
例: mvcount(multifield)
例: urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")
例: validate(isint(port), "ERROR: Port is not an integer", port >= 1 AND port <= 65535, "ERROR: Port
is out of range")
例: tostring(1==1) + " " + tostring(15, "hex") + " " + tostring(12345.6789, "commas")
例: trim(" ZZZZabcZZ ", " Z")
eval-function-call
構⽂: <eval-function> "(" <eval-expression> ("," <eval-expression>)* ")"
説明: なし
eval-math-exp
構⽂: (<field>|<num>) ((+|-|*|/|%) <eval-expression>)*
説明: なし
例: pi() * pow(radius_a, 2) + pi() * pow(radius_b, 2)
evaled-field
構⽂: "eval("<eval-expression>")"
説明: 動的に評価されたフィールド
event-id
構⽂: <int>:<int>
説明: Splunk 内部イベント ID
eventtype-specifier
構⽂: eventtype=<string>
説明: 指定されたイベントタイプに⼀致するイベントをサーチします。
eventtypetag-specifier
構⽂: eventtypetag=<string>
説明: ⽂字列によりタグ付けされたすべての eventtype に⼀致するイベントをサーチします。
extract-opt
構⽂:
(segment=<bool>)|(auto=<bool>)|(reload=<bool>)|(limit=<int>)|(maxchars=<int>)|(mv_add=<bool>)|(clean_keys=<bool>)
説明: 抽出オプション「segment」は、キー/値のペアの場所を結果に記録するかどうかを指定します (内
部、false )。
「auto」は、「=」ベースの⾃動抽出を⾏うかどうかを指定します (true)。
「reload」は、props.conf および transforms.conf の再ロードを強制するかどうかを指定します (false)。
「limit」は、抽出するキー/値のペア数を指定します (50)。
「kvdelim」は、キーと値を区別する区切り⽂字リストの⽂字列です。
「pairdelim」は、キー-値のペアを相互に区別する区切り⽂字リストを指定した⽂字列です。
「maxchars」で、イベント内を調査する⽂字数を指定します (10240)。
「mv_add」 複数値フィールドを作成するかどうかを指定します。
transforms.conf の MV_ADD に優先します。
「clean_keys」 キーを消去するかどうかを指定します。
transforms.conf の CLEAN_KEYS に優先します。
例: reload=true
例: auto=false
extractor-name
28
構⽂: <string>
説明: transforms.conf にあるスタンザ
例: access-extractions
fields-opt
構⽂: fields=<string>?(,<string>)*
説明: 廃⽌ - トランザクションは引数として直接指定するフィールドのリストとして使⽤することをお勧め
します。例:「transaction fields="foo,bar"」ではなく、「transaction foo bar」と指定します。「fields」
制約は、フィールドのリストを取ります。サーチ結果をトランザクションのメンバーにするために、指定さ
れている各フィールドに値が存在する場合、当該トランザクション内の他のメンバーと同じ値でなければな
りません。たとえば、ホストに制約がある場合、「host=mylaptop」を持つサーチ結果と
「host=myserver」を持つサーチ結果を同じトランザクションに⼊れることはできません。ただし、ホスト
値を持たないサーチ結果は不整合が⽣じないため、「host=mylaptop」を持つサーチ結果と同じトランザク
ションに⼊れることができます。
例: fields=host,cookie
grouping-field
構⽂: <field>
説明: デフォルトで typelearner は、まず grouping-field の値によりイベントをグループ化し、次に含まれ
ているキーワードに基づいて、それらのグループをさらに結合していきます。デフォルトのグループ化
フィールドは「punct」です (句読点は _raw にあります)。
例: host
grouping-maxlen
構⽂: maxlen=<int>
説明: grouping-field 内で注⽬する⽂字数を指定します。負の値を設定すると、grouping-field の値全体が
イベントのグループ化に使⽤されます。
例: maxlen=30
host-specifier
構⽂: host=<string>
説明: 指定されたホストでイベントをサーチします。
hosttag-specifier
構⽂: hosttag=<string>
説明: ⽂字列によりタグ付けされたホストを持つイベントをサーチします。
hoursago
構⽂: hoursago=<int>
説明: 最近の n 時間をサーチします。(「starthoursago」と同等)
increment
構⽂: <int:increment>(s|m|h|d)?
説明: なし
例: 1h
index-expression
構⽂: \"<string>\"|<term>|<search-modifier>
説明: なし
index-specifier
構⽂: index=<string>
説明: デフォルトインデックスではなく、指定されたインデックスをサーチします。
input-option
構⽂: <string>=<string>
説明: inputs.conf の設定をオーバーライドします。
例: root=/home/bob
join-options
構⽂: usetime=<bool> | earlier=<bool> | overwrite=<bool> | max=<int>
説明: join コマンドへのオプション。usetime は、結合対象のメイン結果よりも早いまたは遅い
(usetime=true の時にのみ有効な [earlier] オプションによる) サブ結果への⼀致を制限するかどうかを⽰し
ます (デフォルト = false)。「overwrite」は、同じフィールド名が存在している場合に、サブ結果からの
フィールドをメイン結果のフィールドに上書きするかどうかを⽰します (デフォルトは真 (True))。max
は、各メイン結果が結合できる、最⼤サブ結果数を⽰します(デフォルトは 1、0 の場合無制限)。
例: max=3
例: usetime=t earlier=f
29
例: overwrite=f
例: usetime=t
keepevicted-opt
構⽂: keepevicted=<bool>
説明: 削除したトランザクションを出⼒するかどうかを指定します。evicted フィールドの値を確認すれば、
削除されたトランザクションと削除されていないトランザクションを判別することができます。削除された
トランザクションの場合、フィールドには 1 が設定されます。
key-list
構⽂: (<string> )*
説明: surrounding コマンドにフィルタを提供する、AND を使ったキーリスト
kmeans-cnumfield
構⽂: cfield=<field>
説明: 各イベントのクラスタ番号のフィールド名を管理します。
kmeans-distype
構⽂: dt=(l1norm|l2norm|cityblock|sqeuclidean|cosine)
説明: (L1/L1NORM equivalent to CITYBLOCK) を使⽤するための距離指標。L2NORM は
SQEUCLIDEAN と同等です。
kmeans-iters
構⽂: maxiters=<int>
説明: 収束に失敗するまでに許される最⼤の反復回数
kmeans-k
構⽂: k=<int>(-<int>)?
説明: 使⽤する初期クラスタの数範囲を指定できます。この場合、範囲内の各値が 1 回使⽤され、サマリー
データが与えられます。
kmeans-options
構⽂: <kmeans-reps>|<kmeans-iters>|<kmeans-tol>|<kmeans-k>|<kmeans-cnumfield>|<kmeansdistype>|<kmeans-showlabel>
説明: kmeans コマンドのオプション
kmeans-reps
構⽂: reps=<int>
説明: 無作為に開始するクラスタで kmeans を反復する回数
kmeans-showlabel
構⽂: showlabel=<bool>
説明: クラスタ番号をデータに追加するかどうかを設定します。
kmeans-tol
構⽂: tol=<num>
説明: アルゴリズム収束許容範囲
lit-value
構⽂: <string>|<num>
説明: なし
lmaxpause-opt
構⽂: maxpause=<int>(s|m|h|d)?
説明: 連続する時間領域内の 2 つの連続するイベント間の最⼤時間 (包含)
log-span
構⽂: (<num>)?log(<num>)?
説明: 対数ベースの期間を設定します。最初の数が係数の場合、2 番⽬の数が基底関数の係数となります。
指定する場合、実数 > = 1.0 および< base でなければなりません。base を指定した場合、実数 > 1.0 (厳
密に 1 より⼤きい値) でなければなりません。
例: 2log5
例: log
30
logical-expression
構⽂: (NOT)?<logical-expression>)|<comparison-expression>|(<logical-expression> OR?<logicalexpression>)
説明: なし
max-time-opt
構⽂: max_time=<int>
説明: なし
例: max_time=3
maxevents-opt
構⽂: maxevents=<int>
説明: 1 つのトランザクション内の最⼤イベント数です。負の値を指定した場合、この制約は無効になりま
す。
maxinputs-opt
構⽂: maxinputs=<int>
説明: 上位の結果をいくつスクリプトに渡すかを指定します。
例: maxinputs=1000
maxopenevents-opt
構⽂: maxopenevents=<int>
説明: LRU ポリシーを使って、トランザクションの削除を開始する前に、開かれているトランザクションの
⼀部となるイベントの最⼤数を指定します。
maxopentxn-opt
構⽂: maxopentxn=<int>
説明: LRU ポリシーを使って、トランザクションの削除を開始する前に、開いているプール内に保持する未
終了トランザクションの最⼤数を指定します。
maxpause-opt
構⽂: maxpause=<int>(s|m|h|d)?
説明: maxpause 制約は、トランザクションの各イベント間の停⽌時間を maxpause 以下に制限します。負
の値を指定した場合、maxpause 制約は無効になります。
maxsearchesoption
構⽂: maxsearches=<int>
説明: 実⾏するサーチの最⼤数です。これ以上のサーチ結果がある場合、警告が⽣成されます。
例: maxsearches=42
maxspan-opt
構⽂: maxspan=<int>(s|m|h|d)?
説明: maxspan 制約は、トランザクションのイベントの期間を maxspan 未満に制限します。負の値を指定
した場合、maxspan 制約は無効になります。
memcontrol-opt
構⽂: <maxopentxn-opt> | <maxopenevents-opt> | <keepevicted-opt>
説明: なし
metadata-delete-restrict
構⽂: (host::|source::|sourcetype::)<string>
説明: 削除を特定のホスト、ソース、またはソースタイプに制限します。
metadata-type
構⽂: hosts|sources|sourcetypes
説明: 返すメタデータのタイプを指定します
minutesago
構⽂: minutesago=<int>
説明: 最近の n 分間をサーチします。(「startminutesago」と同等)
monthsago
構⽂: monthsago=<int>
31
説明: 最近の n か⽉間をサーチします。(「startmonthsago」と同等)
multikv-copyattrs
構⽂: copyattrs=<bool>
説明: 元のイベントから抽出したイベントに⾮メタデータ (non-metadata) 属性をコピーするかどうかを指
定します (デフォルトは真 (True))。
multikv-fields
構⽂: fields <field-list>
説明: 抽出したイベントフィールドから、指定フィールドリストに存在しないフィールドをフィルタリング
します。
multikv-filter
構⽂: filter <field-list>
説明: 指定した場合、テーブル⾏にリスト内のいずれかの単語が存在しないと、イベントには抽出されませ
ん。
multikv-forceheader
構⽂: forceheader=<int>
説明: 特定の⾏番号 (1 ベース) をテーブルのヘッダーとして使⽤するように強制します。デフォルトでは、
1 つのヘッダー⾏がサーチされます。
multikv-multitable
構⽂: multitable=<bool>
説明: 元のイベントの単⼀の single _raw 内に、複数のテーブルを⼊れることができるかどうかを指定しま
す。(デフォルトは真 (True))
multikv-noheader
構⽂: noheader=<bool>
説明: ヘッダーのないテーブルを許容するか識別します。ヘッダーがない場合、フィールドには column1、
column2、... のような名前が使⽤されます。(デフォルトは偽 (False))
multikv-option
構⽂: <multikv-copyattrs>|<multikv-fields>|<multikv-filter>|<multikv-forceheader>|<multikvmultitable>|<multikv-noheader>|<multikv-rmorig>
説明: Multikv で使⽤できるオプション
multikv-rmorig
構⽂: rmorig=<bool>
説明: 結果セットから元のイベントを削除するかどうかを指定します (デフォルトは真 (True))。
mvlist-opt
構⽂: mvlist=<bool>|<field-list>
説明: トランザクションの複数値フィールドを、元のイベントのリストの到着順に並べるか、または⼀連の
⼀意のフィールド値を辞書式に並べるかを指定します。フィールドのカンマ/スペース区切りリストを指定し
た場合、それらのフィールドのみをリストとして表⽰します。
outlier-action-opt
構⽂: action=(remove|transform)
説明: 外れ値の処理を設定します。RM | REMOVE は、数値の外れ値を持つイベントを削除します。TF |
TRANSFORM は、外れ値をその閾値に切り捨てて、値にプレフィックス「000」を追加します。
outlier-option
構⽂: <outlier-type-opt>|<outlier-action-opt>|<outlier-param-opt>|<outlier-uselower-opt>
説明: outlierのオプション
outlier-param-opt
構⽂: param=<num>
説明: 外れ値検出の閾値を管理するパラメータです。type=IQR の場合、外れ値は param を乗じた四分位範
囲の範囲外の値として定義されます。
outlier-type-opt
構⽂: type=iqr
説明: outlier 検出の種類現在利⽤できるオプションは IQR (四分位範囲) のみです。
32
outlier-uselower-opt
構⽂: uselower=<bool>
説明: 中央値を下回る値の外れ値をサーチするかどうかを指定します
prefix-opt
構⽂: prefix=<string>
説明: 先⾏⼊⼒をオンにするプレフィックス
例: prefix=source
quoted-str
構⽂: "" <string> ""
説明: なし
readlevel-int
構⽂: 0|1|2|3
説明: イベントの読み込み深度を設定します。 0 : ソース、ホスト、ソースタイプのみ、 1 : 0 と _raw、
2 : 1 と kv, 3: 2 とタイプ ( バージョン3.2で廃⽌ )
regex-expression
構⽂: (\")?<string>(\")?
説明: pcre ライブラリがサポートする、Perl 互換の正規表現
例: ...| regex _raw="(?<!\d)10.\d{1,3}\.\d{1,3}\.\d{1,3}(?!\d)"
rendering-opt
構⽂: <delim-opt> | <mvlist-opt>
説明: なし
result-event-opt
構⽂: events=<bool>
説明: ジョブのイベントまたは結果の読み込みを指定するオプション(デフォルトは偽 (False))
例: events=t
savedsearch-identifier
構⽂: savedsearch="<user-string>:<application-string>:<search-name-string>"
説明: 成果物を読み込む保存済みサーチの⼀意の ID保存済みサーチは、トリプレット {user, application,
savedsearch name} で⼀意に識別されます。
例: savedsearch="admin:search:my saved search"
savedsearch-macro-opt
構⽂: nosubstitution=<bool>
説明: true の場合、マクロの置換は⾏われません。
savedsearch-opt
構⽂: <savedsearch-macro-opt>|<savedsearch-replacement-opt>
説明: なし
savedsearch-replacement-opt
構⽂: <string>=<string>
説明: マクロの置換で使⽤するキー/値のペア。
savedsplunk-specifier
構⽂: (savedsearch|savedsplunk)=<string>
説明: サーチ/ Splunk を指定して特定されるイベントのサーチ
savedsplunkoption
構⽂: <string>
説明: 保存済みサーチの名前
例: mysavedsearch
script-arg
構⽂: <string>
説明: スクリプトに渡される引数
33
例: [email protected]
script-name-arg
構⽂: <string>
説明: 実⾏するスクリプトの名前からパスと拡張⼦を取り除いたもの
例: sendemail
search-modifier
構⽂: <sourcetype-specifier>|<host-specifier>|<source-specifier>|<savedsplunkspecifier>|<eventtype-specifier>|<eventtypetag-specifier>|<hosttag-specifier>|<tag-specifier>
説明: なし
searchoption
構⽂: search=\"<string>\"
説明: map を実⾏するサーチ
例: search="search starttimeu::$start$ endtimeu::$end$"
searchtimespandays
構⽂: searchtimespandays=<int>
説明: なし
searchtimespanhours
構⽂: searchtimespanhours=<int>
説明: 期間演算⼦は、常に最後の時間境界セットから適⽤する必要があります。そのため、timespan 演算⼦
の左側に⼀番近いのが endtime 演算⼦である場合、これが starttime に適⽤されます。「enddaysago::1
searchtimespanhours::5」は、「starthoursago::29 enddaysago::1」と同等になります。
searchtimespanminutes
構⽂: searchtimespanminutes=<int>
説明: なし
searchtimespanmonths
構⽂: searchtimespanmonths=<int>
説明: なし
select-arg
構⽂: <string>
説明: SQL SELECT ステートメントの引数の値や構⽂については、
http://www.sqlite.org/lang_select.html をご覧ください。select-arg に「from results」が指定されていな
い場合、それが⾃動的に挿⼊されます。SQL select クエリを、渡されたサーチ結果に対して実⾏します。
select ステートメント内のすべてのフィールド参照には、先頭にアンダースコアを付ける必要があります。
そのため、「ip」は「_ip」として、「_raw」は「__raw」として\\参照する必要があります。select コマン
ドの実⾏前には、前のサーチ結果が⼀時データベーステーブル「results」に保管されます。⾏に値が存在し
ていない場合は、空のサーチ結果を防⽌するために無視されます。
selfjoin-options
構⽂: overwrite=<bool> | max=<int> | keepsingle=<int>
説明: selfjoin は結合フィールドに同じ値をもつ結果を結合します。「overwrite」は、その他 (other)の結果
のフィールドで、結合の基盤として使⽤する結果のフィールドを上書きするかどうかを指定します (デフォ
ルトは真 (True))。max は、各メイン結果が結合できるその他 (other) の結果の最⼤数を⽰します(デフォル
トは 1、0 の場合無制限)。「keepsingle」は、結合フィールドに⼀意の値を持つ結果 (結合する他の結果が
存在しない) を保持するかどうかを指定します(デフォルトは偽 (False))。
例: max=3
例: keepsingle=t
例: overwrite=f
server-list
構⽂: (<string> )*
説明: 差異の観点からの、ワイルドカード指定されている可能性があるサーバーの変更リストです。これが
正常かどうかを確認してください。* - header=[true | false] :必要に応じて、diff 出⼒を説明するヘッダー
を表⽰することができます。 * - attribute=[属性名] :結果の単⼀属性にのみ diff を使⽤できます。
sid-opt
構⽂: <string>
説明: 結果がロードされるジョブのサーチ ID
例: 1233886270.2
34
single-agg
構⽂: count|<stats-func>(<field>)
説明: 単⼀フィールド(evaled フィールドの可能性あり)に適⽤される単⼀の集計ワイルドカードは使⽤で
きません。イベントにまとめて適⽤する特別集計⼦「count」を使⽤する場合を除き、フィールドを指定す
る必要があります。
例: avg(delay)
例: sum({date_hour * date_minute})
例: count
slc-option
構⽂:
(t=<num>|(delims=<string>)|(showcount=<bool>)|(countfield=<field>)|(labelfield=<field>)|(field=<field>)|(labelonly=<bool>
説明: 単純なログクラスタ設定のオプション。「T=」には > 0.0 および < 1.0 の閾値を設定します。閾値が
1 に近いほど、より類似性が⾼いイベントが同じクラスタであるとみなされます。デフォルトは 0.8 です。
「delims」には、raw ⽂字列をトークン化するために使⽤する⼀連の区切り⽂字を設定します。デフォルト
では、0〜9、A〜Z、a〜z、および「_」を除くすべての⽂字が区切り⽂字となります。
「showcount」が yes の場合、これは各クラスタのサイズを表します (labelonly に真 (True) が設定されて
いない限りデフォルトは真 (True) )。「countfield」は、クラスタサイズを書き込むフィールド名です。
デフォルトは「cluster_count」です。「labelfield」は、クラスタ番号を書き込むフィールド名です。デ
フォルトは、「cluster_label」です。「field」は、分析対象フィールド名です。デフォルトは「_raw」で
す。
「labelonly」が真 (True) の場合、各クラスタを単⼀イベントに減らす代わりに、元のすべてのイベントを
保持して、単に各⾃のクラスタ番号でラベルを付けます。「match」は、使⽤する類似性判断⼿法を決定し
ます。
デフォルトは「termlist」です。termlist の場合、単語の並び順が完全に同⼀でなければなりません。
termset の場合は、⼀連の単語セット内で並び順が違っていても許容されます。
ngramset の場合は、trigram (3 ⽂字のサブ⽂字列) セットが⽐較されます。ngramset は、フィールド値が
⼤きい場合⾮常に処理が遅くなります。「punct」のような、短い⾮テキストフィールドに対して役⽴ちま
す。
例: t=0.9 delims=" ;:" showcount=true countfield="SLCCNT" labelfield="LABEL" field=_raw
labelonly=true
sort-by-clause
構⽂: ("-"|"+")<sort-field> ","
説明: ソートするフィールドのリストとソートの順(昇順または降順)
例: - time, host
例: -size, +source
例: _time, -host
sort-field
構⽂: <field> | ((auto|str|ip|num) "(" <field> ")")
説明: sort-field は、フィールドまたは sort-type とフィールドになります。sort-type には、フィールド値
を IP アドレスとして解釈する場合は「ip」を指定します。数字として処理する場合は「num」を指定しま
す。辞書式順序で並べ替える場合は「str」を指定します。⾃動的に判断する場合は、「auto」を指定しま
す。何もタイプを指定しない場合は、「auto」が仮定されます。
例: host
例: _time
例: ip(source_addr)
例: str(pid)
例: auto(size)
source-specifier
構⽂: source=<string>
説明: 指定されたソースからのイベントのサーチ
sourcetype-specifier
構⽂: sourcetype=<string>
説明: 指定されたソースタイプからのイベントのサーチ
span-length
構⽂: <int:span>(<timescale>)?
説明: 各ビンのスパンタイムスケールを使⽤する場合、これは時間範囲として使⽤されます。使⽤しない場
合、これは絶対バケツ「length」になります。
例: 2d
例: 5m
例: 10
split-by-clause
構⽂: <field> (<tc-option> )* (<where-clause>)?
説明: 分割するフィールドを指定します。数値フィールドの場合、デフォルトの離散化が適⽤されます。
35
srcfields
構⽂: (<field>|<quoted-str>) (<field>|<quoted-str>) (<field>|<quoted-str> )*
説明: フィールドはキー名または引⽤符で囲んだリテラルでなければなりません。
start-opt
構⽂: startswith=<transam-filter-string>
説明: サーチまたは eval フィルタリング式。あるイベントがこの条件を満たすと、新しいトランザクション
の開始としてマークされます。
例: startswith=eval(speed_field < max_speed_field/12)
例: startswith=(username=foobar)
例: startswith=eval(speed_field < max_speed_field)
例: startswith="login"
startdaysago
構⽂: startdaysago=<int>
説明: 開始時間を設定するためのショートカット。 開始時間 = 現在 - (n ⽇)
starthoursago
構⽂: starthoursago=<int>
説明: 開始時間を設定するためのショートカット。 開始時間 = 現在 - (n 時間)
startminutesago
構⽂: startminutesago=<int>
説明: 開始時間を設定するためのショートカット。 開始時間 = 現在 - (n 分)
startmonthsago
構⽂: startmonthsago=<int>
説明: 開始時間を設定するためのショートカット。 開始時間 = 現在 - (n か⽉)
starttime
構⽂: starttime=<string>
説明: イベントはこの時刻以降でなければなりません。時間形式が⼀致していなければなりません。
starttimeu
構⽂: starttimeu=<int>
説明: 開始時刻をエポックから n 秒に設定します。(UNIX 時間)
stats-agg
構⽂: <stats-func>( "(" ( <evaled-field> | <wc-field> )?")" )?
説明: 1 つまたは複数のフィールドに適⽤する集計関数で構成された指定⼦4.0 では、任意の評価式に適⽤
する集計関数も該当します。eval 評価式は、「{」と「}」で囲む必要があります。括弧内に式を指定しない
場合、集計は個別にすべてのフィールドに対して適⽤されます。フィールド値「*」での呼び出しと同等の処
理が⾏われます。数値集計⼦を不完全数値フィールドに適⽤した場合、その集計で列が⽣成されることはあ
りません。
例: count({sourcetype="splunkd"})
例: max(size)
例: stdev(*delay)
例: avg(kbps)
stats-agg-term
構⽂: <stats-agg> (as <wc-field>)?
説明: 必要に応じて新しいフィールド名に変更される統計指定⼦
例: count(device) AS numdevices
例: avg(kbps)
stats-c
構⽂: count
説明: フィールドの出現回数。
stats-dc
構⽂: distinct-count
説明: ィールドの⼀意の値数
stats-first
構⽂: first
36
説明: フィールドの先頭の値
stats-func
構⽂: <stats-c>|<stats-dc>|<stats-mean>|<stats-stdev>|<stats-var>|<stats-sum>|<stats-min>|<statsmax>|<stats-mode>|<stats-median>|<stats-first>|<stats-last>|<stats-perc>|<stats-list>|<statsvalues>|<stats-range>
説明: 統計集計⼦
stats-last
構⽂: last
説明: フィールドの最後の値
stats-list
構⽂: list
説明: 複数値エントリとしての、フィールドにおけるすべての値のリストです。値の並び順は、⼊⼒イベン
トの並び順を反映しています。
stats-max
構⽂: max
説明: フィールドの最⼤値 (⾮数値の場合は、辞書式)
stats-mean
構⽂: avg
説明: フィールドの算術的平均
stats-median
構⽂: median
説明: フィールドの中央値
stats-min
構⽂: min
説明: フィールドの最⼤値 (⾮数値の場合は、辞書式)
stats-mode
構⽂: mode
説明: フィールドの最頻値
stats-perc
構⽂: perc<int>
説明: フィールドの n 番⽬のパーセンタイル値
stats-range
構⽂: range
説明: 最⼤値と最⼩値の差 (数値の場合のみ)
stats-stdev
構⽂: stdev|stdevp
説明: フィールドの {標本,⺟集団} 標準偏差
stats-sum
構⽂: sum
説明: フィールドの値の合計
stats-values
構⽂: values
説明: 複数値エントリとしての、このフィールドのすべての異なる値のリスト値の並び順は、辞書式です。
stats-var
構⽂: var|varp
説明: フィールドの {標本,⺟集団} 分散
subsearch
37
構⽂: [<string>]
説明: サブサーチの指定
例: [search 404 | select url]
subsearch-options
構⽂: maxtime=<int> | maxout=<int> | timeout=<int>
説明: サブサーチの実⾏⽅法を指定します。
tc-option
構⽂: <bucketing-option>|(usenull=<bool>)|(useother=<bool>)|(nullstr=<string>)|(otherstr=<string>)
説明: フィールドによる分割処理を制御するオプションです。bucketing-option の他にも usenull は、
split-by フィールドが存在しないイベントに対して、シリーズを作成するかどうかを⽰します。このシリー
ズには、nullstr オプションの値でラベルが付けられます。デフォルトは NULL です。useother は、
<where-clause> の基準を満たさないためグラフに含まれていないデータシリーズに対して、シリーズを追
加するかどうかを⽰します。このシリーズには、otherstr オプションの値でラベルが付けられます。デフォ
ルトは OTHER です。
例: otherstr=OTHERFIELDS
例: usenull=f
例: bins=10
time-modifier
構⽂:
<starttime>|<startdaysago>|<startminutesago>|<starthoursago>|<startmonthsago>|<starttimeu>|<endtime
説明: なし
time-opts
構⽂: (<timeformat>)?(<time-modifier> )*
説明: なし
timeformat
構⽂: timeformat=<string>
説明: starttime、endtime のフォーマットを設定
例: timeformat=%m/%d/%Y:%H:%M:%S
timescale
構⽂: <ts-sec>|<ts-min>|<ts-hr>|<ts-day>|<ts-month>|<ts-subseconds>
説明: タイムスケールの単位
timestamp
構⽂: (MM/DD/YY)?:(HH:MM:SS)?|<int>
説明: なし
例: 10/1/07:12:34:56
例: -5
top-opt
構⽂:
(showcount=<bool>)|(showperc=<bool>)|(rare=<bool>)|(limit=<int>)|(countfield=<string>)|(percentfield=<string>)
説明: top コマンドの引数:showcount: count フィールド (countfield オプションを参照)およびその組の
カウントを作成するかどうかを指定します。
(T) showperc: percent フィールド (percentfield オプションを参照) およびその組の相対普及度を作成する
かどうかを指定します。
(T) rare: 設定して top または common を呼び出すと、呼び出し動作を rare として呼び出します。
(F) limit: 返す組数を指定します。0 を指定すると、すべての値が返されます。
(10) countfield: カウントを書き込む新規フィールド名 (デフォルトは「count」)。
percentfield:パーセンテージを書き込む新しいフィールドの名前(デフォルトは「percent」)。
transaction-name
構⽂: <string>
説明: トランザクションのサーチに使⽤する、transactions.conf に指定されているトランザクション定義
名です。他の引数 (例:maxspan) を transam の引数として指定した場合、それらの指定はトランザクショ
ン定義に指定されている値に優先します。
例: purchase_transaction
transam-filter-string
構⽂: "<search-expression>" | (<quoted-search-expression>) | eval(<eval-expression>)
説明: \i\ <search-expression> は引⽤符を含まない有効なサーチ式です。\i\ <quoted-searchexpression> は引⽤符を含む有効なサーチ式です。\i\ <eval-expression> 論理値を評価する有効なeval式
です。
例: eval(distance/time < max_speed)
38
例: "user=mildred"
例: ("search literal")
例: (name="foo bar")
trend_type
構⽂: (sma|ema|wma)<num>
説明: 算出するトレンドのタイプ、トレンドタイプとトレンドの期間 (2〜10000 の整数) から成り⽴ってい
ます。
例: sma10
ts-day
構⽂: days
説明: タイムスケール (⽇)
ts-hr
構⽂: hours
説明: タイムスケール (時)
ts-min
構⽂: minutes
説明: タイムスケール (分)
ts-month
構⽂: months
説明: タイムスケール (⽉)
ts-sec
構⽂: seconds
説明: タイムスケール (秒)
ts-subseconds
構⽂: us|ms|cs|ds
説明: マイクロ秒 (us)、 ミリ秒 (ms)、 1/100 ミリ秒 (cs)、 1/10 ミリ秒 (ds) で表したタイムスケール。
txn_definition-opt
構⽂: <maxspan-opt> | <maxpause-opt> | <maxevents-opt> | <field-list> | <start-opt> | <end-opt> |
<connected-opt>
説明: なし
value
構⽂: <lit-value>|<field>
説明: なし
where-clause
構⽂: where <single-agg> <where-comp>
説明: tc-by-clause にフィールドが指定されている場合に、特定のデータシリーズを含めるかどうかの基準
を指定します。このオプションの句を省略した場合、デフォルトの「where sum in top10」が使⽤されま
す。集計単語は各データシリーズに適⽤され、これらの集計結果は基準と⽐較されます。⼀般的にこのオプ
ションは、シリーズ内の質量分布を選択するのではなく、スパイクを選択するために⽤いられます。デフォ
ルトでは、濃度曲線下⾯積別上位 10 件のシリーズを探します。代わりに、sum を max に変更して、\\⾼
さが上位 10 件のスパイクを持つシリーズを探すことも可能です。
例: where max < 10
例: where count notin bottom10
例: where avg > 100
例: where sum in top5
where-comp
構⽂: <wherein-comp>|<wherethresh-comp>
説明: where 句の条件
wherein-comp
構⽂: (in|notin) (top|bottom)<int>
説明: 集計したシリーズ値を、上位/下位項⽬でグループ化するための基準です。
例: notin top2
例: in bottom10
例: in top5
39
wherethresh-comp
Syntax: (<|>)( )?<num>
説明: 集計したシリーズ値が、⼀定の閾値より⼤きいまたは⼩さい必要があることを指定する基準です。
例: < 100
例: > 2.5
x-field
構⽂: <field>
説明: X 軸として使⽤するフィールド
y-data-field
構⽂: <field>
説明: グラフ化するデータを持つフィールド
y-name-field
構⽂: <field>
説明: データシリーズのラベルとして使⽤する値があるフィールド
関数
評価関数
コマンド
これらの関数は eval 式の⼀部として
eval、fieldformat、 where
コマンドと共に使⽤できます。
使⽤法
⽂字列を受け付けるすべての関数は、リテラル⽂字列または任意のフィールドを受け付けることができま
す。Â
数値を受け付けるすべての関数は、リテラル数値または任意の数値フィールドを受け付けることができま
す。
⽐較関数と条件関数
関数
説明
例
case(X,"Y",...)
この関数は引数ペア X と Y を取ります。X 引 この例は、対応する HTTP ステータスコード
数は論理式で、最初から最後まで評価してい
の説明を返します。
きます。X 式の評価が最初に真 (True) となっ
た時に、対応する Y 引数が返されます。どれ ... | eval description=case(error == 404, "Not
も真 (True) でない場合は、デフォルトでは
found", error == 500, "Internal Server Error",
NULL が返されます。
error == 200, "OK")
cidrmatch("X",Y)
この関数は、IP アドレス Y が特定のサブネッ
ト X に所属する場合に真 (True) を返しま
す。この関数は、CIDR サブネットと照合す
る IP アドレスの、2 つの⽂字列引数を使⽤し
ます。
この例では cidrmatch を使って、ip がサブ
ネットと⼀致した場合は isLocal フィールド
に「local」を、⼀致しない場合は「not
local」を設定しています。
... | eval
isLocal=if(cidrmatch("123.132.32.0/25",ip),
"local", "not local")
この例は、cidrmatch をフィルタとして使⽤
しています。
... | where cidrmatch("123.132.32.0/25", ip)
coalesce(X,...)
この関数は任意の数の引数を取得して、
NULL ではない最初の値を返します。
IP アドレスが clientip または ipaddress に抽
出されている、⼀連のイベントがある場合を
考えてみましょう。この例は、新しいフィー
ルド ip を定義しています。このフィールド
は、どちらが NULL (イベントに存在してい
る) ではないかに応じて、clientip または
ipaddress の値を取ります。
... | eval ip=coalesce(clientip,ipaddress)
if(X,Y,Z)
この関数は 3 つの引数を取ります。最初の引
40
error の値を評価して、error=200 の場合は
if(X,Y,Z)
like(TEXT,
PATTERN)
数 X は論理演算式でなければなりません。X
の評価が 真 (True) の場合、結果は 2 番⽬の
引数 Y になります。X の評価が偽 (False) の
場合、結果は 3 番⽬の引数 Z を返します。
err=OK を、そうでない場合は err=Error を
返します。
この関数は、照合する⽂字列 TEXT と照合式
⽂字列 PATTERN の、2 つの引数を取りま
す。Â 最初の引数が Y の SQLite パターンの
ような場合にのみ真 (True) を返します。パ
ターン⾔語はテキスト完全⼀致、およびワイ
ルドカード %、および 1 ⽂字に⼀致する _ ⽂
字をサポートしています。
この例では、フィールド値が foo で始まる場
合に islike=TRUE を返します。
... | eval err=if(error == 200, "OK", "Error")
... | eval is_a_foo=if(like(field, "foo%"),
"yes a foo", "not a foo")
または
... | where like(field, "foo%")
null()
この関数は引数を取らず、NULL を返しま
す。評価エンジンは NULL を使って「値な
し」を表し、フィールドの値を消去するため
に NULL を設定します。
nullif(X,Y)
この関数はフィールド X と Y の 2 つの引数
を取り、引数が異なる場合は X を返します。
そうでない場合は NULL を返します。
match(SUBJECT,
"REGEX")
この関数は正規表現⽂字列 REGEX を
SUBJECT の値と⽐較して、論理値を返しま
す。REGEX で SUBJECT の任意のサブ⽂字
列との⼀致が⾒つかった場合、真 (True) が返
されます。
... | eval n=nullif(fieldA,fieldB)
この例は、フィールドが IP アドレスの基本
パターンに⼀致している場合にのみ真を返し
ます。この例では完全⼀致のために、^ と $
を使⽤していることに注意してください。
... | eval n=if(match(field,
"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"), 1, 0)
searchmatch(X)
validate(X,Y,...)
この関数は、サーチ⽂字列となる 1 つの引数
X を取ります。この関数は、イベントがサー
チ⽂字列に⼀致した場合にのみ、真 (True) を
返します。
... | eval n=searchmatch("foo AND bar")
この関数は、論理式 X と⽂字列 Y の 2 つの
この例は、有効なポートを確認するための簡
引数ペアを取り、偽 (False) と判定された最
単なチェックを⾏います。
初の式 X に対応する⽂字列 Y を返します。す
べてが真 (True) の場合はデフォルトの NULL ... | eval n=validate(isint(port), "ERROR:
が返されます。
Port is not an integer", port >= 1 AND port <=
65535, "ERROR: Port is out of range")
変換関数
関数
tonumber(NUMSTR,BASE)
tonumber(NUMSTR)
tostring(X,Y)
説明
例
この関数は⼊⼒⽂字列 NUMSTR を数値に変 この例では、164 を返します。
換します。BASE はオプションで、変換する
数値の基数を定義するために⽤いられます。 ... | eval n=tonumber("0A4",16)
BASE は 2..36 になります。デフォルトは
10 です。tonumber がフィールド値を数字
にパーシングできない場合は、NULL が返さ
れます。Â tonumber がリテラル⽂字列を数
字にパーシングできない場合は、エラーが返
されます。
この関数は、⼊⼒値を⽂字列に変換します。
⼊⼒値が数値の場合、それが⽂字列に変換さ
れます。⼊⼒値が論理値の場合は、対応する
⽂字列値、真 (True) または偽 (False) が返
されます。
この例は、「True 0xF 12,345.68」を返
します。
この関数には、最低 1 つの引数 X が必要で
す。X が数値の場合、2 番⽬の引数 Y は省
略可能で、また "hex" "commas" または
"duration" になります。
tostring(12345.6789, "commas")
tostring(X,"hex")
は、X を 16 進形式に
変換します。
はカンマを使って
X に書式を設定し、数値に⼩数が含ま
れている場合は、⼩数第 2 位に丸めま
す。
tostring(X,"duration") は、秒の X を認
識できる時間形式 HH:MM:SS に変換
します。
tostring(X,"commas")
41
... | eval n=tostring(1==1) + " " +
tostring(15, "hex") + " " +
この例は、foo=615
ます。
and foo2=00:10:15
を返し
... | eval foo=615 | eval foo2 =
tostring(foo, "duration")
この例では、totalSales 列をフォーマット
後、通貨記号とコンマを付けて表⽰されて
います。⾦額と tostring 関数の間にはピリ
オドを使⽤する必要があります。
...| fieldformat
totalSales="$".tostring(totalSales,"commas")
注意: eval コマンドと併⽤すると、値が
ASCII に変換されるため、想定通りのソー
トとならない場合があります。fieldformat
コマンドと tostring 関数を使って表⽰する
値をフォーマットします。起訴となる値は
fieldformat コマンドで変更されません。
暗号化関数
関数
説明
例
... | eval
md5(X)
この関数は、⽂字列値 X の MD5 ハッシュを返します。
sha1(X)
この関数は、FIPS 互換 SHA-1 ハッシュ関数に基づいて、⽂字列値 X の保護され
たハッシュを計算して返します。
... | eval
sha256(X)
この関数は、FIPS 互換 SHA-256 ハッシュ関数に基づいて、⽂字列値 X の保護さ
れたハッシュを計算して返します。
... | eval
sha512(X)
この関数は、FIPS 互換 SHA-512 ハッシュ関数に基づいて、⽂字列値 X の保護さ
れたハッシュを計算して返します。
... | eval
n=md5(field)
n=sha1(field)
n=sha256(field)
n=sha512(field)
⽇付と時間の関数
関数
説明
例
now()
この関数は引数を取らず、サーチの開始時刻を返します。時間は
Unix 時またはエポック時からの秒数で⽰されます。
relative_time(X,Y)
この関数はエポック時 X を最初の引数、相対時間指定⼦ Y を 2 番
⽬の引数として取り、Y を X に適⽤したエポック時の値を返しま
す。
strftime(X,Y)
... | eval
n=relative_time(now(),
"-1d@d")
この引数はエポック時の値 X を最初の引数として取り、2 番⽬の
この例では、_time
引数 Y に指定されている書式で⽂字列として表⽰します。書式設
フィールドから時間と
定オプションの詳細については、「共通の時間書式設定変数」を参 分を返します。
照してください。
... | eval
n=strftime(_time,
"%H:%M")
strptime(X,Y)
この引数は⽂字列 X で表される時刻を取り、Y に指定されている
書式を使ってタイムスタンプを解析します。書式設定オプションの
詳細については、「共通の時間書式設定変数」を参照してくださ
い。
timeStr の形式が
「11:59」の場合は、
タイムスタンプとして
それを返します。
... | eval
n=strptime(timeStr,
"%H:%M")
time()
この関数は実時間をマイクロ秒の単位まで返します。time() の値
は、eval コマンドによりイベントが処理された時期に基づいて、各
イベントに対して異なります。
情報関数
関数
isbool(X)
説明
例
この関数は引数 X を取り、X がブールの場合は真 (True) を返し
ます。
... | eval
n=if(isbool(field),"yes","no")
または
... | where isbool(field)
isint(X)
この関数は引数 X を取り、X が整数の場合は真 (True) を返しま
す。
... | eval n=if(isint(field),
"int", "not int")
または
... | where isint(field)
isnotnull(X)
この関数は引数 X を取り、X が NULL でない場合は真 (True)
42
... | eval
isnotnull(X)
を返します。フィールド (X) に値が含まれているかどうかを確
認する場合に役⽴ちます。
... | eval
n=if(isnotnull(field),"yes","no")
または
... | where isnotnull(field)
isnull(X)
この関数は引数 X を取り、X が NULL の場合は真 (True) を返
します。
... | eval
n=if(isnull(field),"yes","no")
または
... | where isnull(field)
isnum(X)
この関数は引数 X を取り、X が数値の場合は真 (True) を返しま
す。
... | eval
n=if(isnum(field),"yes","no")
または
... | where isnum(field)
isstr(X)
この関数は引数 X を取り、X が⽂字列の場合は真 (True) を返し
ます。
... | eval
n=if(isstr(field),"yes","no")
または
... | where isstr(field)
typeof(X)
この関数は 1 つの引数を取り、そのタイプの⽂字列表記を返し
ます。
この例は、
「NumberStringBoolInvalid」
を返します。
... | eval n=typeof(12) +
typeof("string") + typeof(1==2) +
typeof(badfield)
数学関数
関数
abs(X)
説明
例
この関数は数値 X を取り、その絶対値を返します。
この例では、absnum を返し
ます。absnum の値は、数値
フィールド number の絶対値で
す。
... | eval absnum=abs(number)
ceil(X),
ceiling(X)
exact(X)
exp(X)
この例では、n=2 を返しま
す。
この関数は値 X を次に⼤きな整数に丸めます。
... | eval n=ceil(1.9)
この関数は、数値 eval 計算を⼤きな精度で書式設定された出⼒を
表⽰します。
この関数は数値 X を取り、その指数関数
eX
を返します。
... | eval n=exact(3.14 * num)
以下の例では y=e3を返しま
す。
... | eval y=exp(3)
この例では、1 を返します。
floor(X)
この関数は値 X を次に⼩さな整数に丸めます。
... | eval n=floor(1.9)
この例は、bytes の値の⾃然
対数を返します。
ln(X)
この関数は数値 X を取り、その⾃然対数を返します。
... | eval lnBytes=ln(bytes)
log(X,Y)
log(X)
この関数は、1 つまたは 2 つの数値引数を取り、2 番⽬の引数を底
とした最初の引数 X の対数を返します。2 番⽬の引数 Y が省略さ
れている場合、この関数は 10 を底とした数値 X の対数を返しま
す。
43
... | eval num=log(number,2)
pi()
この関数は引数を取らず、精度が 11 桁のパイ定数を返します。
pow(X,Y)
この関数は 2 つの数値引数 X と Y を取り、X Y を返します。
... | eval
area_circle=pi()*pow(radius,2)
... | eval
area_circle=pi()*pow(radius,2)
この例では、n=4 を返しま
す。
... | eval n=round(3.5)
この関数は 1 つまたは 2 つの数値引数 X と Y を取り、X を Y に指
定されている⼩数位で丸めた値を返します。デフォルトでは、整数 この例では、n=2.56 を返しま
に丸められます。
す。
round(X,Y)
... | eval n=round(2.555, 2)
1.00*1111 = 1111、しかし
この関数は 1 つの数値引数 X を取り、その数値を適切な有効数字
に丸めます。
sigfig(X)
... | eval n=sigfig(1.00*1111)
は n=1110 を返します。
この例では、3 を返します。
この関数は 1 つの数値引数 X を取り、その平⽅根を返します。
sqrt(X)
... | eval n=sqrt(9)
複数値関数
関数
説明
例
... | eval x=commands("search foo
commands(X)
この関数はサーチ⽂字列 X またはサーチ⽂字列 X | stats count | sort count")
を含むフィールドを取り、X 内で使⽤されている
コマンドのリストを含む複数値フィールドを返し 「search」、「stats」、および
ます (ログイベントの監査を分析する場合を除い
「sort」が含まれる複数値
て、⼀般的にこの使⽤はお勧めできません)。
フィールド X を返します。
mvappend(X,...)
この関数は任意の数の引数を取得して、すべての
値の複数値結果を返します。引数には、⽂字列、
複数値フィールド、または単⼀値フィールドにな
ります。
... | eval
fullName=mvappend(initial_values,
"middle value", last_values)
mvcount(MVFIELD)
この関数は MVFIELD 引数を取ります。複数値
フィールドであれば、フィールドの数を返しま
す。単⼀フィールドの場合は、1を返します。そ
れ以外なら、NULL を返します。
... | eval n=mvcount(multifield)
mvdedup(X)
この関数は複数値フィールド X を取得して、重複
した値を省いた複数値フィールドを返します。
... | eval s=mvdedup(mvfield)
この関数は任意の論理演算式 X に基づいて、複数
値フィールドをフィルタリングします。論理演算
式 X は、⼀度に 1 つのフィールドのみを参照で
きます。
この例では、email フィールド
の値のうち「.net」または
「.org」で終わるものすべてが
返されます。
注意 :フィールド x の NULL 値も返します。
NULL 値が不要な場合は、 mvfilter(x!=NULL) の式
を使⽤します。
... | eval
mvfilter(X)
mvfind(MVFIELD,"REGEX")
mvindex(MVFIELD,STARTINDEX,
ENDINDEX)
mvindex(MVFIELD,STARTINDEX)
この関数は、複数値フィールド X の値で正規表現
に⼀致するものを探します。⼀致する値があった
場合、最初に⼀致した値のインデックスが返され
ます (0 から始まる)。⼀致する値がない場合は、
NULL が返されます。
n=mvfilter(match(email, "\.net$")
OR match(email, "\.org$"))
... | eval n=mvfind(mymvfield,
"err\d+")
この関数はフィールド MVFIELD、数値
STARTINDEX と ENDINDEX の 2 つまたは3つ
の引数を使⽤し、提供されたインデックスを使っ
インデックスは 0 から開始する
て複数値フィールドのサブセットを返します。
ため、この例では multifield 内
の 3 番⽬の値が返されます (存
mvindex(mvfield, startindex, [endindex])では、
在する場合)。
endindex を含めても含めなくてもかまいませ
ん。startindex、endindex の両⽅が負の値になる
こともあります。この場合、-1 が最後のエレメン ... | eval n=mvindex(multifield,
トになります。endindex を指定しない場合は、 2)
単純に startindex に対応する値が返されます。イ
ンデックスが範囲外または無効な場合、結果は
NULL になります。
44
mvjoin(MVFIELD,STR)
この関数は複数値フィールド MVFIELDと区切リ
⽂字 STR の2つの引数を使⽤します。ここでは、
STR を区切り⽂字として使ったコピーが
MVFIELD の個別の値と連結されます。
この例は、セミコロンを区切り
⽂字に使って、「foo」の個別の
値を結合します。
... | eval n=mvjoin(foo, ";")
mvrange(X,Y,Z)
この関数は、数値範囲の複数値フィールドを作成 この例は、値 1、3、5、7、9
を持つ複数値フィールドを返し
します。この関数は、開始番号 X、終了番号 Y
(除外)、およびオプションの増分 Z の、最⾼で 3 ます。
つの引数を取ります。増分が期間 ('7'd など) の場
合、開始番号と終了番号はエポック時として処理 ... | eval mv=mvrange(1,11,2)
されます。
mvsort(X)
この関数は複数値フィールド X を使⽤し、その値
を辞書的にソートした複数値フィールドを返しま
す。
mvzip(X,Y,"Z")
この関数は、 2 つの複数値フィールド X、Y を使
⽤し、X の最初の値、Y の最初の値、X の2番⽬
の値、Y の2番⽬の値の順序で、両⽅のフィール
ドを連結させます。第三の引数 Z はオプショナル
で、2つの値を結合する区切り⽂字を指定するた
めに使⽤します。デフォルトの区切り⽂字はカン
マです。Python の zip コマンドと同様です。
... | eval s=mvsort(mvfield)
... | eval
nserver=mvzip(hosts,ports)
統計関数
上記の関数に加え、stats、chart などの関連するコマンドで使⽤できる多様な統計関数です。包括的な統計関数が
あります。
関数
max(X,...)
説明
例
この関数は数値または⽂字列引数の任意数を取り、最⼤値を返し
ます。X は数値または⽂字列になります。⽂字列は数値よりも⼤
きくなります。
この例では、field の値に応じて
「foo」またはフィールドが返さ
れます。
... | eval n=max(1, 3, 6, 7,
"foo", field)
min(X,...)
この関数は数値または⽂字列引数の任意数を取り、最⼩値を返し
ます。X は数値または⽂字列になります。⽂字列は数値よりも⼤
きくなります。
この例では、field の値に応じて
1 またはフィールドが返されま
す。
... | eval n=min(1, 3, 6, 7,
"foo", field)
random()
この関数は引数を取らず、たとえば …2147483647 など、0 か
ら 231-1 までのランダムな整数を返します。
テキスト関数
関数
説明
例
len(X)
この関数は⽂字列 X の⽂字⻑を返します。
lower(X)
この関数は⽂字列引数を取り、⼩⽂字版の⽂字列を返
します。⼤⽂字を返すための、upper() 関数も⽤意さ
れています。
ltrim(X,Y)
ltrim(X)
replace(X,Y,Z)
この関数はフィールド X と Y の 1 つまたは 2 つの引
数を使⽤し、Y 内の⽂字を左側からトリミングした X
を返します。Y が指定されない場合、タブや空⽩が除
外されます。
... | eval n=len(field)
この例は、username フィールドの値
を⼩⽂字で返します。
... | eval username=lower(username)
この例は、x="abcZZ" を返します。
... | eval x=ltrim(" ZZZZabcZZ ", " Z")
この例では、⽉と⽇を⼊れ替えた⽇付
を返します。たとえば、⼊⼒が
この関数は、⽂字列 X 内の正規表現⽂字列 Y に⼀致す 1/14/2015 の場合、14/1/2015 が返
る各⽂字列を、代替⽂字列 Z で修正した⽂字列を返し されます。
ます。3 番⽬の引数 Z も、正規表現に⼀致するグルー
... | eval n=replace(date,
プを参照することができます。
"^(\d{1,2})/(\d{1,2})/", "\2/\1/")
rtrim(X,Y)
rtrim(X)
この関数はフィールド X と Y の 1 つまたは 2 つの引
数を使⽤し、Y 内の⽂字を右側からトリミングした X
を返します。Y が指定されない場合、タブや空⽩が削
除されます。
45
この例は、x="ZZZZabc" を返します。
... | eval n=rtrim(" ZZZZabcZZ ", " Z")
この例は、locDesc エレメントの値を
返します。
⼊⼒ソースフィールド X、および spath 式 Y (X から
抽出する値の場所を表した XML または JSON 形式の ... | eval locDesc=spath(_raw,
パス) を取ります。Y がリテラル⽂字列の場合は、引⽤ "vendorProductSet.product.desc.locDesc")
符で囲む必要があります (spath(X,"Y"))。Y がフィール
ド名 (パスの値を持つ) の場合は、引⽤符は必要ありま この例は、twitter イベントから
せん。結果が複数値フィールドになることもありま
hashtags を返します。
す。詳細は、spath サーチコマンドを参照してくださ
index=twitter | eval output=spath(_raw,
い。
spath(X,Y)
"entities.hashtags")
split(X,"Y")
substr(X,Y,Z)
trim(X,Y)
trim(X)
この関数はフィールド X と 区切り⽂字 Y の 2 つの引
数を使⽤し、X の値を区切り⽂字 Y で分割した複数値
フィールドを返します。
... | eval n=split(foo, ";")
この関数は、2 つまたは 3 つの引数を取ります。X は
⽂字列、Y と Z は数値となります。Y から始まり、Z
に指定されている⽂字数までの、X の⽂字列の⼀部を
返します。Z が指定されていない場合は、残りの⽂字
列を返します。
この例では、「str」と「ing」を連結し
て「string」を返します。
... | eval n=substr("string", 1, 3) +
インデックスは 1 から始まる SQLite セマンティクス
に従います。⽂字列の最後からの開始を指⽰するため
に、負のインデックスを使⽤することができます。
substr("string", -3)
この関数は 1 つまたは 2 つの⽂字列引数 X および Y
を使⽤し、Y 内の⽂字を両側からトリミングした X を
返します。Y が指定されない場合、タブや空⽩が除外
されます。
この例は、「abc」を返します。
... | eval n=trim(" ZZZZabcZZ ", " Z")
この例は、username フィールドの値
を⼤⽂字で返します。
この関数は⽂字列引数を取り、⼤⽂字版の⽂字列を返
します。⼩⽂字を返すための、lower() 関数も⽤意され
... | eval n=upper(username)
ています。
upper(X)
urldecode(X)
この関数は 1 つの URL ⽂字列引数 X を取り、エス
ケープされていない、または復号化された URL ⽂字列
を返します。
この例では、
「http://www.splunk.com/download?
r=header」が返されます。
... | eval
n=urldecode("http%3A%2F%2Fwww.splunk.com
%2Fdownload%3Fr%3Dheader")
三⾓関数と双曲線関数
関数
説明
例
... | eval n=acos(0)
acos(X)
この関数は、X の 逆余弦を [0, pi] のラジアン単位で計算します。
... | eval
degrees=acos(0)*180/pi()
acosh(X)
この関数は、X の逆双曲線余弦をラジアン単位で計算します。
... | eval n=acosh(2)
... | eval n=asin(1)
asin(X)
この関数は、X の 逆正弦を [-pi/2,+pi/2] のラジアン単位で計算します。
... | eval
degrees=asin(1)*180/pi()
asinh(X)
この関数は、X の逆双曲線正弦をラジアン単位で計算します。
... | eval n=asinh(1)
atan(X)
この関数は、X の 逆正接を [-pi/2,+pi/2] ラジアン単位で計算します。
... | eval n=atan(0.50)
atan2(Y,
この関数は、Y、X の 逆正接を [-pi,+pi] ラジアン単位で計算します。Y は
Y 軸の⽐率を⽰す値です。X は X 軸の⽐率を⽰す値です。
X)
値の計算では、両⽅の引数の記号を考慮して象限が決定されます。
atanh(X)
この関数は、X の逆双曲線正接をラジアン単位で計算します。
cos(X)
この関数は、X の余弦をラジアン単位で計算します。
.. | eval n=atan2(0.50,
0.75)
... | eval
n=atanh(0.500)
... | eval n=cos(-1)
46
... | eval n=cos(pi())
cosh(X)
この関数は、X の双曲線余弦ラジアン単位で計算します。
... | eval n=cosh(1)
この関数は、X と Y の辺を持つ直⾓三⾓形の斜辺を計算します。
hypot(X,Y)
この関数は、ピタゴラスの定理にある、X と Y の 2 乗の和の平⽅根を返し
ます。
... | eval n=hypot(3,4)
... | eval n=sin(1)
sin(X)
この関数は 正弦を計算します。
... | eval n=sin(90 *
pi()/180)
sinh(X)
この関数は 双曲線正弦を計算します。
... | eval n=sinh(1)
tan(X)
この関数は 正接を計算します。
... | eval n=tan(1)
tanh(X)
この関数は 双曲線正接を計算します。
... | eval n=tanh(1)
関連項⽬
統計およびグラフ関数, eval, fieldformat, where
Splunk Answers
何か質問がありますか?「Splunk Answers」では、特定の関数やコマンドを検索できます。
統計およびグラフ関数
これらは、chart、stats、および
timechart
コマンドで使⽤できる統計関数です。
stats に関連する関数は、eventstats、streamstats、および geostats とも関連しています。
chart、stats、timechart に関連する関数は、それぞれに対応するサマリインデックス sichart、sistats、お
よび sitimechart とも関連しています。
スパークラインに関連する関数も同様です。スパークラインはサーチコマンドではないことに注意してくだ
さい。これは、chart および stats にのみ適⽤される関数で、他の関数を呼び出すことができます。詳細は、
『サーチ』マニュアルの「サーチ結果へのスパークラインの追加」を参照してください。
関数
avg(X)
説明
フィールド X の平均値を返しま
す。mean(X) も参照してくださ
い。
コマンド
chart、stats、timechart、
sparkline()
例
この例は、平均応答時間を返
します。
avg(responseTime)
c(X) | count(X)
フィールド X の出現回数を返しま
す。⼀致する特定のフィールド値
を⽰す場合は、X を
eval(field="値")として指定してく
ださい。
chart、stats、timechart、
sparkline()
この例では、status の値が
404 のイベント数を返しま
す。
count(eval(status="404"))
これらはイベント数のスパー
クラインを⽣成します。最初
の関数は _raw フィールドを参
照します。2 番⽬は、user
フィールドでイベントをカウ
ントします。
sparkline(count)
sparkline(count(user))
dc(X) |
distinct_count(X)
フィールドの⼀意の値のカウント
を返します。
chart、stats、timechart、
sparkline()
この例は、⼀意の device 数
のスパークラインを⽣成し、
フィールド名を
「numdevicesnumdevices」
に変更します。
sparkline(dc(device)) AS
numdevices
この例は、各 sourcetype の
⼀意のソース数をカウント
し、カウントを 5 分間の期間
で分割します。
sparkline(dc(source),5m) by
47
sourcetype
earliest(X)
フィールド X の値の、時系列的に
もっとも早く出現した値を返しま
す。
chart、stats、 timechart
estdc(X)
フィールド X の⼀意の値の推定数
を返します。
chart、stats、 timechart
estdc_error(X)
フィールドの⼀意の値の推定数の
理論的誤差。誤差は、
「abs(estimate_value real_value)/real_value」の⽐率
を表しています。
chart、stats、 timechart
first(X)
フィールド X の初めて出現した値
を返します。⼀般的に、フィール
ドの最初に出現した値は、stats コ
マンドのイベント⼊⼒順序と相対
的な、このフィールドのもっとも
最近のインスタンスになります。
chart、stats、 timechart
last(X)
フィールド X の最後に出現した値
を返します。⼀般的に、フィール
ドの最後に出現した値は、stats コ
マンドのイベント⼊⼒順序と相対
的な、このフィールドのもっとも
古いインスタンスになります。
chart、stats、 timechart
latest(X)
フィールド X の値の、時系列的に
もっとも早く出現した値を返しま
す。
chart、stats、 timechart
list(X)
フィールド X のすべての値のリス
トを、複数値エントリとして返し
ます。値の順序は、⼊⼒イベント
の順序を反映しています。
chart、stats、 timechart
max(X)
フィールド X の最⼤値を返しま
す。X の値が数値でない場合、辞
書的順序によって最⼤値が検索さ
れます。
chart、stats、timechart、
フィールド X の算術平均を返しま
す。avg(X) も参照してください。
chart、stats、timechart、
mean(X)
sparkline()
この例は、「size」の最⼤値
を返します。
max(size)
sparkline()
この例は、「kbps」の値の平
均値を返します。
mean(kbps)
median(X)
フィールド X の中央値を返しま
す。
chart、stats、 timechart
注意: 中央値の計算は、イベント
数が奇数の場合により正確になり
ます。イベント数が偶数の場合、
中央値は 2 つの値の中で⼤きな⽅
を近似値として採⽤します。
min(X)
フィールド X の値の最⼩値を返し
ます。X の値が数値でない場合、
辞書的順序によって最⼩値が検索
されます。
chart、stats、 timechart
mode(X)
フィールド X の最も頻繁に出現す
る値を返します。
chart、stats、 timechart
p<X>(Y) |
数値フィールド Y の値の第 X 位
パーセンタイルを返します。X の
範囲は 0 から 99 までです。パー
センタイルの X 番⽬の関数は、Y
の値を⼩さい⽅から⼤きい⽅へと
ソートします。次に、0% が最低
値で 100% が最⾼値とみなす場
合、関数は X% 値の位置に対応す
る値を取得します。
chart、stats、 timechart
perc<X>(Y) |
exactperc<X>(Y) |
upperperc<X>(Y)
値のリスト
Y =
{10,9,8,7,6,5,4,3,2,1}
合:
perc50(Y)=6
perc95(Y)=10
関数 perc、p、および upperperc
は、要求された整数パーセンタイ
ルの近似値を提供します。利⽤さ
れている近似アルゴリズムは、任
意のパーセンタイルに対して実際
値の厳密な境界を提供していま
す。関数 perc および p は、範囲
の下限を表す単⼀の数字を返しま
す。upperperc は、概算の上限を
48
の場
返します。exactperc は正確な値
を提供しますが、濃度が⾼い
フィールドの場合、コストが⾮常
に⾼くなります。
per_day(X)
⽇当たりのフィールド X の値を返
します。
timechart
この例は、⽇当たりのフィー
ルド「total」の値を返しま
す。
per_day(total)
per_hour(X)
時間当たりのフィールド X の値を
返します。
timechart
この例は、時間当たりの
フィールド「total」の値を返
します。
per_hour(total)
per_minute(X)
分当たりのフィールド X の値を返
します。
timechart
この例は、分当たりのフィー
ルド「total」の値を返しま
す。
per_minute(total)
per_second(X)
秒当たりのフィールド X の値を返
します。
timechart
この例は、秒当たりの「kb」
の値を返します。
per_second(kb)
range(X)
stdev(X)
フィールド X の値が数値の場合に
のみ、フィールド X の最⼤値と最
⼩値の差を返します。
chart、stats、timechart、
フィールド X の標本標準偏差を返
します。
chart、stats、timechart、
sparkline()
sparkline()
この例は、ワイルドカードが
使われているフィールド
「*delay」 (「delay」と
「xdelay」の両⽅に対応) の
標準偏差を返します。
stdev(*delay)
stdevp(X)
フィールド X の⺟標準偏差を返し
ます。
chart、stats、timechart、
sum(X)
フィールド X の値の合計を返しま
す。
chart、stats、timechart、
sum(eval(date_hour *
sparkline()
date_minute))
フィールド X の値の2乗の合計を
返します。
chart、stats、timechart、
values(X)
フィールド X のすべての異なる値
を複数値エントリとして返しま
す。値の順序は、辞書的順序で
す。
chart、stats、 timechart
var(X)
フィールド X の標本分散を返しま
す。
chart、stats、timechart、
フィールド X の⺟分散を返しま
す。
chart、stats、timechart、
sumsq(X)
varp(X)
sparkline()
sparkline()
sparkline()
sparkline()
関連項⽬
評価関数, stats, chart, timechart, eventstats, streamstats, geostats
Answers
何か質問がありますか?「Splunk Answers」で関数やコマンドを検索できます。
時間書式変数と修飾⼦
⽇付と時間の書式変数
ここには、eval 関数の strftime() および strptime() の時間書式の定義、およびイベントデータ内のタイムスタン
プの記述に⽤いられる変数を記載しています。また、他の時間関数 relative_time() および now() を引数として使⽤
することもできます。
49
⽇付と時間の変数
変数
説明
%c
サーバーのオペレーティングシステムで定義されている現在のロケールの形式での⽇付と
時間。たとえば、Linux の⽶語の設定ではMon Jul 13 09:30:00 2015です。
%+
サーバーのオペレーティングシステムで定義されている現在のロケールでのタイムゾーン
の⽇付と時間。たとえば、Linux の⽶語の設定では Mon Jul 13 09:30:00 PDT 2015です。
時間変数
変数
説明
%Ez
Splunk 固有のタイムゾーン (分)。
%H
10 進数の時間 (24 時間形式)。00 から 23 の値で⽰される時間です。先頭のゼロは省略
できます。
%I
00 から 12 の値で⽰される 10 進数の時間。先頭のゼロは省略できます。
%k
%H と同様に、10 進数の時間 (24 時間形式) 。例えば 0 から 23 など、先頭のゼロはス
ペースに置換されます。
%M
10 進数の 分。00 から 59 の値で⽰される時間(分)
%N
幅による 1 秒未満の単位。(%3N = ミリ秒、 %6N = マイクロ秒、 %9N = ナノ秒)
%p
AM または PM。
%Q
1970-01-01 00:00:00 UTC の 1秒未満の単位コンポーネント(%3Q = ミリ秒、 %6Q =
マイクロ秒、 %9Q = ナノ秒で、値は 000〜999)。
%S
例えば 00 から 60 など、⼗進数で⽰される時間(秒)
%s
UNIX エポック時のタイムスタンプ、またはエポック (1970-01-01 00:00:00 +0000
(UTC)) からの秒数。 (1352395800 は、2012 年 11 ⽉ 8 ⽇⽊曜⽇の 09:30:00)
%T
24 時間表記の時刻 (%H:%M:%S)。
%X
現在のロケールの形式での時間⽶語の場合、午前9時30分は
%Z
タイムゾーンの省略形。たとえば、⽶国の東部標準時ではESTとなります。
%z
時間と分で表された (+hhmm または -hhmm) UTC からのタイムゾーンオフセット。 た
とえば、UTC の 5 時間前の場合、値は東部標準時である -0500 となります。
%%
リテラル「%」⽂字。
9:30:00
となります。
⽇付変数
変数
説明
%F
%Y-%m-%d (ISO 8601 ⽇付フォーマット) と同じ。
%x
現在のロケールの形式での⽇付(⽶語では 7/13/2015)
⽇の指定
変数
説明
%A
完全な曜⽇名(Sunday、...、Saturday)。
%a
曜⽇の省略形(Sun、...、Sat)。
%d
先頭の 0 が付いた 10 進数の⽇付(01〜31)。
%e
%d のように、10 進数の⽇付だけれども、先頭の 0 はスペースに置換されます(1〜
31)。
%j
先頭の 0 が付いた 10 進数のその年の経過⽇数 (通⽇)。(001〜366)
%w
10 進数の曜⽇(0 = ⽇曜、...、6 = ⼟曜)。
⽉の指定
変数
説明
%b
⽉名の省略形(Jan、Feb、など)。
%B
完全な⽉名(January、February、など)。
50
%m
10 進数の⽉(01〜12)。
年の指定
変数
説明
%y
10 進数の年 (世紀なし)。(00〜99)
%Y
10 進数の年 (世紀付き)。(2015)
例
時間書式⽂字列
結果
%Y-%m-%d
2014/12/31
%y-%m-%d
14-12-31
%b %d, %Y
Feb 11, 2015
q|%d%b '%y = %Y-%m-%d|
q|23 Apr '15 = 2015/04/23|
サーチの時間修飾⼦
修飾⼦を使ってサーチの時間範囲をカスタマイズしたり、サーチ結果のタイムスタンプの書式を変更したりするこ
とができます。
_time および _indextime フィールド
Splunk Enterprise でイベントを処理する場合、そのタイムスタンプはデフォルトのフィールド _time として保存
されます。このタイムスタンプはイベントの発⽣時刻で、エポック表記で保存されます。相対時間修飾⼦ earliest
または latest を使ってサーチすると、指定したタイムスタンプで始まる、終了する、またはその範囲内にある各
イベントがサーチされます。たとえば、earliest=@d でサーチする場合、相対時間修飾⼦は午前 0 時からの値が
_time の各イベントがサーチされます。
Splunk Enterprise によりインデックスが作成された時期に基づいて、イベントをサーチすることもできます。エ
ポックタイムスタンプは、デフォルトのフィールド _indextime に保存されます。_time に対する earliest や latest
と同様に、_index_time に基づいてイベントをサーチするには、相対時間修飾⼦ _index_earliest および
_index_latest を使⽤します。たとえば、前の時間にインデックスが作成されたイベントをサーチする場合は、次の
ように指定します:_index_earliest=-h@h _index_latest=@h とします。
注意 : index_earliest や index_latest のようなインデックス時間に基づく修飾⼦を使⽤する場合は、サーチにはイベ
ントを取得するイベントタイムウィンドウ も 必要です。つまり、Splunk Enterprise は⾮インデックス時ウィン
ドウだけでなく、インデックス時ウィンドウに基づいて、イベントチャンクを除外する可能性があります。イン
デックス時に基づいて各イベントを確実に取得するために、サーチは全時間に対して実⾏する必要があります。
時間修飾⼦の⼀覧
カスタム/相対時間範囲を指定するには、修飾⼦ earliest および
際には、現在の時刻を表す now を使⽤できます。
修飾⼦
earliest
_index_earliest
_index_latest
latest
構⽂
latest
を使⽤します。また、相対時間を指定する
説明
earliest=[+|]<time_integer><time_unit>@<time_unit>
_index_earliest=[+|]<time_integer><time_unit>@<time_unit>
_index_latest=[+|]<time_integer><time_unit>@<time_unit>
latest=[+|]<time_integer><time_unit>@<time_unit>
サーチの時間範囲のもっとも早い _time を指定しま
す。
サーチの時間範囲のもっとも早い _indextime を指定し
ます。
サーチの時間範囲のもっとも遅い _indextime を指定し
ます。
サーチの時間範囲のもっとも遅い _time を指定しま
す。
now
now()
現在の時刻を表します。earliest に指定すると、now()
はサーチの開始時刻になります。
time
time()
リアルタイムサーチの場合、time() は現在のマシン時
刻になります。
サーチウィンドウのカスタマイズについては、『サーチ』マニュアルの「サーチへのリアルタイム時間範囲ウィン
ドウの指定」を参照してください。
相対時間修飾⼦の指定⽅法
時間の量を⽰す⽂字列を使って相対時間を指定することができます (整数と単位)。時間単位の前に @ 記号を付記
することで、スナップ (snap to) 時間単位を指定することもできます。例:
51
[+|-]<time_integer><time_unit>@<time_unit>
1. ⽂字列は、現在の時刻からのオフセットを⽰すプラス (+) またはマイナス (-) 記号で開始します。
2. 時間量を数字と単位で定義します。以下の時間単位に対応しています。
秒:s、sec、secs、second、seconds
分:m、min、minute、minutes
時間:h、hr、hrs、hour、hours
⽇:d、day、days
週:w、week、weeks
⽉:mon、month、months
四半期:q、qtr、qtrs、quarter、quarters
年:y、yr、yrs、year、years
Note: ⽇曜の場合は、w0 および w7 で指定できます。
たとえば、1時間前からのサーチには、以下の時間修飾⼦のいずれかを使います。
earliest=-h
または
earliest=-60m
単⼀の時間⼊⼒を追加する場合、数字1は省略できます。つまり、「s」は「1s」、「m」は「1m」、「h」は
「1h」と同じです。
3. スナップ("snap to") 時間単位を指定できます。これにより時間量を切り捨てた最寄りの時間またはもっとも
遅い時間を指定することができます。時間量とスナップ (snap to) 時間単位を、「@」⽂字で区切ってください。
ステップ 2 に記載されている任意の時間単位を使⽤できます。たとえば、⽇曜の場合は @w, @week、およ
び @w0、⽉初めは @month、もっとも最近の四半期は (1 ⽉ 1 ⽇、4 ⽉ 1 ⽇、7 ⽉ 1 ⽇、10 ⽉ 1 ⽇)
@q、@qtr、または @quarter になります。特定の曜⽇として w0 (⽇曜⽇)、w1、w2、w3、w4、w5、およ
び w6 (⼟曜⽇) を使⽤することができます。
より詳細な相対時間定義を⾏うために、スナップ時間からのオフセット を指定または時間修飾⼦と⼀緒に
「チェーン」することができます。たとえば、@d-2h は今⽇の開始 (午前 0 時) にスナップし、そこから 2 時
間差し引きます。
最寄りのまたは⼀番遅い時間にスナップする場合、Splunk Enterprise は常に後⽅にスナップ またはもっと
も遅い時間に切り捨てた値 (指定時間以降ではない) にスナップします。たとえば、11:59:00 で時間に「ス
ナップ」した場合、12 時ではなく 11 時にスナップします。
スナップ量の前に時間オフセットを指定しない場合、Splunk Enterprise は「現在の時刻を指定された時間
量にスナップ」するものと解釈します。たとえば、現在時刻が⾦曜⽇の午後 11 時 59 分で、⼟曜⽇にス
ナップするために @w6 を使⽤した場合、結果は前の⼟曜⽇の午前12時 01 分になります。
例1: 現在の週の最初からイベントをサーチするには:
earliest=@w0
例2: 先週の営業⽇からイベントをサーチするには:
earliest=-5d@w1 latest=@w6
例3: 11 ⽉ 5 ⽇午後 8 時から 11 ⽉ 12 ⽇午後 8 時までなどのように、正確な境界を指定するには、次の時間形
式を使⽤します: %m/%d/%Y:%H:%M:%S
earliest="11/5/2015:20:00:00" latest="11/12/2015:20:00:00"
その他の時間修飾⼦
これらのサーチ時間修飾⼦は有効ですが、今後のリリースで削除され、関数がサポートされなくなる可能性が
あります 。
修飾⼦
構⽂
説明
daysago
daysago=<int>
過去「整数値 」⽇間のイベントをサーチします。
enddaysago
enddaysago=<int>
現在から「整数」⽇前の終了時間を設定します。
endhoursago
endhoursago=<int>
現在から「整数」時間前の終了時間を設定します。
endminutesago
endminutesago=<int>
現在から「整数」分前の終了時間を設定します。
endmonthsago
endmonthsago=<int>
現在から「整数」ヶ⽉前の終了時間を設定します。
endtime
endtime=<string>
指定した時間より前のイベントをサーチします (指定時
間は除外)。タイムスタンプの書式設定に
は、timeformat を使⽤します。
endtimeu
endtimeu=<int>
特定のエポック時 (UNIX 時間) より前のイベントをサー
チします。。
52
hoursago
hoursago=<int>
過去「整数値 」時間内のイベントをサーチします。
minutesago
minutesago=<int>
過去「整数値 」分内のイベントをサーチします。
monthsago
monthsago=<int>
過去「整数値 」ヶ⽉内のイベントをサーチします。
searchtimespandays
searchtimespandays=<int>
指定した⽇数範囲 (整数表記) 内をサーチします。
searchtimespanhours
searchtimespanhours=<int>
指定した時間範囲 (整数表記) 内をサーチします。
searchtimespanminutes
searchtimespanminutes=<int>
指定した分範囲 (整数表記) 内をサーチします。
searchtimespanmonths
searchtimespanmonths=<int>
指定した⽉数範囲 (整数表記) 内をサーチします。
startdaysago
startdaysago=<int>
現在の時刻から、指定⽇数前をサーチします。
starthoursago
starthoursago=<int>
現在の時刻から、指定時間数前をサーチします。
startminutesago
startminutesago=<int>
現在の時刻から、指定分数前をサーチします。
startmonthsago
startmonthsago=<int>
現在の時刻から、指定⽉数前をサーチします。
starttime
starttime=<timestamp>
指定⽇時から現在までをサーチします (指定時刻を含
む)。
starttimeu
starttimeu=<int>
指定エポック (UNIX 時間) からサーチします。
timeformat
timeformat=<string>
starttime と endtime 修飾⼦の時間書式を設定しま
す。デフォルト: timeformat=%m/%d/%Y:%H:%M:%S
サーチコマンドリファレンス
abstract
説明
各サーチ結果のテキストのサマリーまたは概要を作成します。元のテキストはサマリーに置き換えられます。サマ
リーはスコアリング機能によって作成されます。選択された maxlines より⼤きなイベント、隣接する⾏に多くの
単語が多くあるものは、単語の少ないものより優先されます。⾏にサーチ単語が存在している場合、その隣接⾏も
部分⼀致となり、コンテキストが返される場合があります。選択⾏間にギャップがある場合、⾏の前に省略記号
「...」が付けられます。
イベントのテキストの⾏数が
maxlines
以下の場合は変更されません。
構⽂
abstract [maxterms=<int>] [maxlines=<int>]
オプション引数
maxterms
構⽂: maxterms=<int>
説明: ⼀致する⽤語の最⼤数です。1〜1000 の値を指定できます。
maxlines
構⽂: maxlines=<int>
説明: ⼀致する⾏の最⼤数です。1〜500 の値を指定できます。
例
例1: 各サーチ結果の 5 ⾏までのサマリーを表⽰します。
... |abstract maxlines=5
関連項⽬
highlight
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、abstract コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
accum
説明
53
が数値であるそれぞれのイベントでは、accum コマンドによって現在までの合計、または数値の合計が計算さ
れます。累積の合計値は同じフィールドに返されるか、または指定する newfield に返されます。
field
構⽂
accum <field> [AS <newfield>]
必要な引数
field
構⽂: <string>
説明: 累積の合計を計算するフィールドの名前です。フィールドには数値が含まれる必要があります。
オプション引数
newfield
構⽂: <string>
説明: 結果を保存する新しいフィールドの名前です。
例
例 1:
分量フィールドの現在までの合計は「total_quantity」という名前の新しいフィールドに保存します。
... | accum quantity AS total_quantity
関連項⽬
autoregress, delta, streamstats, trendline
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、accum コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
addcoltotals
説明
コマンドは、サーチ結果の最後に新しい結果を追加します。結果にはそれぞれの数値フィールドの合
計が含まれます。または合計するフィールドを指定できます。結果は [統計] タブに表⽰されます。labelfield 引数
が指定されている場合、統計結果テーブルに指定した名前で列が追加されます。
addcoltotals
構⽂
addcoltotals [labelfield=<field>] [label=<string>] [<fieldlist>]
オプション引数
<fieldlist>
構⽂: <field> <field>...
説明: 有効なフィールド名のリストです。addcoltotals コマンドは、指定したリストにあるフィールドの合計
だけを計算します。フィールドのリストの⽤語では、ワイルドカードとしてアスタリスク (*) を使⽤できま
す。
labelfield
構⽂: labelfield=<fieldname>
説明: 結果に追加するフィールドの名前を指定します。
label
構⽂: label=<string>
説明: labelfield 引数と⼀緒に使⽤し、サマリイベントにラベルを追加します。labelfield 引数がない場
合、label 引数は無効となります。
デフォルト: Total
例
例 1:
すべてのフィールドの合計を算出し、合計をサマリーイベント「change_name」に保存します。
... | addcoltotals labelfield=change_name label=ALL
例 2:
54
テーブル内の 2 つの固有のフィールドに対して、列合計を追加します。
sourcetype=access_* | table userId bytes avgTime duration | addcoltotals bytes duration
例 3:
2 つの名前パターンに対してフィールドをフィルタリングして、いずれかの合計を取得します。
... | fields user*, *size | addcoltotals *size
例 4:
グラフに値の合計を表⽰します。
index=_internal source=*metrics.log group=pipeline |stats avg(cpu_seconds) by processor |addcoltotals
labelfield=processor
関連項⽬
addtotals, stats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、addcoltotals コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
addinfo
説明
サーチに関するグローバルな共通の情報を含む各イベントにフィールドを追加します。このコマンドは、主にサマ
リーインデックスの作成のために内部で使⽤されるコンポーネントです。
構⽂
addinfo
addinfo
コマンドを使⽤すると、各イベントに以下のフィールドが追加されます。
フィールド
説明
info_min_time
サーチの最も早い時間境界
info_max_time
サーチの最も遅い時間境界
info_sid
イベントを⽣成したサーチ ID
info_search_time
サーチが実⾏された時間
例
サーチに関する情報を各イベントに追加します。
... | addinfo
関連項⽬
search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、adinfo コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
addtotals
説明
コマンドは、各結果のすべての数値フィールドの合計を算出します。結果はサーチ&レポート App の
[統計] タブに表⽰されます。
addtotals
すべての数値フィールドを計算する代わりに、合計するフィールドのリストを指定できます。結果は新たなフィー
ルドに保存されます。
55
の場合、addtotals コマンドは列の合計を計算し、各フィールドの合計の後に新しい結果を追加しま
す。labelfield指定された場合、このサマリーイベントに追加されるフィールドです。その値は「label」オプショ
ンで設定されます。サマリイベントの計算では、 addtotals col=true コマンドを使う代わりに addcoltotals コマン
ドを使うこともできます。
col=true
構⽂
addtotals [row=bool] [col=bool] [labelfield=field] [label=string] [fieldname=field] [field-list]
オプション引数
field-list
構⽂: <field> <field> ...
説明: スペースで区切られた1つ以上の数値フィールドです。field-list に指定されたフィールドだけが合計
されます。field-list が指定されていない場合、すべてのフィールドは合計に含まれます。
使⽤法: フィールド名にワイルドカードを使⽤できます。たとえば、フィールド名が count1、count2、count3
の場合、count* と指定して「count」で始まるすべてのフィールドを表⽰できます。
デフォルト: すべての数値フィールドは合計に含まれます。
row
構⽂: row=<bool>
説明: 各イベントごとの field-list の合計を計算するかどうかを指定します。これは、テーブルの各⾏の合計
の計算に類似しています。合計は新しいフィールドにストアされます。このフィールドのデフォルトの名前
は Total です。他の名前を指定する場合は、fieldname 引数を使います。
使⽤法: デフォルトは row=true であるため、イベントごとの合計が不要なときのみ row 引数に row=false を指
定します。
デフォルト: 真 (True)
col
構⽂: col=<bool>
説明: イベントのリストの最後に、サマリイベントと呼ばれる新しいイベントを追加するかどうかを指定し
ます。テーブルの列の合計の計算と同様に、サマリイベントにはイベントの各フィールドの合計が表⽰され
ます。
デフォルト: false
fieldname
構⽂: fieldname=<field>
説明: 各イベントごとの field-list 合計を含むフィールドの名前を指定します。fieldname 引数は、row=true の
場合のみ有効です。
デフォルト: Total
labelfield
構⽂: labelfield=<field>
説明: サマリイベントのラベルにフィールドを指定します。labelfield 引数は col=true の場合のみ有効で
す。
* 結果で既存のフィールドを使⽤するには、その名前を labelfield 引数に設定します。たとえば、フィール
ドの名前が IP の場合は、labelfield=IP を指定します。
* 結果に lablefield に⼀致するフィールドがない場合は、labelfield 値を使って新しいフィールドが追加され
ます。
デフォルト: なし
label
構⽂: label=<string>
説明: サマリイベントの⾏ラベルを指定します。
* labelfield 引数が結果の既存のフィールドである場合は、その⾏に label 値が表⽰されます。
* labelfield 引数によって新しいフィールドが作成された場合、サマリイベントの⾏の新しいフィールドに
label が表⽰されます。
デフォルト: Total
例
1. 各イベントの数値フィールドの合計を算出します
... | addtotals
デフォルトのフィールド名
Total
を使って、結果に新しい列が追加されます。
2. 各イベントの合計を保存するフィールドの名前を指定します
... | addtotals fieldname=sum
56
3.合計するフィールドの名前の指定にワイルドカードを使⽤します
amount
で始まるフィールド、または、フィールド名に
という名前のフィールドに保存します。
size
が含まれるフィールドの合計を算出します。合計を
TotalAmount
... | addtotals fieldname=TotalAmount amount* *size*
4.特定のフィールドの合計を算出します
この例では、⾏の計算は⾏われていません。ここでは、単⼀のフィールドの合計だけが計算されています。
....| table Product QTR1 |addtotals row=f col=t labelfield=Product QTR1
5.すべてのフィールドの合計を算出し、サマリーイベントにラベルを追加します
すべてのフィールドの合計を算出します。サマリイベントに合計を投⼊し、Quarterly
します。
Totals
というラベルを追加
... | table Product QTR* | addtotals col=t labelfield=Product label="Quarterly Totals" fieldname="Product Totals"
関連項⽬
stats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、addtotals コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
analyzefields
説明
field を離散型確率変数として使⽤するこのコマンドはすべての数値フィールドを分析し、それぞれのフィールド
が classfield の値を predict できるかどうかを決定します。ここでは、ターゲットの classfield とその他のフィー
ルドの数値との関係の安定性が決定されます。
レポートコマンドである analyzefields は、すべての⼊⼒結果を読み込み、出⼒結果の各数値フィールドに 1 つの
⾏を⽣成します。この⾏に含まれる値は、classfield の値を予測する analyzefields コマンドのパフォーマンスを⽰
します。最⼤の z 確率の数値フィールドの条件付き配布が実際のクラスに⼀致する場合、イベントは正確なものと
⾒なされます。最⼤の z 確率は、classfield に基づきます。
構⽂
analyzefields classfield=<field>
analyzefields
コマンドには
analyzefields
コマンドは、5つの列を持つテーブルを返します。
af
の省略を使⽤できます。
フィー
ルド
説明
field
⼊⼒サーチ結果の数値フィールドの名前
count
サーチ結果でのフィールドの発⽣数
cocur
フィールドの共起性。classfield が存在する結果では、field も存在する結果の⽐率となりま
す。classfield を持つイベントに field が存在する場合、cocur は1 になります。
57
acc
フィールドの値を使って classfield の値を予測する際の精度です。これは、field があるイベントの合
計数に対して正確に予測される件数の⽐率です。この引数は数値フィールドに対してのみ有効です。
balacc
(balanced accuracy) は、 classfield の各値を予測する際の、⾮加重平均です。これは数値フィール
ドに対してのみ有効になります。
必要な引数
classfield
構⽂: classfield=<field>
説明: 複数クラス分析も可能ですが、最良の結果を得るためには
classfield
に2つの異なる値が必要です。
例
例 1:
「is_activated」の値を予測するために、数値フィールドを分析します。
... | analyzefields classfield=is_activated
関連項⽬
anomalousvalue
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、analyzefields コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
anomalies
説明
anomalies
コマンドを使⽤して、異常、または想定外の値を持つイベントやフィールドを検索します。
コマンドは、各イベントに意外性スコアを割り当て、そのスコアを unexpectedness という新しいフィール
ドにセットします。イベントが異常と考えられる、または threshold 値に依存しないかどうか threshold の値は意
外性スコアと⽐較されます。意外性スコアが threshold を超えた場合、イベントは想定外、または異常とみなされ
ます。
anomalies
サーチで anomalies コマンドを使⽤した後は、 [サーチ&レポート] ウィンドウの [関連するフィールド] のリスト
を確認してください。unexpectedness フィールドを選択し、イベントの値に関する情報を確認します。
イベントの意外性スコアは、過去のイベント (P) に対するイベント (X) の類似性に基づいて計算されます。
意外性の計算式を以下に⽰します。
unexpectedness =
[s(P and X) - s(P)] / [s(P) + s(X)]
この式で、s( ) はデータの類似性または均⼀性を表す測定基準です。この式は、X の追加が⼀連のイベントの類
似性にどれだけ影響するかの評価基準を提供します。ここでは、異なるサイズのイベントの結果が正規化されま
す。
構⽂
anomalies [threshold=num] [labelonly=bool] [normalize=bool] [maxvalues=int] [field=field]
[blacklist=filename] [blacklistthreshold=num] [by-clause]
オプション引数
threshold
データタイプ: threshold=<num>
説明: 想定される、または正常なイベントの上限を⽰す数値です。イベントの意外性がこの閾値の制限を上
回ると、イベントは想定外、または異常と⾒なされます。
デフォルト: 0.01
labelonly
データタイプ: labelonly=<bool>
説明: すべてのイベントを含む結果を出⼒するか、または閾値を超えたイベントだけを出⼒するかを指定し
ます。すべてのイベントに unexpectedness フィールドが追加されます。labelonly=true の場合、イベントは除
外されません。labelonly=false の場合、意外性スコアが閾値に満たないイベントが出⼒結果から除外されま
す。
デフォルト: false
normalize
データタイプ: normalize=<bool>
58
説明: フィールドの数値テキストを正規化するかどうかを指定します。アルゴリズムの⽬的上、フィールド
にある 0 から 9 の数字はすべて同⼀と⾒なされます。数値の配置と分量は引き続き重要です。正規化すべき
でないものの、カテゴリとして処理する数値データがフィールドに存在する場合は、normalize=false を設定
します。
デフォルト: 真 (True)
maxvalues
データタイプ: maxvalues=<int>
説明: フィールド値の意外性の決定の際に含める、過去のスライディングセットのサイズを指定します。デ
フォルトの計算では、過去 100 件のイベントが⽐較に使⽤されます。現在のイベント番号が 1,000 であれ
ば、計算では 900 から 999 までのイベントが使⽤されます。現在のイベント番号が 1,500 であれば、計算
では 1,400 から 1,499 までのイベントが使⽤されます。10 から 10,000 までの番号を指定できま
す。maxvalues の値が増加すると、イベント当たりの合計 CPU コストも線形的に増加します。⼤きな値を設
定すると、サーチに時間がかかります。
デフォルト: 100
field
データタイプ: field=<field>
説明: イベントの意外性を判断する際の分析対象フィールドです。
デフォルト: _raw
blacklist
データタイプ: blacklist=<filename>
説明: 想定されるものの無視されるべきイベントのリストを含む CSV ファイルの名前です。ブラックリスト
のイベントに類似する到着イベントは、異常ではない、または想定内として処理され、意外性スコアが 0.0
となります。この CSV ファイルは $SPLUNK_HOME/var/run/splunk/BLACKLIST.csv になければなりません。
blacklistthreshold
データタイプ: blacklistthreshold=<num>
説明: 到着イベントをブラックリストイベントとして判断するための類似度スコアの閾値を指定します。到
着イベントの類似度スコアが blacklistthreshold を超える場合、イベントは想定外としてマークされます。
デフォルト: 0.05
by 句
構⽂: by <fieldlist>
説明: 意外性検出の結果を分離するための、フィールドのリストを指定するために使⽤します。指定した
フィールドの各値の組み合わせに対して、それらの値を持つイベントが別個に取り扱われます。
例
例 1:
ブラックリスト「boring events」にあるイベントを無視し、関連するイベントを表⽰します。イベントリストを
降順にソートします。ここでは、意外性フィールドの最も⾼い値が⼀番上に表⽰されます。
... | anomalies blacklist=boringevents | sort -unexpectedness
例 2:
トランザクションと⼀緒に使⽤して、異常な時間領域を探します。
... | transaction maxpause=2s | anomalies
例 3:
各ソースの意外 (異常) なイベントを別個に探します。あるソースのパターンが、別のソースの意外性スコアに影
響することはありません。
... | anomalies by source
例 4:
の値を使って、異常なイベントのサーチを調整する⽅法を表⽰します。サーチはデフォルトの
値から開始します。
threshold
threshold
index=_internal | anomalies by group | search group=*
このサーチは、_internal インデックス内のイベントに注⽬して、同じ group 値を持つイベントセットの
unexpectedness スコアを算出します。これは⼀意の group 値の unexpectedness を算出するために使⽤されたイベント
のスライディングセットに、同じ group 値があるイベントだけが含まれていることを意味します次に search コマ
ンドを使って、group フィールドを含むイベントのみを表⽰します。結果の例を以下に⽰します。
59
デフォルトの threshold=0.01 では、これらのイベントの⼀部が⼤きく類似していることがわかります。次のサーチ
では、threshold を少し増やしています。
index=_internal | anomalies threshold=0.03 by group | search group=*
の値を⾼くすると、各イベントの違いが⼀⽬でわかります。タイムスタンプとキー/値のペアに注意して
ください。
threshold
意外性が低い (異常ではない) イベントを⾮表⽰にしたくないような場合もあります。このような場合は、代わり
に注⽬するイベントかどうかを知らせる別のフィールドを追加できます。たとえば、eval コマンドを使⽤しま
す。
index=_internal | anomalies threshold=0.03 labelonly=true by group | search group=* | eval threshold=0.03 | eval
score=if(unexpectedness>=threshold, "anomalous", "boring")
このサーチは labelonly=true を使って、注⽬する必要がないイベントも結果リストに保持しています。eval コマン
ドは、threshold フィールドの定義と値の設定に⽤いられています。anomalies コマンドの threshold 属性はフィール
ドではないため、この処理は明⽰的に⾏う必要があります。次に eval コマンドを使⽤して、他の新規フィールド
score を定義します。このフィールドの値は、unexpectedness による threshold 値の⽐較に基づいて、
「anomalous」 (異常) または「boring」 (注⽬は不要) になります。これらの結果の例を以下に⽰します。
関連項⽬
anomalousvalue、cluster、kmeans、outlier
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、anomalies コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
anomalousvalue
説明
コマンドは、他のイベントでのフィールドの値と⽐較して、各イベントのそれぞれのフィールドの
意外性スコアを計算します。数値フィールドに対して、発⽣頻度や平均からの標準偏差から異常と判断できるデー
タ値を識別または要約します。
anomalousvalue
異常と判断されたフィールドに対して、以下の⽅法で新しいフィールドが追加されます。フィールドが size など
の数値の場合、新しいフィールドは Anomaly_Score_Num(size) となります。フィールドが name などの数値以外の場
合、新しいフィールドは Anomaly_Score_Cat(name) となります。
構⽂
anomalousvalue <av-option> [action] [pthresh] [field-list]
必要な引数
60
なし
オプション引数
<av-option>
構⽂: minsupcount=<int> | maxanofreq=<float> | minsupfreq=<float> | minnormfreq=<float>
説明: 異常性の判別で考慮されるフィールドの制御⽅法を指定
av-option 引数の説明
maxanofreq
構⽂: maxanofreq=<float>
説明: 最⼤異常頻度を 0 ~ 1 の浮動⼩数点数で⽰します。異常が頻繁な場合、フィールドを検討から除
外します。フィールドの発⽣頻度合計に対するフィールド異常の発⽣率が maxanofreq の値を超える
と、フィールドは検討から除外されます。
デフォルト: 0.05
minnormfreq
構⽂: minnormfreq=<float>
説明: 最⼤正常頻度を 0 ~ 1 の浮動⼩数点数で⽰します。異常がさほど頻繁ではないフィールドを検討
から除外します。フィールドの発⽣頻度合計に対するフィールド異常の発⽣⽐率が p を下回ると、そ
のフィールドは検討から除外されます。
デフォルト: 0.01
minsupcount
構⽂: minsupcount=<int>
説明: 最⼩対応件数は正の整数でなければなりません。⼊⼒結果で発⽣数が少ないフィールドを破棄し
ます。⼊⼒イベントでフィールドの発⽣件数が n に満たない場合、フィールドは検討から除外されま
す。
デフォルト: 100
minsupfreq
構⽂: minsupfreq=<float>
説明: 最低対応頻度をを 0 ~ 1 の浮動⼩数点数で⽰します。発⽣頻度が低いフィールドを破棄しま
す。minsupfreq 引数は、イベントの合計数に対するフィールドの発⽣数の⽐率をチェックします。この
率が p に満たない場合、フィールドは検討から除外されます。
デフォルト: 0.05
action
構⽂: action=annotate | filter | summary
説明: 異常値を返す (annotate)、異常値を⽰すフィールドをフィルタリングする (filter)、 または異常統計
のサマリを返す(summary)のいずれかを指定します。
デフォルト: filter
アクション引数の説明
annotate
構⽂: action=annotate
説明: annotate アクションは、異常値を含むイベントに新しいフィールドを追加します。追加される
フィールドは、Anomaly_Score_Cat(field)、Anomaly_Score_Num(field) のいずれか、または両⽅です。
filter
構⽂: action=filter
説明: filter アクションは、異常な値を持つイベントを返します。異常な値を持たないイベントは破棄
されます。返されるイベントは action=annotate の場合と同様に注釈が付加されます。
summary
構⽂: action=summary
説明: summary アクションは、⽣成された各フィールドの異常統計を要約したテーブルを返します。
テーブルには、フィールドに含まれるイベントの件数、異常なイベントの割合、実⾏されたテスト
(カテゴリまたは数値)などが表⽰されます。
Output field
説明
field name
フィールドの名前
count
フィールドの表⽰件数
distinct_count
フィールド内の⼀意の値数
mean
フィールドの値の算出平均
catAnoFreq%
分類されたフィールドの異常頻度
catNormFreq%
分類されたフィールドの正常頻度
numAnoFreq%
数値フィールドの異常頻度
stdev
フィールドの値の標準偏差
supportFreq%
フィールドの対応頻度
61
useCat
カテゴリによる異常検出を使⽤。rare 値を検索するカテゴリ別の異常検出
useNum
数値による異常検出を使⽤。平均値から⼤きくかい離した値を検索する数値で
の異常検出この異常検出はガウス分布に基づいています。
isNum
数値フィールドかどうか
field-list
構⽂: <field>, <field>, ...
説明: 考慮するフィールドのリストです。フィールドリストが指定されていない場合は、すべてのフィール
ドが考慮されます。
pthresh
構⽂: pthresh=<num>
説明: 異常と⾒なされるために満たす必要がある確度閾値(10 進数)。
デフォルト: 0.01
例
例1. サーチ結果から異常な値のみを返します
... | anomalousvalue
これは、以下のサーチを実⾏する場合と同じです。
...| anomalousvalue action=filter pthresh=0.01
例2. ホスト「reports」からの異常な値を返します
host="reports" | anomalousvalue action=filter pthresh=0.02
例3. 各数値フィールドに対して、異常統計の要約を返します
source=/var/log* | anomalousvalue action=summary pthresh=0.02 | search isNum=YES
関連項⽬
analyzefields, anomalies, cluster, kmeans, outlier
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、anomalousvalue コマ
ンドの使⽤⽅法に関する質問と回答をご覧いただけます。
anomalydetection
説明
各イベントで確率を計算し、極端に確率が低い異常なイベントを特定するストリーミングとレポートのコマンドで
す。確率は、イベントの個別のフィールド値の頻度の積として定義されます。
カテゴリのフィールドでは、X の発⽣回数をすべてのイベントの件数で割って値 X の頻度が算出されます。
数値フィールドでは、まずすべての値のヒストグラムが作成され、 X を含むビンのサイズをイベントの件数
で割って X の頻度が算出されます。
コマンドには既存の
く異常検出が⾏われます。
anomalydetection
構⽂
anomalousvalue
と
outlier
62
SPL コマンドの機能が含まれ、ヒストグラムに基づ
anomalydetection [<method-option>] [<action-option>] [<pthresh-option>] [<field-list>]
オプション引数
<method-option>
構⽂: method = histogram | zscore | iqr
説明: 異常検出の⽅法を選択します。method=zscore の場合、コマンドは anomalousvalue として機能し
ます。method=iqr の場合は、コマンドは outlier として機能します。
デフォルト: histogram
<action-option>
構⽂: action=(filter | annotate | summary) if the method=(histogram | zscore), action=(transform | tf |
remove | rm) if the method=iqr
説明: 指定された⽅法に基づくアクションのオプションとデフォルトです。
<pthresh-option>
構⽂: pthresh=<num>
説明: method=histogram または method=zscore の場合に、イベントを異常と⾒なすために満たす必要のある確度
閾値(10 進数)を設定します。
デフォルト: method=histogram の場合、コマンドは分析中に各データセットの pthresh を計算しま
す。method=zscore の場合、デフォルトは 0.01 です。method=iqr の場合にこれを使⽤すると、無効な引数のエ
ラーが返されます。
ヒストグラムの動作説明
<action-option>
構⽂: action=annotate | filter | summary
説明: 追加フィールドのあるすべてのイベントを返す (annotate)、異常値を⽰すフィールドを除外する
(filter)、 異常統計のサマリを返す(summary)のいずれかを指定します。
デフォルト: filter
の場合、コマンドは異常なイベントを返し、他のイベントを除外します。各出⼒イベントには新しい
4 つのフィールドが含まれます。action=annotate の場合、コマンドは action=filter の際に追加される 4 つの新し
いフィールドを付加し、元のすべてのイベントを返します。
action=filter
Output field
説明
log_event_prob
イベントの確率の⾃然対数
probable_cause
イベントが異常な理由を最適に説明するフィールドの名前。ひとつのフィールド⾃体が異常
の原因になることはないものの、⾮常に稀な値によってイベントの確率が低下する場合があ
ります。
probable_cause_freq
probable_cause フィールドの値の頻度
max_freq
イベントのすべてのフィールド値の最⼤頻度
action=summary
の場合、コマンドは 6 つのフィールドを持つ単⼀のイベントを返します。
Output field
説明
num_anomalies
異常イベントの件数
thresh
異常イベントを分離するイベント確率の閾値
max_logprob
すべてのログ(event_prob)の最⼤値。
min_logprob
すべてのログ(event_prob)の最低値。
1st_quartile
すべてのログ(event_prob)の第 1 四分位
3rd_quartile
すべてのログ(event_prob)第 3 四分位
zscore アクションの説明
<action-option>
構⽂: action=annotate | filter | summary
説明: 異常値を返す (annotate)、異常値を⽰すフィールドをフィルタリングする (filter)、 または異常統計
のサマリを返す(summary)のいずれかを指定
デフォルト: filter
の場合、コマンドは異常な値をもつイベントを返し、他のイベントを破棄します。維持されたイベン
トには、annotate のように注釈が付けられます。
action=filter
action=annotate
の場合、コマンドは異常な値を含むイベントに新しいフィールド
を追加します。
Anomaly_Score_Cat(field)
と
Anomaly_Score_Num(field)
の場合、各フィールドの異常統計を要約したテーブルが⽣成されます。テーブルには、フィールド
に含まれるイベントの数、異常なイベントの⽐率、どのような判定だったか(カテゴリによる、または数値による
action=summary
63
判定)などが⽰されています。
IQR アクションの説明
<action-option>
構⽂: action=rm | remove | tf | transform
説明: 外れ値の処理を設定します。RM | REMOVE は、数値の外れ値を持つイベントを削除します。TF |
TRANSFORM は、外れ値をその閾値に切り捨てます。また、mark=true の場合、値にプレフィックス
「000」を追加します。
デフォルト: tf | transform
例
例1. 異常なイベントのみを返します
これらの 2 つのサーチは同じ結果を返します。2つ⽬のサーチに指定されている引数はデフォルト値です。
... | anomalydetection
... | anomalydetection method=histogram action=filter
例2. 異常件数に関する簡単なサマリを返します
異常件数に関する簡単なサマリのほか、検出に使⽤された閾値など、その他のいくつかの統計を返します。
... | anomalydetection action=summary
例3. 異常値を持つイベントを返します
... | anomalydetection method=zscore action=filter pthresh=0.05
例4. 外れ値を返します
... | anomalydetection method=iqr action=tf param=4 uselower=true mark=true
関連項⽬
analyzefields, anomalies, anomalousvalue, cluster, kmeans, outlier
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、anomalydetection コ
マンドの使⽤⽅法に関する質問と回答をご覧いただけます。
append
説明
サブサーチ の結果を現在の結果に追加します。append コマンドは履歴データのみに使⽤します。リアルタイムの
サーチで使⽤しても正しい結果となりません。
append コマンドの使⽤法については、『サーチ』マニュアルの「イベントのグループ化と相関について」を参照
してください。
構⽂
append [subsearch-options]* subsearch
必要な引数
subsearch
説明: 追加するイベントのソースを指定するセカンダリサーチサブサーチの詳細は、『サーチ』マニュアル
を参照してください。
オプション引数
subsearch-options
構⽂: maxtime=<int> | maxout=<int> | timeout=<int>
説明: サブサーチの実⾏⽅法を指定します。
サブサーチのオプション
maxtime
構⽂: maxtime=<int>
64
サブサーチを⾃動的に終了するまでの最⻑時間 (秒)
デフォルト: 60
maxout
構⽂: maxout=<int>
説明: サブサーチから出⼒される結果⾏の最⼤数
デフォルト: 50000
timeout
構⽂: timeout=<int>
説明: サブサーチが完全に終了するまでの最⻑待機時間 (秒)
デフォルト: 60
例
例1. append コマンドを使⽤して列の合計を追加する。stats コマンドを使⽤してイベントと特定の
フィールドをカウントする
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それをサーチの⼊⼒として追加
できます。
昨⽇カリフォルニア州周辺で発⽣した地震数を算出して、次に地震発⽣回数合計を計算します。
source=usgs place=*California* | stats count by magType | append [search index=usgs_* source=usgs place=*California*
| stats count]
この例では、すべてのカリフォルニア地域 (Region="*California") での地震をサーチし、サーチでのマグニチュー
ドタイプに基づいて地震の数をカウントします。
イベントの合計数と特定のフィールドのイベントの数を同時にカウントするために stats コマンドを使⽤すること
はできません。サブサーチは、発⽣した地震の合計数をカウントするために使います。このカウント数は、append
コマンドを使って前のサーチ結果に追加されます。
両⽅のサーチが
count
フィールドを共有するため、サブサーチの結果はカラムの最終の⾏に⼀覧化されます。
このサーチでは、列の合計を追加するために
ドが使⽤されます。
addcoltotals
コマンドを使⽤するのと同様の⽅法で、
append
コマン
例 2
この例は、チュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial] から
データ セットをダウンロードした後、指⽰に従って サーチにアップロードしてください。次に、時間範囲に
[その他] > [昨⽇] を指定してサーチを実⾏します。
Flower & Gift shop で昨⽇何か商品を購⼊した⼀意の顧客数をカウントして、次にそれを商品種別 (Candy、
Flowers、Gifts、Plants、および Balloons) ごとに分類します。また、各商品種別の購⼊が多い顧客、および商品
の購⼊量を記載したリストも⽣成します。
sourcetype=access_* action=purchase | stats dc(clientip) by category_id | append [search sourcetype=access_*
action=purchase | top 1 clientip by category_id] | table category_id, dc(clientip), clientip, count
この例では、まず最初に購⼊イベント (action=purchase) をサーチしています。これらの結果がパイプ⽂字で stats
コマンドに渡され、dc() or distinct_count() 関数を使って、商品を購⼊した個別のユーザー数が算出されます。商
品カテゴリ (category_id) に基づいてこの数量を分類するために、by 句を使⽤しています。
購⼊イベントのサーチと各商品カテゴリの上位商品購⼊者のカウント (clientip を使⽤) には、サブサーチが使わ
れています。これらの結果が、append コマンドを使って前のサーチ結果に追加されます。
ここで、table コマンドは、商品カテゴリ (category_id)、各商品カテゴリの商品を購⼊した個別の (⼀意の) ユー
65
ザー数 (dc(clientip))、各商品カテゴリの商品を多く購⼊しているユーザー (clientip)、およびそのユーザーが購⼊
した商品数 (count) のみを表⽰するために使⽤されています。
結果が同じフィールド値を共有しているのに、append コマンドは単純に、前のサーチ結果の最後にサブサーチの結
果を追加していることがお分かりでしょうか。出⼒の加⼯やフォーマットはできません。
例3. stats、count、top コマンドと共に append コマンドを使⽤して、web サーバーにアクセスした⼀
意の IP アドレス数を特定するページ要求タイプごとに web サーバーに最もアクセスしたユーザーを特定
する
この例では、サーチチュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ
形式の任意のデータを利⽤できます。『サーチチュートリアル』のこのトピック からデータ セットをダウ
ンロードした後、指⽰に従って サーチにアップロードしてください。
Web サーバーにアクセスした⼀意の IP アドレス数をカウントし、各ページ要求タイプ (method)でもっともアクセ
ス数が多いユーザーを検索します。
sourcetype=access_* | stats dc(clientip), count by method | append [search sourcetype=access_* | top 1 clientip by
method]
Web アクセスイベントはパイプ⽂字で dc() or distinct_count() コマンドに渡され、stats 関数を使って、サイトに
アクセスした個別の (⼀意の) ユーザー数が算出されます。count() 関数は、サイトにアクセスされた合計回数をカ
ウントするために⽤いられています。これらの数が、ページ要求 (method) 別に分類されます。
各ページ要求タイプ (method) に対して、アクセス数が多いユーザーを検索するために、サブサーチが使⽤されてい
ます。append コマンドは、テーブルの最後にサブサーチの結果を追加するために使⽤されています。
最初の 2 ⾏は、最初のサーチの結果です。最後の 2 ⾏は、サブサーチの結果です。両⽅の結果セットが、method
および count フィールドを共有しています。
関連項⽬
appendcols、join、set
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、append コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
appendcols
説明
サブサーチ の結果フィールドに⼊⼒のサーチ結果を追加します。アンダースコア ( _ ) から始まらず、最新の結果
に追加されないサブサーチの外部フィールド。最初のサブサーチの結果は最初のメインサーチの結果に、2番⽬の
サブサーチの結果は2番⽬のメインサーチの結果に、というように結果は順次結合されます。
構⽂
appendcols [override=bool|subsearch-options]* subsearch
必要な引数
66
subsearch
説明: サーチパイプラインです。サブサーチの仕組みについては、『サーチ』マニュアルを参照してくださ
い。
オプション引数
override
データタイプ: <bool>
説明: override 引数が false (デフォルト) で、フィールドがサブサーチとメインサーチの結果の両⽅にある
場合は、メインサーチの結果が使⽤されます。override=true の場合、サブサーチの結果が使⽤されます。
subsearch-options
構⽂: maxtime=<int> | maxout=<int> | timeout=<int>
説明: サブサーチの実⾏⽅法を指定します。
サブサーチのオプション
maxtime
構⽂: maxtime=<int>
説明: サブサーチを⾃動的に終了するまでの最⻑時間 (秒)
デフォルト: 60
maxout
構⽂: maxout=<int>
説明: サブサーチが返す結果の最⼤⾏数。
デフォルト: 50000
timeout
構⽂: timeout=<int>
説明: サブサーチが完全に終了するまでの最⻑待機時間 (秒)
デフォルト: 60
例
例 1:
「404」イベントをサーチして、各イベントのフィールドを前のサーチ結果に追加します。
... | appendcols [search 404]
例 2:
このサーチは、appendcols を使って特定サーバー上の特定フィールドの発⽣回数をカウントし、その値を使って
他のフィールドを算出します。
specific.server | stats dc(userID) as totalUsers | appendcols [ search specific.server AND "text" | addinfo | where
_time >= info_min_time AND _time <=info_max_time | stats count(field) as variableA ] | eval variableB =
exact(variableA/totalUsers)
まず、このサーチは stats を使って特定のサーバー上の個別のユーザー数をカウントし、その変数に名前
「totalUsers」を指定します。
apendcolを使ってサーバーをサーチし、そのサーバー上での特定のフィールドの発⽣回数をカウントしま
す。このカウントの名前は「VariableA」に変更されます。addinfo コマンドは、このサブサーチを
info_min_time と info_max_time の範囲内に制限します。
eval コマンドは、「variableB」の定義に⽤いられます。
結果は、totalUsers、variableA、variableB のテーブルになります。
関連項⽬
append、join、set
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、appendcols コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
appendpipe
説明
現在の結果に適⽤した、サブパイプラインの結果を追加します。次に appendpipe コマンドを使って、レポートコマ
ンドの出⼒を追加します。すべてのデータセットのサマリー、合計または説明の⾏が提供されるため、テーブルや
チャートの作成に便利です。追加の計算のために元の結果が必要になる場合にも役⽴ちます。
67
構⽂
appendpipe [run_in_preview=<bool>] [<subpipeline>]
引数
run_in_preview
構⽂: run_in_preview=<bool>
説明: コマンドをプレビューモードで実⾏するかどうかを指定します。デフォルトは真 (True) です。
例
例 1:
すべてのユーザーの各アクションの⼩計を追加します
index=_audit | stats count by action user | appendpipe [stats sum(count) as count by action | eval user = "ALL
USERS"] | sort action
関連項⽬
append、appendcols、join、set
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、appendpipe コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
arules
説明
arules は、フィールド値間の連合関係を探します。コマンドは Given フィールド、 Implied フィールド、Given
フィールドサポート、Implied フィールドサポートをもつテーブルを返します。[Given fields] と [Implied
fields] の値は、⾃分が提供したフィールドの値です。[Strength] の値は、[Given fields] と [Implied fields] の値
間の関係を表しています。
Michael Hahsler、Bettina Gruen、および Kurt Hornik (2012) による『arules: Mining Association Rules
and Frequent Itemsets』 (R package version 1.0-12) に記載されているように、arules アルゴリズムを実装し
ています。 このアルゴリズムは、他の顧客が参照または購⼊した商品に基づいて、関連する商品を提案する、オ
ンラインショッピング Web サイトで使われているアルゴリズムと似ています。
構⽂
arules (<arules-option>)* <fields>
必要な引数
<arules-option>
構⽂: <support> | <confidence>
説明: arules コマンドのオプション。
フィールド
構⽂: <fields>
説明: フィールド名のリスト。フィールド数は任意です。
arules のオプション
support
構⽂: sup=<int>
説明: サポート限度を指定します。算出されたサポートレベルとの関係がこの値未満の場合、出⼒結果には
含まれません。サポートオプションは正の整数でなければなりません。
デフォルト: 3
confidence
構⽂: conf=<float>
説明: 信頼区間限度を指定します。信頼区間 (Strength フィールドが表します) との関係により、出⼒結果に
含まれるかどうかが決まります。0〜1 でなければなりません。
デフォルト: .5
例
例1: フィールド間の関係の度合いをサーチします。
68
... | arules field1 field2 field3
例 2:
... | arules sup=3 conf=.6 field1 field2 field3
関連項⽬
associate、correlate
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、arules コマンドの使⽤
に関する質問と回答をご覧いただけます。
associate
説明
コマンドはフィールド間の相関関係を識別します。このコマンドは、値に基づいてエントロピーの変化
を計算することにより、フィールドペア間の関係を探します。エントロピーは、あるフィールドの値を知ること
が、もう⼀⽅のフィールドの値を予測するために役⽴つかどうかを表しています。
associate
情報理論において、エントロピーは乱数に関連付けられた不確実性の測定と定義されています。この場合、フィー
ルドに 1 つの⼀意の値のみが存在していると、そのエントロピーは 0 になります。複数の値がある場合は、それ
らの値がより均等に分散しているため、エントロピーが⾼くなります。
構⽂
associate [associate-option]* [field-list]
associate
コマンドは、次のフィールドを含む列を持つテーブルを出⼒します。
フィールド
説明
Reference_Key
⼀対のフィールドの最初のフィールドの名前
Reference_Value
⼀対のフィールドの最初のフィールドの値
Target_Key
⼀対のフィールドの2番⽬のフィールドの名前
Unconditional_Entropy
ターゲットキーのエントロピー
Conditional_Entropy
参照キーが参照値である場合のターゲットキーのエントロピー
Entropy_Improvement
条件なしのエントロピーと条件付きエントロピーの差
Description
エントロピーの計算に基づくフィールド値の関係を要約したメッセージ。Description は結
果をテキストで⽰したものです。これは、「「Reference_Key」に「Reference_Value'」の値
がある場合、「'Target_Key」のエントロピーは Unconditional_Entropy から
Conditional_Entropyに低下します」という形式になります。
Support
イベントの合計数に関連して、参照フィールドが参照値になる頻度を指定します。たとえ
ば、イベントの合計数でフィールド A が値 X になる頻度などです。
オプション引数
associate-option
構⽂: supcnt | supfreq | improv
説明: associate コマンドのオプション
field-list
構⽂: <field>, <field>, ...
説明: フィールドのリストフィールドのリストではワイルドカードを使⽤しないでください。フィールドの
リストを指定すると、分析はそれらのフィールドに限定されます。
デフォルト: すべてのフィールドが使⽤されます。
a ssoc ia te-op tions 引数の説明
supcnt
構⽂: supcnt=<num>
説明: 「参照キー=参照値」の組み合わせが現れる最低回数を指定します。正の整数でなければなりません。
デフォルト: 100
supfreq
構⽂: supfreq=<num>
説明: 「参照キー=参照値」の組み合わせの最低登場頻度 (合計イベント数に対する割合) を指定します。
69
デフォルト: 0.1
improv
構⽂: improv=<num>
説明: 「ターゲットキー」の限度、またはエントロピー改善の最⼩値を指定します。計算されたエントロ
ピーの改善は、この値以上でなければなりません。
デフォルト: 0.5
例
例 1:
この例は、Web アクセスログのフィールド内の関係の分析⽅法を表しています。
sourcetype=access_* status!=200 | fields method, status | associate | table Reference_Key, Reference_Value,
Target_Key, Top_Conditional_Value, Description
サーチの最初の部分は、200 以外のステータスを返した Web アクセスイベントを取得します。Web アクセス
データには多数のフィールドが含まれています。associate コマンドを使って、データ内のフィールドと値のすべ
てのペアの関係を参照することができます。単純化するために、この例では method および status の 2 つのフィー
ルドのみをサーチします。
また、出⼒を単純化するために、table コマンドを使って選択した列のみを表⽰します。
この特定の結果セットには、以下の項⽬が存在しています (左側のフィールド領域を参照)。
2 つのmethod の値:POST。GET
5 つのstatus の値:301、302、304、404、503
最初の結果⾏から、method=POST の場合に、それらのイベントの status フィールドがすべて 302 であることが分か
ります。associate コマンドを使⽤した結果、method=POST の場合、status は 302 であると考えられます。methodの値
を予測するために status=302 を参照している 3 ⾏⽬からも、同様の結論を得られます。
Reference_Key と Reference_Value は Target_Key と相関しています。
Top_Conditional_Value フィールドには、3 つのセクションがあります。
特定の Reference_Value に最も共通する値
データセットのフィールドでの Reference_Value の頻度
Reference Key に特定の Reference_Value をもつイベントの Target_Key で最も関連する値の頻度
これは、「CV (FRV% -> FCV%)」のように書式設定されています。ここで、CV は条件値、FRV は参照値の登場
割合 (パーセント)、そして FCV は参照値の場合に、条件値の登場割合 (パーセント)になります。
注意: この例は、Splunk チュートリアルからのサンプルデータを使⽤しています。このデータをダウンロード、
追加してこのサーチを実⾏すれば、これらの結果が表⽰されます。詳細は、『サーチチュートリアル』の
「Splunk へのチュートリアルデータの取り込み」を参照してください。
例 2:
相互に関係している結果を返します (相互に 3 つ以上の参照が存在している)。
index=_internal sourcetype=splunkd | associate supcnt=3
例 3:
ホスト「reports」からのすべてのイベントを分析し、相互に関係している結果を返します。
host="reports" | associate supcnt=50 supfreq=0.2 improv=0.5
関連項⽬
arules, correlate, contingency
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、associate コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
70
audit
説明
ローカル監査インデックスに保管されている、監査証跡情報を返します。このコマンドは、ギャップや改ざんの
チェックを⾏うと同時に、署名されている監査イベントを検証します。
構⽂
audit
例
例1: 監査インデックスの情報を表⽰します。
index="_audit" | audit
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、audit コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
autoregress
説明
⾃⼰回帰または移動平均の計算の準備として、過去の 1 つ以上の field の値をそれぞれのイベントにコピーしま
す。
最初の数件のイベントは、前の値が存在しないため、前の値による処理は⾏われません。
構⽂
autoregress field [AS <newfield>] [p=<p_start>[-<p_end>]]
必要な引数
field
構⽂: <string>
説明: フィールド名数値を持つフィールドが多いです。
オプション引数
p
構⽂: p=<int>[-<int>]
説明: 値をコピーする元となる過去のイベントを指定単⼀の整数、または数値の範囲を指定できます。たと
えば単⼀値が 3 の場合、autoregress コマンドは 3 つ前のイベントのフィールド値を新しいフィールドへコ
ピーします。範囲を指定すると、autoregress コマンドは過去のイベントの範囲のフィールド値をコピーしま
す。たとえば、 p=2-4 を指定すると、2 つ、3 つ、4 つ前のイベントのフィールド値が新しいフィールドへ
コピーされます。
デフォルト: 1
newfield
構⽂: <field>
説明: p に単⼀の整数を設定する場合、newfield 引数には単⼀のフィールド値をコピーするフィールドの名前
が指定されます。p に範囲が設定されている場合、無効になります。
引数が指定されていない場合は、単⼀または複数の値が <field>_p<num> という名前のフィールドにコ
ピーされます。たとえば、p=2-4 と field=count の場合、フィールド名は count_p2、count_p3、count_p4 になり
ます。
newfield
例
例 1:
各イベントで、3 つ前の「ip」フィールドの値を「old_ip」フィールドにコピーします。
... | autoregress ip AS old_ip p=3
例 2:
各イベントで、 2 つ、3 つ、4 つ、5 つ前の「count」フィールドの値をコピーします。
... | autoregress count p=2-5
71
引数が指定されていないため、値は 「count_p2」、「count_p3」、「count_p4」、および
「count_p5」という名前のフィールドにコピーされます。
new field
例 3:
現在のイベントと 4 つ前までのイベントのイベントサイズの移動平均を算出します。このサーチでは最初のイベ
ントの moving_average を除外します (NULL フィールドの合計は NULL とみなされ、フィールド値が誤ってい
るため)。
... | eval rawlen=len(_raw) | autoregress rawlen p=1-4 | eval moving_average=(rawlen + rawlen_p1 + rawlen_p2 +
rawlen_p3 +rawlen_p4 ) /5
関連項⽬
accum、delta、streamstats、trendline
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、autoregress コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
bin
bucket
コマンドは
bin
コマンドのエイリアスです。
説明
特定のセット内のすべての項⽬が同じ値を持つように field の値を調整することで、連続した数値を離散型セット
(ビン)に保管します。
注意: bin コマンドは、chart および timechart コマンドによって⾃動的に呼び出されます。bin コマンドは、chart
コマンドや timechart コマンドが処理できない統計だけに使⽤してください。
構⽂
bin [<bins-options>]* <field> [as <newfield>]
必要な引数
field
構⽂: <field>
説明: フィールド名を指定
オプション引数
bins-options
構⽂: bins | minspan | span | start-end
説明: 離散化オプション詳細は「bins-options 引数の説明」を参照してください。
newfield
構⽂: <string>
説明: フィールドの新しい名前
bins-options 引数の説明
bins
構⽂: bins=<int>
説明: 離散化処理でのビンの最⼤数。
minspan
構⽂: minspan=<span-length>
説明: データの時間範囲から期間を⾃動推測する、最⼩の期間粒度を指定
span
構⽂: span = <log-span> | <span-length>
説明: 時間または対数ベースの期間に基づく期間⻑を使って、各ビンのサイズを設定
<start-end>
構⽂: start=<num> | end=<num>
説明: 数値ビンの最⼩/最⼤範囲を設定します。フィールドのデータの分析によって、開始と終了の値が決
定されます。開始と終了の値の引数は、スパンの値が指定されない場合に使⽤されます。
これらの引数は、範囲を拡⼤するために使⽤します。縮⼩には使うことができません。たとえば、秒数を⽰
すフィールドの値が 0-59 だとします。スパンを 10 に設定すると、ビンは 10 単位で計算されます。つま
り、ビンは 0-9、10-19、20-29 などとなります。スパンを指定せず、終了の値を 1,000 と指定すると、実
際の開始の値と終了の値である 1,000 に基づいてビンが計算されます。
終了の値を 10 に設定し、値が >10 となると、終了の引数は無効となります。
72
log-span の構⽂の説明
log-span
構⽂: [<num>]log[<num>]
説明: 対数ベースのスパンを設定最初の数値は係数です。2 番⽬の数値が底です。最初の数値を指定する場
合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなければなりま
せん (厳密に 1 より⼤きい)。
「sp a n-length 」構⽂の説明
span-length
構⽂: <int>[<timescale>]
説明: 各ビンのスパン_time フィールドに基づいて離散化、または timescale と⼀緒に使⽤した場合、これは
時間範囲として取り扱われます。そうでない場合、これは絶対ビンの⻑になります。
<timescale>
構⽂: <sec> | <min> | <hr> | <day> | <month> | <subseconds>
説明: タイムスケールの単位。_time フィールドに基づいて離散化する場合に使⽤します。
デフォルト: sec
<sec>
構⽂: s | sec | secs | second | seconds
説明: タイムスケール (秒)
<min>
構⽂: m | min | mins | minute | minutes
説明: タイムスケール (分)
<hr>
構⽂: h | hr | hrs | hour | hours
説明: タイムスケール (時)
<day>
構⽂: d | day | days
説明: タイムスケール (⽇)
<month>
構⽂: mon | month | months
説明: タイムスケール (⽉)
<subseconds>
構⽂: us | ms | cs | ds
説明: マイクロ秒 (us)、 ミリ秒 (ms)、 10ミリ秒 (cs)、 100ミリ秒 (ds) で表したタイムスケール。
例
例 1:
各 5 分間の期間の各「host」の平均スループット (thruput) を返します。
... | bin _time span=5m | stats avg(thruput) by _time host
例 2:
ビンのサーチの結果、ビンの数が 10 となり、各ビンの raw イベント数が返されます。
... | bin size bins=10 | stats count(_raw) by size
例 3:
終了の値を必要な値より⼤きくし、すべての値が使⽤されるようにビンを作成します。
... | bin amount end=1000
関連項⽬
chart、timechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、bin コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
bucket
bucket
コマンドは
bin
コマンドのエイリアスです。「bin コマンド」の構⽂と例を参照してください。
関連項⽬
73
bin、chart、timechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、bin コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
bucketdir
説明
フィールド値を上位レベルのグループに置換します (ファイル名をディレクトリで置換するなど)。
到着イベントを取得して、複数のソースをディレクトリにまとめ、ファイル数が多くイベント数が少ないディレク
トリを優先して、 maxcount のイベントを返します。パスを持つフィールドは PATHFIELD (例:source) で、⽂字
列は 区切り⽂字で区切られます。オペレーションシステムにより、デフォルトの値は pathfield=source、
sizefield=totalCount、maxcount=20、countfield=totalCount、sep="/" または "\\" となります。
構⽂
bucketdir pathfield=<field> sizefield=<field> [maxcount=<int>] [countfield=<field>] [sep=<char>]
必要な引数
pathfield
構⽂: pathfield=<field>
説明: パスの値があるフィールドの名前を指定
sizefield
構⽂: sizefield=<field>
説明: バケツのサイズを定義する数値フィールドを指定
オプション引数
countfield
構⽂: countfield=<field>
説明: イベントカウントを記述する数値フィールドを指定
maxcount
構⽂: maxcount=<int>
説明: バケツに合計イベント数を指定
sep
構⽂: <char>
説明: 区切り⽂字OSにより、フォワードスラッシュ「/」またはダブルバックスラッシュ「\\」を指定しま
す。
例
例 1:
上位 10 個のソース、ディレクトリを返します。
... | top source | bucketdir pathfield=source sizefield=count maxcount=10
関連項⽬
cluster、dedup
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、bucket コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
chart
説明
コマンドは、結果を表形式のデータ構造で返す変換コマンド です。ここでは、縦棒、折れ線、⾯、および円
グラフなどを表⽰できます。詳しくは『ダッシュボードと視覚エフェクト』マニュアルを参照してください。
chart
chart コマンドでは統計関数を指定する必要があります。『サーチリファレンス 』の「統計およびグラフ関数」を
参照してください。
構⽂
74
chart [sep=<string>] [format=<string>] [cont=<bool>] [limit=<int>] [agg=<stats-agg-term>] ( <stats-aggterm> | <sparkline-agg-term> | <eval-expression>...)[ by <field> (<bins-option> )...[<split-by-clause>] ] | [
over <field> (<bins-option>)...(by <split-by-clause>] ]
必要な引数
agg
構⽂: agg=<stats-agg-term> | agg=<stats-agg-term>
説明: 集計⼦、関数を指定します。統計関数のほか、その説明と例を含む⼀覧については、「統計およびグ
ラフ関数」を参照してください。
sparkline-agg-term
構⽂: <sparkline-agg> [AS <wc-field>]
説明: スパークライン指定⼦です。必要に応じて、結果名を新たなフィールドに変更します。
Eval 式
構⽂: <eval-math-exp> | <eval-concat-exp> | <eval-compare-exp> | <eval-bool-exp> | <eval-functioncall>
Description: 宛先フィールドの値を表す、リテラル、フィールド、演算⼦、および関数の組み合わせ。詳
細は、「評価関数」を参照してください。
これらの評価が正常に機能するためには、操作の種類に応じて有効な値を使⽤する必要があります。たとえ
ば、追加の例外処理では、値が数値でないと算術操作で有効な結果を得ることはできません。また、Splunk
では 2 つのオペランドが両⽅とも⽂字列の場合、それを連結することができます。ピリオドが値を連結する
場合は、実際の種類に関係なく両⽅の値が⽂字列として処理されます。
オプション引数
bins-option
構⽂: bins | span | <start-end>
説明: Discretization コマンドのオプション。bin コマンドリファレンスを参照してください。
デフォルト: bins=300
cont
構⽂: cont=<bool>
説明: false の場合、出⼒内で x 値バケツの⾮連続シーケンスが隣接して表⽰されるように、X 軸を再描画
します。真 (True) の場合 (デフォルト)、値がないバケツはカウントが 0 または NULL のフィールドとして
表⽰されます。
format
構⽂: format=<string>
説明: 複数のデータシリーズと split-by 句が⼀緒に使⽤されている場合に、出⼒フィールド名の構築に⽤い
られます。formatは sep に優先し、stats 集計⼦および関数 ($AGG$) および split-by フィールドの値
($VALUE$) を使って、パラメータ化した式を指定することができます。
limit
構⽂: limit=<int>
説明: シリーズのフィルタリング限度を指定します。limit=N を設定すると、先頭の N 個の値が各シリーズの
合計に基づいてフィルタリングされます。limit=0 の場合はフィルタリングされません。
single-agg
構⽂: count | <stats-func>(<field>)
説明: 単⼀フィールドに適⽤される単⼀の集計評価フィールドになる場合もあります。ワイルドカードは使
⽤できません。イベントにまとめて適⽤する特別集計⼦「count」を使⽤する場合を除き、フィールドを指定
する必要があります。
sep
構⽂: sep=<string>
説明: 複数のデータシリーズと split-by 句が⼀緒に使⽤されている場合に、出⼒フィールド名の構築に⽤い
られます。これは、format に $AGG$<sep>$VALUE$ を設定したのと同等の意味を持ちます。
split-by-clause
構⽂: <field> (<tc-option>)* [<where-clause>]
説明: 分割するフィールド。フィールドが数値の場合、デフォルトの離散化が適⽤されます。離散化は、tcoption で定義されます。
統計関数
stats-agg-term
構⽂: <stats-func>( <evaled-field> | <wc-field> ) [AS <wc-field>]
説明: オプションとして新しいフィールド名に名前を変更できる統計指定⼦。指定⼦には、フィールドに
aggregation 関数を適⽤、または⼀連のフィールドセット、または任意の eval 式に aggregation 関数を適
⽤したものを利⽤できます。
stats-function
構⽂: avg() | c() | count() | dc() | distinct_count() | earliest() | estdc() | estdc_error() | exactperc<int>()
| first() | last() | latest() | list() | max() | median() | min() | mode() | p<in>() | perc<int>() | range() |
stdev() | stdevp() | sum() | sumsq() | upperperc<int>() | values() | var() | varp()
説明: stats コマンドと⼀緒に利⽤される関数。stats コマンドの起動時に、複数の関数を使⽤できます
が、by clause は 1 つのみ利⽤できます。
75
統計関数の説明と例を含む⼀覧は、「統計およびグラフ関数」を参照してください。
Sparkline 関数のオプション
スパークラインはテーブルのセル内に表⽰されるインライングラフで、各⾏のプライマリキーに関連する時間ベー
スの傾向を表⽰します。
詳細は、『サーチ』マニュアルの「サーチ結果へのスパークラインの追加」を参照してください。
sparkline-agg
構⽂: sparkline (count(<wc-field>), <span-length>) | sparkline (<sparkline-func>(<wc-field>),
<span-length>)
説明: フィールドの aggregation 関数の最初の引数、および必要に応じて、オプションの期間 (timespan)
指定⼦を取る、スパークライン (sparkline) 指定⼦です。timespan 指定⼦を使⽤しない場合は、サーチの時
間範囲に基づいて適切な期間が選択されます。スパークラインの対象外フィールドについては、count のみ
使⽤できます。
sparkline-func
構⽂: c() | count() | dc() | mean() | avg() | stdev() | stdevp() | var() | varp() | sum() | sumsq() | min() |
max() | range()
説明: スパークラインの値の⽣成に⽤いられる集計関数各スパークラインの値は、特定の時間バケツに該当
するイベントにこの集計を適⽤することにより⽣成されます。
ビンのオプション
bins
構⽂: bins=<int>
説明: 離散化処理でのビンの最⼤数。たとえば、ビンが 300 の場合、サーチでは 300 までの個別のビ
ンとなる最⼩のビンのサイズが特定されます。
デフォルト: 300
span
構⽂: span=<log-span> | span=<span-length>
説明: 時間に基づくスパンまたは対数 (log) に基づくスパンを使って、各ビンのサイズを設定します。
<start-end>
構⽂: end=<num> | start=<num>
説明: 数値ビンの最⼩/最⼤範囲を設定します。[start, end] の範囲外のデータは破棄されます。
L og-sp a n 構⽂
<log-span>
構⽂: [<num>]log[<num>]
説明: 対数に基づくスパンを設定します。最初の数値は係数です。2 番⽬の数値が底です。最初の数値
を指定する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数
でなければなりません (厳密に 1 より⼤きい)。
sp a n-length 構⽂
span-length
構⽂: [<timescale>]
説明: 時間に基づいたスパン⻑
<span>
構⽂: <int>
説明: 各ビンのスパンタイムスケールを使⽤する場合、これは時間範囲として使⽤されます。使⽤しな
い場合、これは絶対バケツ「length」になります。
<timescale>
構⽂: <sec> | <min> | <hr> | <day> | <month> | <subseconds>
説明: タイムスケールの単位
<sec>
構⽂: s | sec | secs | second | seconds
説明: タイムスケール (秒
<min>
構⽂: m | min | mins | minute | minutes
説明: タイムスケール (分)
<hr>
構⽂: h | hr | hrs | hour | hours
説明: タイムスケール (時)
<day>
構⽂: d | day | days
説明: タイムスケール (⽇)
<month>
構⽂: mon | month | months
説明: タイムスケール (⽉)
<subseconds>
76
構⽂: us | ms | cs | ds
説明: タイムスケール (マイクロ秒 (us)、 ミリ秒 (ms)、 10ミリ秒 (cs)、 100ミリ秒 (ds))
tc options
tc-option
構⽂: <bins-option> | usenull=<bool> | useother=<bool> | nullstr=<string> | otherstr=<string>
説明: フィールドによる分割の⽅法を指定するオプション。
usenull
構⽂: usenull=<bool>
説明: split-by フィールドが存在しないイベントに対して、シリーズを作成するかどうかを指定しま
す。
nullstr
構⽂: nullstr=<string>
説明: usenull が真 (True) の場合、このシリーズには nullstr オプションの値でラベルが付けられま
す。デフォルトは NULL です。
useother
構⽂: useother=<bool>
説明: <where-clause> の基準を満たさないためグラフに含まれていないデータシリーズに対して、シ
リーズを追加するかどうかを指定
otherstr
⽂字列: otherstr=<string>
説明: useother が真 (True) の場合、このシリーズには otherstr オプションの値でラベルが付けられ
ます。デフォルトは OTHER です。
where 句
where 句
構⽂: <single-agg> <where-comp>
説明: tc-by-clause にフィールドが指定されている場合に、特定のデータシリーズを含めるかどうかの
基準を指定します。⼀般的にこのオプションは、シリーズ内の質量分布を選択するのではなく、スパ
イクを選択するために⽤いられます。デフォルトでは、濃度曲線下⾯積別上位 10 件のシリーズを探し
ます。sum を max に変更して、スパイクが⾼い上位 10 件のシリーズを探すこともできます。これ
に、where コマンドとの関係はありません。
<where-comp>
構⽂: <wherein-comp> | <wherethresh-comp>
説明: where-clause の条件
<wherein-comp>
構⽂: (in | notin) (top | bottom)<int>
説明: where-clause のグループ化の条件。上位または下位のグループ化に含められる、または含められ
ない集計シリーズ値。
<wherethresh-comp>
構⽂: ( < | > ) <num>
説明: where-clause の閾値です。集計したシリーズ値は、指定した数値の閾値を上回る、または下回る
必要があります。
使⽤⽅法
評価式
コマンドは、式とともに使⽤できます。
ります。
eval
split-by
句を指定しない場合は、eval 式の名前を変更する必要があ
X 軸
グラフの X 軸に使⽤するフィールドを指定できます。X 軸の変数は by フィールドで指定され、必要に応じて離散
化されます。グラフ化されたフィールドは、必要に応じて数量に変換されます。
フィールドをX 軸としてチャートを⽣成する
を X 軸として表を作成します。
_time
timechart
コマンドと違い、chart コマンドは任意のフィールド
すべての by 、およびそれ以降の split-by clause の前、over キーワードの後に、 X 軸のフィールドを指定するこ
ともできます。limit と agg オプションにより、シリーズのフィルタリングを簡単に指定することができます。
where 句が明⽰的に指定されている場合、 limit と agg オプションは無視されます。
split-by フィールドの使⽤
split-by フィールドを使⽤すると、各列が split-by フィールドの個別の値を⽰す表が出⼒されます。これは、各⾏
が group-by フィールドの⼀意の単⼀値の組み合わせとなる stats コマンドと対照的です。デフォルトで、列の数
は 10 に制限されています。where 句を指定して、列の数を変更できます。
または timechart を使⽤する場合、関数内に指定したフィールドを split-by フィールドとして使⽤すること
はできません。
chart
77
たとえば、以下のようなサーチは実⾏できません 。sum 関数と by 引数にフィールド A が指定されています。この
場合、by 引数には別のフィールドを指定する必要があります。
... | chart sum(A) by A span=log2
eval
式を使うことで、この問題を回避できます。
例:
... | eval A1=A | chart sum(A) by A1 span=log2
基本的な例
1. foo の各値の max(delay) をグラフ化します
foo の各値の max(delay) を返します。
... | chart max(delay) over foo
2. bar の値による foo 分割の各値の max(delay) をグラフ化します
bar の値による foo 分割の各値の max(delay) を返します。
... | chart max(delay) over foo by bar
3. ⼀意の各ホスト (host) 、ユーザー (user) のペアに対して、最⼤遅延 (delay) の平均の⽐率をグラフ化
します
⼀意の各ホスト (host) ユーザー (user) のペアに対して、最⼤遅延 (delay) に対する平均サイズ (size) の⽐率を返
します。
... | chart eval(avg(size)/max(delay)) AS ratio by host user
4. 最⼤の遅延(delay) をサイズ(size)ごとにグラフ化し、サイズ(size)をビンに分離します
サイズ (size) による最⼤遅延 (delay) を返します。ここで「size」は、最⼤ 10 個の同じサイズのビンに分類され
ます。
... | chart max(delay) by size bins=10
5. ⼀意の各ホスト (host) に対して、平均サイズ (size) をグラフ化します
⼀意の各ホスト (host) に対して、平均サイズ (size) を返します。
... | chart avg(size) by host
6. イベント数を⽇付と時間でグループ化してグラフにします
イベント数を⽇付と時間でグループ化して返します。span を使って 7 ⽇間および 半⽇単位にグループ化しま
す。span は、コマンド直前のフィールドに適⽤されます。
... | chart count by date_mday span=3 date_hour span=12
その他の例
7. 各 Web サーバーに対して⾏われた、異なるページ要求の件数をグラフ化します
この例では、サーチチュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ
形式の任意のデータを利⽤できます。サーチチュートリアルのこのトピック からデータ セットをダウンロー
ドした後、指⽰に従って Splunk にアップロードしてください。
各 Web サーバーに対して⾏われた、異なるページ要求 GET と POST の数をグラフ化します。
sourcetype=access_* | chart count(eval(method="GET")) AS GET, count(eval(method="POST")) AS POST by host
この例では、eval 式を使って stats コマンドのカウント対象となる異なるフィールド値を指定しています。最初の
句は count() 関数を使って、method フィールドの値が GET の Web アクセスイベントをカウントしています。次
に、これらの結果を表すフィールド名を「GET」に変更しています (「AS」がこの処理を担当)。次に 2 番⽬の句
では、POST イベントに対して同様の処理を⾏います。次に両⽅のタイプのイベント数が、host フィールドが⽰す
Web サーバー別に分割されます。
これによって、以下のテーブルが返されます。
78
レポートを縦棒グラフとして書式設定するには、[視覚エフェクト] タブをクリックします。
このグラフには、各イベントタイプ (GET と POST) のイベント数合計が、host の値に基づいて表⽰されます。
GET および POST イベントの値範囲が異なっているため、Y 軸には対数スケールが使⽤されています。
8. トランザクション数を期間ごとにグラフ化します
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。サーチチュートリアルのこのト
ピック からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次
に、時間範囲に [全時間] を指定してこのサーチを実⾏します。
期間 (秒) に基づいてトランザクション数を表⽰するグラフを作成します。
sourcetype=access_* status=200 action=purchase | transaction clientip maxspan=10m | chart count by duration
span=log2
このサーチでは、transaction コマンドを使って、トランザクションを clientip フィールドを共有する 10 分間のタイ
ムスパンでのイベントをとして定義しています。transaction コマンドは、トランザクション内の最初のイベント
と最後のイベントのタイムスタンプの差を表す、新しいフィールド duration を作成します(maxspan=10s のた
め、duration の値をこれより⼤きくすることはできません)。
次にトランザクションが、パイプ⽂字で chart コマンドに渡されます。count() 関数は、トランザクション数のカ
ウントと、各トランザクションの期間によるカウント値の分割に使⽤されています。期間は秒単位で、多くの値が
存在していると考えられるため、このサーチでは span 引数を使って期間を log2 (span=log2) のビンにバケツ化して
います。これによって、以下のテーブルが作成されます。
レポートを縦棒グラフとして書式設定するには、[視覚エフェクト] タブをクリックします。
79
予想通り、⼤半のトランザクションは 0〜2 秒間で完了しています。ここでは、次に⼤きなトランザクション数の
スパンは、256〜512 秒 (約 4〜8 分) となっています(ただし、この例ではデータの⽣成⽅法が原因で、少し極端
な値となっています)。
9. トランザクションの期間に基づいて、トランザクションの平均イベント数をグラフ化します
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。サーチチュートリアルのこのト
ピック からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次
に、時間範囲に [全時間] を指定してこのサーチを実⾏します。
トランザクションの期間に基づいて、トランザクション内の平均イベント数を表⽰するグラフを作成します。
sourcetype=access_* status=200 action=purchase | transaction clientip maxspan=30m | chart avg(eventcount) by
duration span=log2
この例は、例 2 で定義したのと同じトランザクションを使⽤します。transaction コマンドは、単⼀のトランザク
ション内のイベント数を表す新たなフィールド eventcount も作成します。
次にトランザクションはパイプ⽂字で chart コマンドに渡され、avg() 関数を使って各期間の平均イベント数が算
出されます。期間は秒単位で、多くの値が存在していると考えられるため、このサーチでは span 引数を使って期
間を log2 (span=log2) のビンにバケツ化しています。これによって、以下のテーブルが作成されます。
レポートを円グラフとして書式設定するには、[視覚エフェクト] タブをクリックします。
80
円グラフの各くさび形 (ウェッジ) は、期間に対応するトランザクション内の平均イベント数を表しています。円
グラフの作成後、各セクション上にマウスカーソルを移動することで、それらの値を参照できます (Splunk Web
で)。
10. 顧客による購⼊をグラフ化します
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。サーチチュートリアルのこのト
ピック からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次
に、時間範囲に [その他] > [昨⽇] を指定してサーチを実⾏します。
Buttercup Games オンラインストアで昨⽇商品を購⼊した個別の⼈の数、および購⼊商品をグラフ化します。
sourcetype=access_* status=200 action=purchase | chart dc(clientip) over date_hour by categoryId usenull=f
このサーチは、購⼊イベント数を取得して、パイプ⽂字を使ってそれを chart コマンドに渡します。dc() または
distinct_count() 関数は、⼀意のビジター数 (clientip フィールドで特徴化) をカウントするために⽤いられます。
この値がその⽇の各時間に対してグラフ化され、購⼊の category_id に基づいて分割されます。また、これらは数
値なので、usenull=f 引数を使って値を持たないフィールドを除外しています。
これによって、以下のテーブルが作成されます。
レポートを折れ線グラフとして書式設定するには、[視覚エフェクト] タブをクリックします。
各折れ線グラフは、Buttercup Games オンラインストアで販売された各商品のタイプを表しています。各折れ線
の⾼さは、その時間帯に商品を購⼊した⼀意の⼈々の数を表しています。⼀般的に、オンラインショップでもっと
も⼈気の商品は、戦略 (Strategy) ゲームのようです。
81
レポートを、その⽇の各時間の購⼊数合計を表すスタック縦棒グラフとして書式設定することができます。
11. 地震の数とそれぞれのマグニチュードをグラフ化します
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それを Splunk への⼊⼒として
追加できます。
カリフォルニア州周辺での地震発⽣回数およびそのマグニチュードを表すグラフを作成します。
source=usgs place=*California* | chart count over mag by place useother=f
このサーチは、カリフォルニア地域で発⽣した地震数をカウントします。次にこの値が、マグニチュードに基づい
て各 place に分割されます。place 値は数値ではないため、useother=f 引数を使って⼀致しないイベントを除外して
います。
これによって、以下のテーブルが作成されます。
レポートをグラフとして表⽰するには、[視覚エフェクト] タブをクリックします。
関連項⽬
timechart, bin, sichart
82
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、chart コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
cluster
説明
コマンドは、相互の類似度に基づいてイベントをグループ化します。別のフィールドを指定しない限
り、cluster は _raw フィールドの内容に基づいてイベントをグループ化します。デフォルトのグループ化⼿法で
は、イベントを⽤語 (match=termlist) に分割し、イベント間のベクトルを算出します。どのイベントを⼀緒にグ
ループ化するかをより際⽴たせる場合は、t に⾼い閾値を設定してください。
cluster
cluster コマンドの結果は、各イベントに 2 つの新しいフィールドを追加します。countfield および labelfield パ
ラメータを使ってこれらのフィールド名を指定することができます。デフォルトは、cluster_count および
cluster_label になります。cluster_count の値は、クラスタの⼀部となるイベント数、またはクラスタサイズになり
ます。クラスタ内の各イベントには、所属するクラスタの cluster_label 値が割り当てられます。たとえば、サー
チが 10 件のクラスタを返す場合、クラスタには 1〜10 のラベルが付けられます。
構⽂
cluster [slc-option]*
オプション引数
slc-option
構⽂: t=<num> | delims=<string> | showcount=<bool> | countfield=<field> | labelfield=<field> |
field=<field> | labelonly=<bool> | match=(termlist | termset | ngramset)
説明: 単純なログクラスタ (slc) を設定するオプション
SLC オプション
t
構⽂: t=<num>
説明: クラスタリングの感度を制御するクラスタの閾値を指定します。この値は、0.0 より⼤きく、1.0 未満
でなければなりません。閾値が 1 に近いほど、より類似性が⾼いイベントが同じクラスタであるとみなされ
ます。
デフォルト: 0.8
delims
構⽂: delims=<string>
説明: raw ⽂字列をトークン化するために使⽤する⼀連の区切り⽂字を設定します。デフォルトでは、0〜
9、A〜Z、a〜z、および「_」を除くすべての⽂字が区切り⽂字となります。
showcount
構⽂: showcount=<bool>
説明: labelonly=false の場合、サーチヘッドでクラスタリングが⾏われる前に、インデクサーが各⾃のイベ
ントをクラスタ化します。showcount=true の場合は、各クラスタのイベントカウントが記録され、イベントに
注釈が付けられます。
デフォルト: showcount=false。 この場合イベントにはイベントカウントが追加されません。
countfield
構⽂: countfield=<field>
説明: showcount=true が true の場合にクラスタサイズを書き込むためのフィールドの名前です。クラスタサ
イズは、クラスタ内のイベント数です。
デフォルト: cluster_count.
labelfield
構⽂: labelfield=<field>
説明: クラスタ番号を書き込むためのフィールドの名前です。Splunk は各クラスタをカウントして、イベン
トをクラスタにグループ化する際にそれぞれにラベルを設定します。
デフォルト: cluster_label
field
構⽂: field=<field>
説明: 各イベントで分析するフィールドの名前
デフォルト: _raw
labelonly
説明: labelonly=<bool>
構⽂: 到着したイベントを保持し、それらが属するクラスタ(labelonly=true) を注記するか、またはクラス
タフィールドだけを新しいイベント(labelonly=false)として出⼒するかを選択します。labelonly=false の
場合、説明付きのイベントと、組み合わされるイベントの件数とともにクラスタのリストが出⼒されます。
デフォルト: false
match
構⽂: match=(termlist | termset | ngramset)
83
説明: イベント間の類似度を判断するために使⽤する⼿段を選択します。termlistは、フィールドを単語に分
割し、同じ⽤語順序を必要とします。termsetは、順序付けられない⽤語セットを受け付けま
す。ngramsetは、trigram (3⽂字のサブ⽂字列) のセットを⽐較します。ngramsetは、フィールド値が⼤きい場
合に⼤幅に遅くなり、punct のような短い⾮テキストフィールドに適しています。
デフォルト: termlist
使⽤⽅法
コマンドを使って、データ内のイベントが⼀般的であるか、そうでないかを特定します。たとえば、IT 上
の問題を調査する場合は、cluster コマンドを使って異常を特定します。この場合、異常なイベントとは⼤きな集
団にグループ化されていないイベント、またはわずかなイベントしか含まない集団です。また、エラーを探してい
る場合は、cluster コマンドを使っておよそどの位の種類のエラーが存在しているか、またデータ内で多く⾒られ
るエラータイプを確認します。
cluster
例
例 1
Splunk インスタンス内の不具合がある所を素早く返します。
index=_internal source=*splunkd.log* log_level!=info | cluster showcount=t | table cluster_count _raw | sort cluster_count
このサーチは、Splunk が⾃⼰に関する情報を _internal 内に記録しているログを活⽤しています。log_level が
DEBUG、WARN、ERROR、FATAL のすべてのログをクラスタ化して返します。次に各クラスタ内のイベント
数で、クラスタをソートします。
例 2
⼤きなグループにクラスタ化されていないイベントをサーチします。
... | cluster showcount=t | sort cluster_count
この場合、イベントのクラスタが返され、sort コマンドを使ってクラスタサイズの昇順 (cluster_count の値) に表
⽰されます。これらは、⼤きなグループにはクラスタ化されないため、それらを希な (⼀般的ではない) イベント
とみなすことができます。
例 3
類似のイベントをクラスタ化して、もっとも頻繁に登場するエラータイプをサーチします。
error | cluster t=0.9 showcount=t | sort - cluster_count | head 20
これは、インデックス内の「error」を含むイベントをサーチして、それらが類似している場合はグループ化しま
す。sort コマンドは、クラスタサイズ cluster_count に基づいて、イベントの降順に表⽰するために⽤いられま
す。⼤きなクラスタが最初に表⽰されます。次に head コマンドを使って、上位 20 件の⼤きなクラスタを表⽰し
ます。データ内に頻繁に登場するエラータイプが分かったら、より詳細な調査を⾏ってエラーの原因を発⾒するこ
とができます。
例 4
コマンドを使って、データの概要を確認します。⼤量のデータがある場合は、⼩さな時間範囲 (15 分や 1
時間など) に対して以下のサーチを実⾏するか、またはサーチをソースタイプやインデックスに制限します。
cluster
... | cluster labelonly=t showcount=t | sort - cluster_count, cluster_label, _time | dedup 5 cluster_label
類似度に基づいてイベントをグループ化し、各クラスタからいくつかのイベントを表⽰するこのサーチは、データ
の詳細を理解するために役⽴ちます。ここでは、クラスタ内の各イベントを保持するために labelonly=t を使⽤
し、それを cluster_label で追加しています。sort コマンドは、結果をサイズ (cluster_count)の降順、次に
cluster_label の降順、次にイベントのインデックス作成されたタイムスタンプ (_time) の降順に表⽰するために使
⽤されます。次に dedup コマンドを使って各クラスタの最初の 5 件のイベントを表⽰し、cluster_label を使って
各クラスタを区別します。
84
関連項⽬
anomalies、anomalousvalue、kmeans、outlier
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、cluster コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
cofilter
説明
このコマンドは、 field1 と field2 の値が⼀緒に発⽣している回数を特定します。
このコマンドは協調フィルタリング分析のひとつのプロセスを実⾏し、推奨事項を提案します。ユーザーフィール
ド (field1) とアイテムフィールド (field2) を踏まえ、アイテムのペアがどれほど共通しているかを特定します。つ
まり、X と Y が個別のアイテムで、A が個別のユーザーである場合、 合計(A が持つ X と Y ) が計算されます。
構⽂
cofilter <field1> <field2>
必要な引数
field1
構⽂: <field>
説明: フィールド名
field2
構⽂: <field>
説明: フィールド名
例
例 1:
と item の cofilter を特定します。user フィールドを先に指定し、次に item フィールドを指定します。出⼒は
アイテムの各ペアのイベントで、最初のアイテムとその頻度、2 つめのアイテムとその頻度、アイテムのペアの頻
度が含まれます。
user
... | cofilter user item
関連項⽬
associate、correlate
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、cofilter コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
collect
説明
指定するサマリーインデックスにサーチの結果を追加します。上書きされる場合を除き、イベントは新しいイベン
トを監視するディレクトリ内で、random-num_events.stash の名前形式のファイルに書き込まれます。イベントに
_raw フィールドが含まれている場合は、このフィールドが保存されます。イベントに _raw フィールドがない場合
は、すべてのフィールドをキー = 値 ペアのカンマ区切りリストに連結したフィールドが作成されます。
collect
コマンドを実⾏する前に、サマリーインデックスを作成する必要があります。
collect
コマンドは、全時間リアルタイムサーチにも利⽤することができます。
タイムスタンプを持たないイベントに collect コマンドを適⽤した場合、サーチ範囲のもっとも早い (または最⼩
の) 時間を使ってすべてのイベントの時間が指定されます。たとえば、過去 4 時間に対して collect を使⽤する場
合 (範囲:-4h to +0h)、サーチ実⾏時の 4 時間前のタイムスタンプが、タイムスタンプを持たないすべてのイベ
ントに割り当てられます。
全時間サーチで collect を使⽤し、イベントにタイムスタンプがない場合、現在のシステム時刻がタイムスタンプ
として使⽤されます。
タイムスタンプを持たないデータのサマリーインデックス作成の詳細は、『ナレッジ管理』マニュアルの「サマ
リーインデックスを使ったレポート効率の向上」を参照してください。
85
構⽂
collect index [arg-options]*
必要な引数
インデックス
構⽂: index=<string>
説明: イベントを追加するサマリ―インデックスの名前です。インデックスはイベントが追加される前に存
在している必要があります。インデックスは⾃動で作成されません。
オプション引数
arg-options
構⽂: addtime=<bool> | file=<string> | spool=<bool> | marker=<string> | testmode=<bool> | run-inpreview=<bool> | host=<string> | source=<string> | sourcetype=<string>
説明: collect コマンドのオプションの引数
a rg-op tions 引数の説明
addtime
構⽂: addtime=<bool>
説明: 収集したいサーチ結果に _raw フィールドがない場合 (stats、chart、timechartの結果など) は、イベ
ントの前に時間フィールドを付加するか指定します。偽 (False) を設定すると、フィールドのサマリー⾏へ
の任意の登場順序に対して、汎⽤データ検出が使⽤されます。真 (True) を指定すると、サーチ時間範囲
info_min_time (sistats が追加) または _time が使⽤されます。最初に特定したフィールドに基づいて時間
フィールドを追加します:info_min_time, _time, now()
デフォルト: 真 (True)
file
構⽂: file=<string>
説明: イベントの書き込み先ファイル名です。省略可、デフォルトは「<乱数>_events.stash」です。ファ
イル名内にプレースホルダとして $timestamp$、$random$ を使⽤できます。これらのプレースホルダ
は、それぞれタイムスタンプ、および乱数に置換されます。
データがメインインデックスに追加されるのではない場合、「index=」と⼀緒に使⽤する際には、
ファイル名の最後に「.stash」を追加する必要があります。
ホスト
構⽂: host=<string>
説明: イベントに指定するホストの名前
marker
構⽂: marker=<string>
説明: 各イベントに追加する⽂字列で、通常はキーと値のペアです。キーと値のペアは、カンマとスペース
で区切る必要があります。
値にスペースやコンマが含まれている場合は、エスケープ処理をしなければなりません。たとえば、キーと
値のペアが search_name=vpn starts and stops の場合は、search_name=\"vpn starts and stops\" に変更する必要
があります。
run-in-preview
構⽂: run-in-preview=<bool>
説明: プレビュー⽣成の最中に collect コマンドを有効にするかどうかを指定します。⼀般的には、サマリー
インデックスにプレビュー結果を挿⼊しません (run-in-preview=false)。サーチの⼀環としてカスタムサー
チコマンドが使⽤されている場合など、⼀部の事例では、このオプションを有効にして正確なサマリーイン
デックス可能プレビューが⽣成されるように設定することもできます。
デフォルト: false
spool
構⽂: spool=<bool>
説明: 真 (true) (デフォルト) に設定するとサマリーのインデックスファイルはスプールディレクトリに書き
込まれ、そこで⾃動的にインデックスされます。偽 (False) を設定すると、ファイルは
$SPLUNK_HOME/var/run/splunk に書き込まれます。このファイルは、何らかの形でさらに⾃動化や管
理作業が⾏われない限り、この場所に無期限に保持されます。
ソース
構⽂: source=<string>
説明: イベントに指定するソースの名前
ソースタイプ
構⽂: sourcetype=<string>
説明: イベントに指定するソースタイプの名前
デフォルト: stash
testmode
構⽂: testmode=<bool>
説明: テストモードとリアルモードを切り替えます。テストモードでは、結果は新しいインデックスには書
き込まれません。ただし、サーチ結果は、まるでインデックスに送信されたかのように表⽰が変更されま
す。
デフォルト: false
86
例
1.download イベントを、インデックス「downloadcount」に保管します
eventtypetag="download" | collect index=downloadcount
2.VPN 接続と切断に関する統計データを収集します
国ごとの VPN 接続と切断に関する時間別の統計データを収集します。
index=mysummary | geoip REMOTE_IP
| eval country_source=if(REMOTE_IP_country_code="US","domestic","foreign")
| bin _time span=1h
| stats count by _time,vpn_action,country_source
| addinfo
| collect index=mysummary marker="summary_type=vpn, summary_span=3600, summary_method=bin, search_name=\"vpn starts
and stops\""
コマンドにより、特定のインデックス値を追加するためのサーチがいつ実⾏されたかを指定するフィール
ドがサーチ結果に含まれます。
addinfo
関連項⽬
overlap、sichart、sirare、sistats、sitop、sitimechart、tscollect
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、collect コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
concurrency
説明
concurrency は、各イベントの開始とオーバーラップする期間があるイベント数を測定します。また、測定は特
定の各イベントが開始された時間内に処理中であった項⽬数の合計を⽰します。このコマンドは、合計期間中に
オーバーラップする特定のイベント数合計を測定するのではありません。
構⽂
concurrency duration=<field> [start=<field>] [output=<field>]
必要な引数
duration
構⽂: duration=<field>
説明: 期間を表すフィールドです。このフィールドは、start フィールドと同じ単位の数値でなければなりま
せん。たとえば、トランザクションコマンドで⽣成された duration フィールドは「秒」で (例 1 を参照)、
単位が同じ秒である _time のデフォルトと⼀緒に利⽤することができます。
オプション引数
先頭
構⽂: start=<field>
説明: 開始時間を⽰すフィールド
デフォルト: _time
output
構⽂: output=<field>
説明: 結果となる同時イベント数を書き込むフィールド
デフォルト: "concurrency"
使⽤⽅法
イベント X は、X.start が Y.start と (Y.start + Y.duration) の間にある場合にイベント Y と同時発⽣になりま
す。
イベントにその完了の時刻と完了前の実⾏時間がある場合は、(start に終了時刻が⼊ってしまうため)
concurrency コマンドを呼び出す前に start から実⾏時間を減算しておく必要があります。
... |eval new_start = start - duration | concurrency start=new_start duration=duration
制限事項
オーバーラップする項⽬の数量については、制限事項があります。追跡する最⼤同時発⽣が limits.conf の
[concurrency] スタンザにある max_count を超えた場合、UI/サーチ出⼒で警告が⽣成され値が固定されます。
87
その結果、値が不正確になる可能性があります。 この制限のデフォルト値は 10000000 です。
例
例 1
この例は、チュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial] から
データ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範囲に
[全時間] を指定してこのサーチを実⾏します。
トランザクションの期間またはスパンを使って、同時に発⽣した他のトランザクション数をカウントします。
sourcetype=access_* | transaction JSESSIONID clientip startswith="view" endswith="purchase" | concurrency
duration=duration | eval duration=tostring(duration,"duration")
この例では、同じ値の JSESSIONID および clientip を持つイベントをトランザクションにグループ化し、⽂字列
「view」を含むイベントをトランザクションの開始イベント、⽂字列「purchase」を含むイベントをトランザク
ションの最後のイベントとして定義します。
次にトランザクションは、パイプ⽂字で concurrency コマンドに渡されます。このコマンドは、トランザクション
のタイムスタンプと duration に基づいて、同時に発⽣したイベント数をカウントします。
このサーチは、eval コマンドと
HH:MM:SS に変換します。
tostring()
関数を使って、duration フィールドの値をより分かりやすい形式
例 2
この例は、チュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial] から
データ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範囲に
[その他] > [昨⽇] を指定してサーチを実⾏します。
同時に発⽣した個別の購⼊数をカウントするために、各購⼊間の時間を使⽤します。
sourcetype=access_* action=purchase | delta _time AS timeDelta p=1 | eval timeDelta=abs(timeDelta) | concurrency
duration=timeDelta
この例では、delta コマンドと _time フィールドを使って、ある購⼊イベント (action=purchase) とその直前の購⼊
イベント間の時間を算出しています。サーチは、この変更を timeDelta として名前を変更します。
⼀部の
の値は負です。負の値では concurrency コマンドは機能しないため、eval コマンドを使って
をその絶対値 (abs(timeDelta)) に再定義します。この timeDelta が同時イベントを算出するための
として使⽤されます。
timeDelta
timeDelta
duration
88
例 3
この例は、チュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial] から
データ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範囲に
[その他] > [昨⽇] を指定してサーチを実⾏します。
連続する各トランザクションの時間を使って、同時に発⽣したトランザクション数を算出します。
sourcetype=access_* | transaction JSESSIONID clientip startswith="view" endswith="purchase" | delta _time AS
timeDelta p=1 | eval timeDelta=abs(timeDelta) | concurrency duration=timeDelta | eval
timeDelta=tostring(timeDelta,"duration")
この例では、同じ値の JSESSIONID および clientip を持つイベントをトランザクションにグループ化し、⽂字列
「view」を含むイベントをトランザクションの開始イベント、⽂字列「purchase」を含むイベントをトランザク
ションの最後のイベントとして定義します。
トランザクションはパイプ⽂字で delta コマンドに渡されます。このコマンドは、_time フィールドを使って、あ
るトランザクションとその直前のトランザクション間の時間を算出します。サーチは、この変更を timeDelta とし
て名前を変更します。
⼀部の
の値は負です。負の値では concurrency コマンドは機能しないため、eval コマンドを使って
をその絶対値 (abs(timeDelta)) に再定義します。この timeDelta が同時トランザクションを算出するため
の duration として使⽤されます。
timeDelta
timeDelta
例 4
各 HTTP リクエストの開始時にブラウザから splunkd にアクセスしている、オーバーラップする HTTP リクエ
スト数を判断します。
これは、記録されているメッセージのタイムスタンプが、リクエストが来た時点の時間で、spent フィールドがリ
クエストの処理に費やされた時間 (ミリ秒) であることを前提にしています。この作業を⾏うには、admin ユー
ザーまたは _internal インデックスにアクセスできるロールを持つユーザーである必要があります。
index=_internal sourcetype=splunkd_ui_access | eval spent_in_seconds = spent / 1000 | concurrency
duration=spent_in_seconds
その他の例
例1: 同時発⽣するイベントの数を求め、fooフィールドに書き込みます。
... | concurrency duration=total_time output=foo
例2: 「et」フィールドを開始時刻、「length」を実⾏時間として、同時イベント数を算出します。
89
... | concurrency duration=length start=et
関連項⽬
timechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、concurrency コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
contingency
説明
統計学で分割表は、複数の変数 (通常はカテゴリ) 間の関係を記録、分析するために⽤いられます。分割表に基づ
いて、ファイ係数やクラメールの V などの、各種関連や⾮依存性などを算出できます。
コマンドを使って分割表を作成することができます (この場合は、データ内の 2 つのフィールドの値の
共起相関関係マトリックス)。このマトリックス内の各セルは、両⽅のクロス表フィールド値が存在しているイベ
ント数を表⽰します。つまり、この表の最初の⾏と列は、2 つのフィールドの値で構成されています。表内の各セ
ルには、イベントカウントを表す数字が含まれています。その⾏と列の組み合わせとなるフィールドの 2 つの値
が含まれています。
contingency
2 つのフィールド間の関係またはパターンが存在している場合は、テーブルの情報を分析して簡単にそれを特定で
きます。たとえば、⾏間で列値が⼤幅に異なっている場合 (またはその反対)、2 つのフィールド間には偶発性が存
在しています (独⽴していない)。偶発性がない場合、2 つのフィールドは独⽴しています。
構⽂
contingency [<contingency-option>]* <field1> <field2>
必要な引数
<field1>
構⽂: <field>
説明: 任意のフィールド、ワイルドカードなし
<field2>
構⽂: <field>
説明: 任意のフィールド、ワイルドカードなし
オプション引数
contingency-option
構⽂: <maxopts> | <mincover> | <usetotal> | <totalstr>
説明: 分割表のオプション
Contingency のオプション
maxopts
構⽂: maxrows=<int> | maxcols=<int>
説明: 表⽰する最⼤の⾏数または列数を指定フィールドの⼀意の値数がこの最⼤値を超えた場合は、最も少
ない値が無視されます。0 は、⾏数/列数の制限が最⼤値であることを表します。この制限値は limits.conf
の [ctable] スタンザにある maxvalues で表されます。maxrows=maxvalsおよび maxcols=maxvals。
mincover
構⽂: mincolcover=<num> | minrowcover=<num>
説明: 出⼒テーブルに表⽰する列または⾏あたりの値の割合 (パーセント) を指定します。テーブルの作成時
に、指定した⽐率に達するよう、⼗分な数の⾏または列を使⽤して処理を⾏いますが、最⼤⾏数/列数が優先
されるため、⽐率に達していなくても最⼤数に達した場合はそれ以上の⾏または列は使⽤されません。デ
フォルトは、mincolcover=1.0 および minrowcover=1.0 です。
usetotal
構⽂: usetotal=<bool>
説明: ⾏、列を追加し、合計を集計するかどうかを設定します。
デフォルト: 真 (True)
totalstr
構⽂: totalstr=<field>
説明: ⾏合計と列合計のフィールド名
デフォルト: Total
使⽤⽅法
90
このコマンドは、2 つのフィールドの分割表を作成します。多くの値を持つフィールドがある場合、maxrows およ
び maxcols パラメータを使って、⾏/列数を制限することができます。デフォルトでは、分割表に⾏合計、列合
計、および表内に記載されているイベントカウントの総計が表⽰されます。
空⽂字列 ("") の値は、テーブル内では EMPTY_STR として表されます。
制限事項
maxrows または maxcols の値にはデフォルトで制限があります。フィールドで値が 1000 個を超える場合、使⽤
されません。
例
例 1
log_level
と
component
の値間に関係が存在するかどうかを確認するために、分割表を作成します。
index=_internal | contingency log_level component maxcols=5
これらの結果により、Splunk インスタンスの問題の原因となっているコンポーネントを⼀⽬で把握することがで
きます。component フィールドには多数の値が存在しているため (>50)、この例では maxcols を使って 5 件の値の
みを表⽰しています。
例 2
分割表を作成して、使⽤プラットフォームに基づくユーザーによるインストーラのダウンロードパターンを確認し
ます。
host="download"| contingency name platform
これはかなり直接的なやり⽅です。⼀般的には、あるプラットフォームを使⽤しているユーザーが、別のプラット
フォーム⽤のインストーラをダウンロードすることはありません。ここで、contingency コマンドは、これらの特
定のフィールドが独⽴していないことを単純に確認しています。たとえば、多くの Windows ユーザーが OSX イ
ンストーラをダウンロードしていることがこのグラフに表されている場合は、Web サイトのダウンロードリソー
スが正しいかどうかを確認する必要があるでしょう。
例 3
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それを Splunk への⼊⼒として
追加できます。
⼀般的に深度 70km 未満で発⽣した地震は、浅発 地震、70〜300km の震源域で発⽣した地震は深発 地震とし
て分類されます。沈み込み帯では、より深い所で深発 地震が発⽣することもあります (300〜700 km)。
分割表を作成して、最近の地震のマグニチュードと深度間の関係を確認します。
index=recentquakes | contingency mag depth | sort mag
このサーチはとても単純です。ただし、Magnitude および
Depth
91
フィールドの値の範囲はとても幅広いため、結果は
巨⼤な⾏列となってしまいます。そこで表を構築する前に、フィールドの値のフォーマットを変更します。
source=usgs | eval Magnitude=case(mag<=1, "0.0 - 1.0", mag>1 AND mag<=2, "1.1 - 2.0", mag>2 AND mag<=3, "2.1 - 3.0",
mag>3 AND mag<=4, "3.1 - 4.0", mag>4 AND mag<=5, "4.1 - 5.0", mag>5 AND mag<=6, "5.1 - 6.0", mag>6 AND mag<=7, "6.1
- 7.0", mag>7,"7.0+") | eval Depth=case(depth<=70, "Shallow", depth>70 AND depth<=300, "Mid", depth>300 AND
depth<=700, "Deep") | contingency Magnitude Depth | sort Magnitude
このサーチでは、eval コマンドと case() 関数を使ってマグニチュード (Magnitude) と深度 (Depth) の値を再定
義し、それを値の範囲に分割します。たとえば、深度の値を「Shallow」 (浅)、「Mid」 (中)、「Deep」 (深) の
3 つに定義し直します。こうすることで、より分かりやすいテーブルが作成されます。
この 2 週間には、多数の地震が発⽣しています。マグニチュードの⼤きな地震は、⼩さな地震と⽐べてより深い
場所で発⽣しているでしょうか?そうではないようです。このテーブルからは、最近の地震の⼤半は、どの範囲の
マグニチュードでも浅めの場所で発⽣しています。また、中〜深場で発⽣している地震は⼤幅に少なくなっていま
す。このデータセットの場合は、深発地震のマグニチュードはすべて中の範囲になっています。
関連項⽬
associate、correlate
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、contingency コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
convert
説明
コマンドはフィールド値を数値に変換します。「AS」を使って名前を変更する場合、元のフィールドはそ
のまま残されます。
convert
代わりに
strftime()、strptime()、tostring()
などの評価関数も使うことができます。
構⽂
convert [timeformat=string] (<convert-function> [AS <new_fieldname>])...
必要な引数
<convert-function>
構⽂: auto() | ctime() | dur2sec() | memk() | mktime() | mstime() | none() | num() | rmcomma() |
rmunit()
説明: convert の関数
オプション引数
timeformat
構⽂: timeformat=<string>
説明: 変換された時間フィールドの出⼒形式を指定します。timeformat オプションは、ctime および mktime 関
数によって使⽤されます。書式設定オのオプションの⼀覧と説明については、『サーチ』マニュアルの「共
通の時間書式設定変数」を参照してください。
デフォルト: %m/%d/%Y %H:%M:%S。このデフォルトはロケール設定に準拠していないことに注意してください。
<new_fieldname>
構⽂: <string>
説明: 関数を新たなフィールドに名前変更
Convert の関数
auto()
構⽂: auto(<wc-field>)
説明: フィールドから数への最適な変換を⾏います。既知の変換タイプを使って特定フィールド内のすべて
の値を変換できない場合、そのフィールドは放置され変換処理は⾏われません。
92
ctime()
構⽂: ctime(<wc-field>)
説明: エポック時を ASCII ⽂字による判読可能な時間に変換します。変換形式を指定するには、timeformat
オプションを使⽤します。
dur2sec()
構⽂: dur2sec(<wc-field>)
説明: 期間の形式「D+HH:MM:SS」を秒数に変換
memk()
構⽂: memk(<wc-field>)
説明: 正の数字 (整数または浮動⼩数点数) を受け付けます。必要に応じて、その後に「k」、「m」、また
は「g」を付けます。キロバイトの場合、⽂字を指定しないまたは「k」を指定、メガバイトの場合「m」を
指定、ギガバイトの場合は「g」を指定します。出⼒フィールドは、キロバイト量を表す数値です。負の値
を指定すると、⾮⼲渉データになります。
mktime()
構⽂: mktime(<wc-field>)
説明: 判読可能な時間をエポック時に変換します。変換元時刻の形式を正しく指定するには、timeformat オプ
ションを使⽤します。
mstime()
構⽂: mstime(<wc-field>)
説明: MM:SS.SSS 形式を秒数に変換
none()
構⽂: none(<wc-field>)
説明: 他のワイルドカードが存在する場合は、フィールドを変換しません。
num()
構⽂: num(<wc-field>)
説明: auto() と同じですが、変換できない値は除かれます。
rmcomma()
構⽂: rmcomma(<wc-field>)
説明: 値からすべてのカンマを削除します。たとえば、rmcomma(1,000,000.00) と指定すると、
1000000.00 が返されます。
rmunit()
構⽂: rmunit(<wc-field>)
説明: 値の先頭から数字を取得し、続くテキストを削除します。
例
例 1
この例では、sendmail メールサーバーログを使って、sourcetype=sendmail を持つログを参照します。
sendmail ログには 2 種類の期間フィールド delay と xdelay が存在しています。
は、メッセージの配信またはバウンスまでにかかった合計時間です。delay は、「D+HH:MM:SS」とし
て表されます。これはそれぞれ、メッセージの配信または拒否を処理するための時間 (HH)、分 (MM)、秒
(SS) を⽰しています。delay が 24 時間を超えた場合は、時間表記の先頭に⽇数とプラス記号 (D+) が追加さ
れます。
delay
xdelay
は、メッセージの最終的な配信までにかかった時間の合計で、「HH:MM:SS」で表されます。
sendmail の
delay
および
xdelay
の期間の形式を秒に変更します。
sourcetype=sendmail | convert dur2sec(delay) dur2sec(xdelay)
このサーチは、パイプ⽂字ですべての sendmail イベントを
delay と xdelay フィールドの期間を秒に変換します。
convert
コマンドに渡し、dur2sec() 関数を使って
フィールドサイドバーを使ってイベントにフィールドを追加した後の、サーチ結果の表⽰例を以下に⽰します。
イベントリストで、変換したフィールド値と元のフィールド値を⽐較できます。
93
例 2
この例では、syslog データを使⽤します。
UNIX エポック時を、より分かりやすい形式に変換して、時、分、秒を表⽰します。
sourcetype=syslog | convert timeformat="%H:%M:%S" ctime(_time) AS c_time | table _time, c_time
関数は syslog イベント (sourcetype=syslog) の値 _time を、timeformat に指定されている形式に変換しま
す。timeformat="%H:%M:%S" 引数により、_time の値が HH:MM:SS 形式でフォーマットされます。
ctime()
ここで、table コマンドは、元の
られています。
_time
の値と、名前が
c_time
に変更された、変換後の時間を表⽰するために⽤い
関数は、タイムスタンプを⾮数値に変換します。これは、レポート内でイベントリストの視認性を向上す
るために役⽴ちます。
ctime()
例 3
この例では、syslog データを使⽤します。
MM:SS.SSS (分、秒、およびミリ秒などの秒未満の単位) 形式の時間を、秒数に変換します。
sourcetype=syslog | convert mstime(_time) AS ms_time | table _time, ms_time
mstime()
関数は syslog (sourcetype=syslog) イベントの
ここで、table コマンドは、元の
られています。
mstime()
_time
_time
の値と、名前が
の値を、分と秒から秒数に変換します。
ms_time
に変更された、変換後の時間を表⽰するために⽤い
関数は、タイムスタンプを数値に変換します。これは、値を計算に使⽤するような場合に役⽴ちます。
その他の例
例1: duration フィールドの値から、⽂字列値を削除して数値に変換します。たとえば、「duration="212 sec"」
の場合、結果の値は「duration="212"」となります。
94
... | convert rmunit(duration)
例2: sendmail syslog の期間の形式 (D+HH:MM:SS) を秒に変更します。たとえば、「delay="00:10:15"」の
場合、結果の値は「delay="615"」となります。
... | convert dur2sec(delay)
例3: virt フィールドのすべてのメモリー値を KB に変換します。
... | convert memk(virt)
例4: foo フィールドの値を除いて、各フィールド値を数値に変換します (無視するフィールドの指定には、引数
「none」を使⽤)。
... | convert auto(*) none(foo)
例5: 使⽤例
... | convert dur2sec(xdelay) dur2sec(delay)
例6: 使⽤例
... | convert auto(*)
関連項⽬
eval
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、convert コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
correlate
説明
異なるフィールドの相関関係を算出します。
コマンドを使って、データ内のフィールドの共起性の概要を確認することができます。結果は、2 つの
フィールドのクロス表がセルの値となっているマトリックス形式で表⽰されます。セルの値は 2 つのフィールド
が同じイベントに存在する回数の割合を⽰します。
correlate
結果が固有となるフィールドの名前は RowField フィールドの値で指定されます。それに対して⽐較されるフィー
ルドは、他のフィールド名になります。
注意: このコマンドは、⼀連のサーチ結果内のすべてのフィールドにまたがって関係を探します。フローチャート
の値間の関係を分析する場合は、contingency コマンドを使⽤してください。このコマンドは、イベント内の
フィールドペアの共起をカウントします。
構⽂
correlate
制限事項
がサーチで検討するフィールドの数には制限があります。limits.conf の [correlate] で、maxfields にこ
の上限値が設定されています。デフォルトは 1000 です。
correlate
これ以上のフィールドがある場合、correlate コマンドは最初の n (たとえば 1000) 件のフィールド名のデータを
処理しますが、それ以降のフィールドのデータは無視します。この場合、サーチからの通知またはアラートには
「correlate: input fields limit (N) reached」というメッセージが含まれます。⼀部のフィールドは無視されてい
る可能性があります。
他の設計上の制限と同様に、これを調整すると、メモリーや CPU コストに⼤きな影響を与える可能性がありま
す。
例
例 1:
_internal
インデックス内のすべてのフィールド間の共起性を探します。
index=_internal | correlate
結果の例を以下に⽰します。
95
_internal
内には異なる種類のログが存在しているため、多くのフィールドが共起していないことが予測できま
す。
例 2:
Web アクセスイベント内のすべてのフィールド間の共起性を計算します。
sourcetype=access_* | correlate
すべての Web アクセスイベントが同じフィールド (clientip、referer、method など) を共有していることが予測
されます。しかし、sourcetype=access_* には Apache ログ形式の access_common と access_combined の両⽅
が含まれているため、⼀部のフィールドは 1.0 未満になるはずです。
例 3:
ダウンロードイベント内のすべてのフィールド間の共起性を計算します。
eventtype=download | correlate
結果を correlate に渡す前に、サーチを絞り込めば、すべてのフィールドと値のペアの相関が 1.0 (サーチ結果の
100% で共起) になる可能性が⾼くなります。相関 1.0 は、サーチ結果の値が 100% 共起していることを⽰しま
す。これらのダウンロードイベントから、どのペアの共起性が 1.0 未満なのかに基づいて、問題を特定できる可
能性があります。
関連項⽬
associate、contingency
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、correlate コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
crawl
説明
ファイルシステムからサーチに、関連するファイルをクロールします。
インデックスを作成する新たなソースの検出をクロールします。crawl のデフォルトの設定は crawl.conf に保存さ
れ、crawl 操作は $splunk_home/var/log/splunk/crawl.log に記録されます。⼀般的には、input コマンドと⼀
緒に使⽤されます。crawl.conf の設定を上書きするには crawl オプションを設定します。注意: サーチに crawl を
追加すると、crawl から⽣成されたデータのみが返されます。「 | crawl」の前に⽣成されたデータは返されませ
ん。
構⽂
crawl [ files | network ] [crawl-option]*
オプション引数
crawl-option
構⽂: <string>=<string>
説明: crawl.conf の設定をオーバーライドします。
例
例 1:
ルート、ホームディレクトリ、特定されたすべての可能性のある⼊⼒の追加「inputs.conf」に設定情報を追
加します。
crawl
| crawl root="/;/Users/" | input add
例 2:
96
例 2:
crawl
bobのホームディレクトリ
| crawl root=/home/bob
例 3:
bob のホームディレクトリで⾒つかったすべてのソースを preview インデックスに追加します。
| crawl root=/home/bob | input add index=preview
例 4:
crawl
crawl.conf で定義されるデフォルト設定を使⽤
| crawl
関連項⽬
⼊⼒
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、crawl コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
datamodel
説明
データモデルまたはデータモデルオブジェクトを調査し、データモデルオブジェクトをサーチします。
コマンドを使って、すべてまたは指定されたデータモデルとそのオブジェクトの JSON を返します。指
定したデータモデルオブジェクトに対してサーチを実⾏することもできます。
datamodel
データモデルは 1 つまたは複数のデータセットに関する、意味的ナレッジのサーチ時マッピングで、階層構造に
なっています。データモデルは、データセットに対するさまざまな特殊サーチを作成するために必要な、ドメイン
ナレッジを符号化しています。これらの特殊サーチは、その後サーチがピボットユーザー向けの、レポートを⽣成
するために⽤いられます。詳細については、『ナレッジ管理』マニュアルの「データモデルについて」および
「データモデルオブジェクトの設計」を参照してください。
サーチコマンドにより、既存のデータモデルおよびそのオブジェクトをサーチインターフェイスでサー
チすることができます。datamodel コマンドは⽣成サーチで、パイプライン中の最初のコマンドでなければなりま
せん。
datamodel
構⽂
datamodel [<data model name>] [<object name>] [<search>]
必要な引数
なし
オプション引数
data model name
構⽂: <string>
説明: サーチするデータモデルの名前です。データモデルのみが指定されると、サーチは単⼀のデータモデ
ルの JSON を返します。
object name
構⽂: <string>
説明: サーチするデータモデルオブジェクトの名前です。データモデル名の後に指定する必要があります。
サーチは単⼀のデータモデルオブジェクトの JSON を返します。
search
構⽂: <search>
説明: 指定されたデータモデルとオブジェクトに関連するサーチを実⾏することを⽰します。詳細は、
「search コマンド」を参照してください。
例
以下の例は、『データモデルとピボットチュートリアル』のデータを使⽤しています。
例 1:
現在の App コンテキスト内で利⽤できるすべてのデータモデルの JSON を返します。
97
| datamodel
例 2:
モデル ID が「Tutorial」の「Buttercup Games」データモデルの JSON を返します。
| datamodel Tutorial
例 3:
Buttercup Games の Client_errors オブジェクトの JSON を返します。
| datamodel Tutorial Client_errors
例 4:
Buttercup Games の Client_errors に対するサーチを実⾏します。
| datamodel Tutorial Client_errors search
例 5:
Buttercup Games の Client_errors オブジェクトに対して、404 エラーとイベント数をサーチします。
| datamodel Tutorial Client_errors search | search status=404 | stats count
98
関連項⽬
pivot
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、datamodel コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
dbinspect
説明
Splunk Enterprise インデックスのバケツに関する情報を返します。
Splunk Enterprise インデックス は、Splunk Enterprise のデータのリポジトリです。到着データのインデック
スが作成されるか、または到着データがイベント に変換されると、raw データ とメタデータのファイル (イン
デックスファイル ) が作成されます。⼀連のディレクトリに保管されているファイルは、その経過時間で管理さ
れています。これらのディレクトリは、バケツ と呼ばれています。
詳細は、『インデクサーとインデクサーのクラスタの管理』の「インデックス、インデクサー、およびインデク
サークラスタ」および「インデクサーによるインデックスの保管⽅法」を参照してください。
構⽂
dbinspect [index=<string>]...[<span>|<timeformat>]
オプション引数
インデックス
構⽂: index=<string>
説明: 調査するインデックスの名前を指定します。このオプションを繰り返して複数のインデックスを指定
できます。⾮内部インデックスに対しては、「*」などのワイルドカードを使⽤できます。
デフォルト: デフォルトインデックス (⼀般的には main)
<span>
Syntax: span=<int>|<int><timescale>
説明: バケツのスパン⻑を指定します。タイムスケール単位 (sec、min、hr、day、month、または
subseconds) を使⽤した場合、これは時間範囲として⽤いられます。使⽤しない場合、これは絶対バケツ
「length」になります。
コマンドにバケツのスパンを指定して呼び出すと、各バケットのスパンのテーブルが返されま
す。span が指定されない場合は、インデックスのバケツに関する情報が返されます。バケツのスパンを指定
しない場合に返される情報 については、以下の表を参照してください。
dbinspect
<timeformat>
構⽂: timeformat=<string>
説明: modTime フィールドの時間フォーマットを設定
デフォルト: timeformat=%m/%d/%Y:%H:%M:%S
タイムスケールの単位
これらは、バケツのスパンのタイムスケールを指定するオプションです。
<timescale>
構⽂: <sec> | <min> | <hr> | <day> | <month> | <subseconds>
説明: タイムスケールの単位
<sec>
構⽂: s | sec | secs | second | seconds
説明: タイムスケール (秒
<min>
構⽂: m | min | mins | minute | minutes
説明: タイムスケール (分)
<hr>
構⽂: h | hr | hrs | hour | hours
説明: タイムスケール (時)
<day>
構⽂: d | day | days
説明: タイムスケール (⽇)
<month>
構⽂: mon | month | months
説明: タイムスケール (⽉)
<subseconds>
構⽂: us | ms | cs | ds
説明: タイムスケール (マイクロ秒 (us)、 ミリ秒 (ms)、 10ミリ秒 (cs)、 100ミリ秒 (ds))
99
説明: タイムスケール (マイクロ秒 (us)、 ミリ秒 (ms)、 10ミリ秒 (cs)、 100ミリ秒 (ds))
バケツのスパンを指定しない場合に返される情報
バケツのスパンを指定せずに
されます。
dbinspect
コマンドにを呼び出すと、インデックスのバケツに関する以下の情報が返
フィールド名
説明
で構成される⽂字列。ここで、区切り⽂字は波形記号です。
例:summary~2~4491025B-8E6D-48DA-A90E-89AC3CF2CE80。
<index>~<id>~<guId>
bucketId
endEpoch
バケツ内の最後のイベントのタイムスタンプ (未来に向けたバケツの時間境界)。UNIX エポッ
ク時の秒数でタイムスタンプを指定します。
eventCount
バケツ内のイベント数。
guId
インデックスを提供するサーバーの guID。これはインデックスレプリケーションに関係してい
ます。
hostCount
バケツ内の⼀意のホスト数。
id
元のバケツが存在しているインデクサーが⽣成した、バケツのローカル ID 番号。
index
サーチに指定されているインデックス名。すべてのインデックスを対象にする場合、index=* と
指定します。また、インデックスフィールドはそれぞれ異なります。
modTime
最後にバケツが変更された時のタイムスタンプ。フォーマットは
す。
timeformat
フラグで指定しま
バケツの場所。バケツ path の命名規則は、インデクサーがクラスタピアとして動作している間
に、バケツがウォームに移⾏されたかどうかによって、わずかに異なっています。
⾮クラスタバケツの場合: db_<newest_time>_<oldest_time>_<localid>
クラスタ化された元のバケツコピーの場合:
db_<newest_time>_<oldest_time>_<localid>_<guid>
path
クラスタ化された複製バケツコピーの場合:
rb_<newest_time>_<oldest_time>_<localid>_<guid>
詳細は、『インデクサーとインデクサーのクラスタの管理』の「インデクサーによるインデッ
クスの保管⽅法」と「インデクサークラスタのアーキテクチャ」を参照してください。
rawSizeMB
各バケツ内の raw データファイルの量 (バイト)。この値は、圧縮およびインデックスファイル
の追加を⾏う前の量を表しています。
sizeOnDiskMB
浮動⼩数点数で表される、バケツが使⽤しているディスク・スペース・サイズ (MB)。この値
は、圧縮された raw データファイルとインデックスファイルの量を表しています。
sourceCount
バケツ内の⼀意のソース数。
sourceTypeCount
バケツ内の⼀意のソースタイプ数。
splunk_server
分散環境でインデックスを提供している Splunk サーバー名。
startEpoch
UNIX エポック時からの秒数で表される、バケツ内の最初のイベントのタイムスタンプ (過去に
向けたバケツの時間境界)。
state
バケツがウォーム、ホット、またはコールドかどうか。
例
例 1:
CLI を使って、グラフを期間 1 ⽇で表⽰します。
myLaptop $ splunk search "| dbinspect index=_internal span=1d"
_time
hot-3 warm-1 warm-2
--------------------------- ----- ------ -----2015-01-17 00:00:00.000 PST
0
2015-01-17 14:56:39.000 PST
0
2015-02-19 00:00:00.000 PST
2015-02-20 00:00:00.000 PST
0
2
1
1
例 2:
local _internal インデックスのデフォルトの dbinspect 出⼒。
| dbinspect index=_internal
100
このスクリーンショットには、出⼒テーブルのすべての列が表⽰されているわけではありません。コンピューター
を右⽅向にスクロールして他の列を確認してください。
例 3:
dbInspect を使って、バケツのインデックスサイズを GB で特定します。細⼼の数値については、このサーチを
最近の時間範囲で実⾏します。
| dbinspect index=_internal | eval GB=sizeOnDiskMB/1024| stats sum(GB)
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、dbinspect コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
dedup
説明
指定したフィールドと同じ値の組み合わせを含むイベントを除外します。
単⼀フィールドの値、または複数のフィールドで組み合わせられる値を維持するために、dedup コマンドを使って
重複イベント数を指定できます。dedup によって返されるイベントは、サーチの順序に基づきます。履歴サーチで
は、最新のイベントが最初にサーチされます。リアルタイムサーチでは、最新のイベントに限らず、最初に受信し
たイベントからサーチされます。
重複した値、または値の組み合わせを持つイベントを維持する件数を指定できます。フィールドをソートできま
す。この場合、dedup コマンドは指定された sort-by フィールドに基づいて重複を削除します。他のオプションを
活⽤することで、重複フィールドが除外したイベントを維持することも、定されたフィールドが存在しないイベン
トを維持することもできます。
注意: ⼤量のデータに対してサーチを実⾏する場合、 _raw フィールドに対して dedup コマンドを実⾏することはお
勧めできません。_raw フィールドをサーチする場合、メモリ内の各イベントのテキストが維持されることでサーチ
のパフォーマンスに影響が及びます。これは想定されている動作です。この動作は濃度が⾼くサイズが⼤きな
フィールドに当てはまります。
構⽂
dedup [<N>] <field-list> [keepevents=<bool>] [keepempty=<bool>] [consecutive=<bool>] [sortby <sortby-clause>]
必要な引数
<field-list>
構⽂: <string> <string> ...
説明: フィールド名のリスト
オプション引数
consecutive
構⽂: consecutive=<bool>
説明: 真 (True) の場合、連続して重複した値の組み合わせを持つイベントのみを削除します。
デフォルト: false
keepempty
構⽂: keepempty=<bool>
説明: 真 (True) の場合、指定されたフィールドが 1 つ以上存在しない (NULL) イベントを保持します。
デフォルト: false。選択されたフィールドのいずれかが NULL のイベントが廃棄されます。
引数は、フィールドリストに 1 つ以上のフィールドがないすべてのイベントを保持します。
NULL 値も含め、フィールド値の組み合わせに対して n 件のイベントを保持する場合は、 fillnull コマンド
を使ってそれらのフィールドに対する⾮ NULL 値を指定します。例:
keepempty=true
101
...|fillnull value="MISSING" field1 field2 | dedup field1 field2
keepevents
構⽂: keepevents=<bool>
説明: 真 (True) の場合、すべてのイベントを保持しますが、特定の値の組み合わせを持つ最初のイベントよ
り後のイベントから、選択されたフィールドを削除します。
デフォルト: false。特定の組み合わせを持つ最初のイベント以降のイベントが破棄されます。
<N>
構⽂: <int>
説明: N を指定した場合、 dedup コマンドはそれぞれの組み合わせに対して複数のイベントを維持します。N
の値は 0 より⼤きな値でなければなりません。値を指定しない場合、最初のイベントだけが維持されます。
他のすべての重複は結果から除外されます。
<sort-by-clause>
構⽂: ( - | + ) <sort-field> [(- | +) <sort_field> ...]
説明: ソート順にソートされるフィールドのリスト降順にはダッシュ ( - ) 、昇順にはプラス ( + ) を使⽤し
ます。ソートの順序は各フィールドに指定する必要があります。
フィールドのソートオプションの説明
<sort-field>
構⽂: <field> | auto(<field>) | str(<field>) | ip(<field>) | num(<field>)
説明: イベントのソートに指定できるオプション
<field>
構⽂: <string>
説明: ソートするフィールドの名前
auto
構⽂: auto(<field>)
説明: フィールド値のソート⽅法を⾃動で決定します。
ip
構⽂: ip(<field>)
説明: フィールド値を IP アドレスとして解釈
num
構⽂: num(<field>)
説明: フィールド値を数値として解釈
str
構⽂: str(<field>)
説明: 辞書式順序でフィールド値をソート
例
例 1:
同じホスト (host) 値を持つ重複する結果を削除します。
... | dedup host
例 2:
同じソース値を持つ重複する結果を削除して、イベントを「_time」フィールドの昇順に並べ替えます。
... | dedup source sortby +_time
例 3:
同じソース値を持つ重複する結果を削除して、イベントを「_size」フィールドの降順に並べ替えます。
... | dedup source sortby -_size
例 4:
同じ「source」値を持つイベントに対しては、最初に発⽣した 3 件を保持して、それ以降のイベントをすべて削
除します。
... | dedup 3 source
例 5:
同じ「source」および 「host」値を持つイベントに対しては、最初に発⽣した 3 件を保持して、それ以降のイベ
ントをすべて削除します。
... | dedup 3 source host
関連項⽬
102
uniq
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、dedup コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
削除
説明
Splunk Enterprise のインデックスからイベントを回復不可能にします。
警告: 除外したデータを元に戻すことはできません。データを削除後に取り戻したい場合は、適切なデータソース
を再度インデックス作成する必要があります。
コマンドは、サーチが返すすべてのイベントを削除済みとしてマークします。以降のサーチではマークされ
たイベントが返されません。Splunk Enterprise を使⽤してこのデータを参照できるユーザーは存在しません (管
理権限を持つユーザーを含む)。delete コマンドを使っても、ディスクスペースは解放されません。
delete
リアルタイムサーチの実⾏中に delete コマンドは実⾏できません。到着するイベントは削除できません。リアル
タイムサーチで delete コマンドを使⽤すると、エラーが表⽰されます。
構⽂
delete
使⽤⽅法
コマンドは、「delete_by_keyword」権限 を持つユーザーのみが実⾏できます。Splunk Enterprise には
デフォルトで、特殊ロール「can_delete」が⽤意されており、このロールが削除の権限を保有しています。他の
ロールはこの権限を持ちません。デフォルトで、管理者ロールにはこの権限が与えられていません。インデックス
データを削除する際にログインする、特別な userid を作成してください。
delete
コマンドを使⽤するには、削除対象のイベントを返すサーチを実⾏します。このサーチは削除対象イベント
のみを返し、その他のイベントは返さないことを⼊念に確認してください。これらのデータが⽬的の削除データだ
と確認できたら、パイプ⽂字を使ってサーチを delete コマンドに渡します。
delete
delete 演算⼦は、影響するインデックスをウォームするために、ホットバケツを使⽤します。
『インデクサーとインデクサーのクラスタの管理』の「インデックスとインデックスデータの削除」を参照してく
ださい。
コマンドの出⼒は、フィールド splunk_server (インデクサーまたはサーチヘッド名) により削除されたイ
ベント数量、インデックス、およびインデックス「__ALL__」による各サーバーのロールアップ・レコードのテー
ブルになります。削除されたイベント数量は deleted フィールドにあります。errors フィールドも⽣成されま
す。通常このフィールドは 0 になります。
delete
注意: すべてのイベントに提供されるデフォルトの index フィールドに加え、イベントに index という名前の
フィールドが含まれる場合、delete コマンドは機能しません。イベントにデフォルトと追加の index フィールドが
ある場合は、例にあるように delete を呼び出す前に eval を使⽤します。
index=fbus_summary latest=1417356000 earliest=1417273200 | eval index = "fbus_summary" | delete
例
例 1:
「insecure」インデックスから、社会保障番号のような⽂字列を含むイベントを削除します。
index=insecure | regex _raw = "\d{3}-\d{2}-\d{4}" | delete
例 2:
「invalid」を含むイベントを「imap」インデックスから削除します。
index=imap invalid | delete
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、delete コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
delta
103
説明
特定の数値フィールドを使⽤して、隣接する結果の差を算出します。field が数値のイベントでは、 delta コマン
ドによってイベントの field 値と過去のイベントの field 値の差がサーチ順にを計算されます。delta コマンドはこ
の差を newfield に書き込みます。
newfield
引数が指定されない場合、delta コマンドは
delta(field)
を使⽤します。
field が 2 の値のいずれでもない場合、出⼒フィールドは⽣成されません。
注意: delta コマンドは、サーチから返された順序でイベントを処理します。デフォルトでは、履歴サーチから取得
するイベントは時間の逆順で、新しいイベントから古いイベントの順に取得されます。時間ごとに増加する値には
マイナスのデルタが表⽰されます。リアルタイムサーチの場合、イベントは受け取った順番で⽐較されます。⼀般
的に、delta は任意のコマンド・シーケンスの後に適⽤できます。そのため、⼊⼒順序は保証されません。たとえ
ば、結果を独⽴したフィールドでソートした後、 delta コマンドを使⽤した場合、⽣成される値はその特定の順序
内の差分になります。
構⽂
delta (field [AS newfield]) [p=int]
必要な引数
field
構⽂: <fieldname>
説明: 分析するフィールドの名前
オプション引数
<newfield>
構⽂: <string>
説明: フィールドへの出⼒の書き込み
デフォルト: delta(field)
p
構⽂: p=<int>
説明: 現在の結果の field をに対して⽐較する、サーチ順での過去の結果数を選択します。p=1 の場合、過
去の結果と⽐較します。p=2 の場合、サーチ順序で前にある 2 つの結果内の同じフィールドに対して field
を⽐較します。
引数が指定されていない場合、delta コマンドが p=1 を使⽤するため、直前の値が使われます。p=2 の場合
は、過去の値の前の値が使⽤されるというように、順に使⽤されます。
デフォルト: 1
p
例
例 1
この例は、チュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial] から
データ セットをダウンロードした後、指⽰に従って サーチにアップロードしてください。次に、時間範囲に
[その他] > [昨⽇] を指定してサーチを実⾏します。
昨⽇何か商品を購⼊した上位 10 ⼈の顧客を検索し、それぞれの購⼊商品数と各購⼊者の購⼊数の差を算出しま
す。
sourcetype=access_* status=200 action=purchase | top clientip | delta count p=1
ここでは、購⼊イベント (action=purchase) が top コマンドに渡されて、何か商品を購⼊した上位 10 ⼈のユーザー
(clientip) が検索されます。各 clientip の count を含むこれらの結果は、delta コマンドに渡されて、あるイベント
の count 値とその直前のイベントの count 値の差が計算されます。デフォルトでは、この差が delta(count) フィー
ルドに保存されます。
104
これらの結果は、top コマンドによりテーブルとしてフォーマットされます。最初のイベントには、delta(count)
値がないことに注意してください。
例 2
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それをサーチの⼊⼒として追加
できます。
北カリフォルニア (Northern California) の最近の地震発⽣時刻の差を計算します。
source=usgs place=*California* | delta _time AS timeDeltaS p=1 | eval timeDeltaS=abs(timeDeltaS) | eval
timeDelta=tostring(timeDeltaS,"duration")
この例は、カリフォルニアで発⽣した地震をサーチし、delta コマンドを使って、各地震のタイムスタンプ (_time)
とその直前の地震のタイムスタンプの差を算出します。この時間の差分には、timeDeltaS と⾔う名前が付けられま
す。
この例では、eval コマンドと tostring() 関数を使って、timeDeltaS フィールドの値をより分かりやすい形式
HH:MM:SS への変換もしています。
例 3
この例は、チュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial] から
データ セットをダウンロードした後、指⽰に従って サーチにアップロードしてください。次に、時間範囲に
[その他] > [昨⽇] を指定してサーチを実⾏します。
連続するトランザクション間の時間差を計算します。
sourcetype=access_* | transaction JSESSIONID clientip startswith="view" endswith="purchase" | delta _time AS
timeDelta p=1 | eval timeDelta=abs(timeDelta) | eval timeDelta=tostring(timeDelta,"duration")
この例では、JSESSIONID と clientip に同じ値をもつイベントがトランザクションにグループ化されています。
⽂字列「view」を含む場合、イベントはトランザクションの開始として定義されます。⽂字列「purchase」を含
む場合、トランザクションの最後のイベントとして定義されます。キーワードの「view」と「purchase」
は、action フィールドの値に対応しています。「addtocart」や「remove」といった値もあります。
トランザクションはパイプ⽂字で delta コマンドに渡されます。このコマンドは、_time フィールドを使って、あ
るトランザクションとその直前のトランザクション間の時間を算出します。サーチは、この変更を timeDelta とし
て名前を変更します。
この例では、eval コマンドを使って timeDelta をその絶対値 (abs(timeDelta)) に変換し、tostring() 関数でより把握
しやすい⽂字列形式に変換しています。
105
その他の例
例1: テレビのセットトップボックス (sourcetype=tv) のログを使って、放送局の格付けや顧客の嗜好などを分析す
る場合を考えてみましょう。最も視聴されているチャンネルはどれか(activity=view) 、または視聴時間はどれくら
いか。
sourcetype=tv activity="View" | sort - _time | delta _time AS timeDeltaS | eval timeDeltaS=abs(timeDeltaS) | stats
sum(timeDeltaS) by ChannelName
例2: 現在の count 値と 3 つ前の値の差異を算出して、結果を「delta(count)」に保存します。
... | delta count p=3
例3: 「count」が存在する各イベントに対して、count とその前の値の差異を算出して、結果を「countdiff」に
保存します。
... | delta count AS countdiff
関連項⽬
accum、autoregress、streamstats、trendline
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、delta コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
diff
説明
2 つのサーチ結果を⾏ごとに⽐較して、それらの差を返します。⽐較する 2 つのサーチ結果は 2 つの位置
(position) の値 position1 と position2 で指定します。これらの値はデフォルトで 1 と 2 で、最初の 2 つの結果を
⽐較します。
デフォルトでは、2 つのサーチ結果のテキスト (_rawフィールド) が⽐較されます。attribute を使⽤する別の
フィールドを指定することで、他のフィールドを⽐較できます。
構⽂
diff [position1=int] [position2=int] [attribute=string] [diffheader=bool] [context=bool] [maxlen=int]
オプション引数
position1
データタイプ: <int>
説明: ⼊⼒サーチ結果のテーブルで、position2 と⽐較する特定のサーチ結果を選択します。
デフォルト: position1=1 で、最初のサーチ結果を指します。
position2
データタイプ: <int>
説明: ⼊⼒サーチ結果のテーブルから、position1と⽐較するサーチ結果を選択します。この値は
position1 より⼤きな値でなければなりません。
デフォルト: position2=2 で、2 番⽬のサーチ結果を指します。
attribute
データタイプ: <field>
説明: 2 つのサーチ結果で⽐較するフィールドの名前です。
デフォルト: attribute=_raw で、イベントまたは結果のテキストを参照します。
diffheader
データタイプ: <bool>
説明: 真 (True) の場合、従来の diff ヘッダーを表⽰し、⽐較対象ファイル名を⽰します。diff ヘッダーは
出⼒を、プログラマー⽤コマンドライン patch コマンドが予期する有効な diff にします。
デフォルト: diffheader=false.
context
106
データタイプ: <bool>
説明: true の時、デフォルトのユニファイド diff 出⼒ではなく、コンテキストモードの diff 出⼒を選択しま
す。
デフォルト: context=false、つまりユニファイド出⼒
maxlen
データタイプ: <int>
説明: 真 (True) の場合、デフォルトの統合型 diff 出⼒ではなく、コンテキストモードの diff 出⼒を選択し
ます。maxlen=0 の場合、制限はありません。
デフォルト: maxlen=100000、つまり 100KB です。
例
例 1:
最初のサーチ結果と 3 番⽬のサーチ結果の「ip」値を⽐較します。
... | diff pos1=1 pos2=3 attribute=ip
例 2:
9 番⽬のサーチ結果を 10 番⽬のサーチ結果と⽐較します。
... | diff position1=9 position2=10
関連項⽬
set
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、diff コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
erex
説明
正規表現がわからない場合、erex コマンドを使⽤してフィールドからデータを抽出します。このコマンドは、指定
した例の値に類似するフィールド値を⾃動的に抽出します。
引数を指定すると、fromfield 引数から抽出された値が field に保存されます。そうでない場合、 rex コマン
ドとともにフィールドの抽出で使⽤できる正規表現が返されます。
field
構⽂
erex [<field>] examples=<string> [counterexamples=<string>] [fromfield=<field>] [maxtrainers=<int>]
必要な引数
例
構⽂: examples=<string>,<string>...
説明: 抽出して新しいフィールドに保存する情報の例となる値のカンマ区切りリストです。リストにスペー
スが含まれる場合、リストで引⽤符を使⽤します。例:"port 3351, port 3768"。
オプション引数
counterexamples
構⽂: counterexamples=<string>,<string>,...
説明: 抽出しない情報を⽰す例となる値のカンマ区切りリスト。
field
構⽂: <string>
説明: fromfield から抽出した値を保管する新しいフィールドの名前です。field を指定しない場合、値は抽
出されませんが、結果となる正規表現が⽣成され、Splunk Web の [ジョブ] メニュー下にメッセージが表⽰
されます。その正規表現を rex コマンドで使⽤して、より効率的な抽出を⾏うことができます。
fromfield
構⽂: fromfield=<field>
説明: 情報の抽出元フィールドとなる既存のフィールド名(新しいフィールドに保存)
デフォルト: _raw
maxtrainers
構⽂: maxtrainers=<int>
説明: 学習する値の最⼤数です。1〜1000 でなければなりません。
デフォルト: 100
107
使⽤⽅法
と counterexample 引数に指定する値は、 erex にコマンドパイプをで渡されるイベントに存在している必要
があります。値が存在しないとコマンドは機能しません。
examples
コマンドを確実に機能させるために、必要なイベントを返すサーチを erex コマンドを使⽤せずに実⾏しま
す。次に、抽出するフィールドの値をコピーし、example の値として erex コマンドで使⽤します。
erex
例
例 1:
「7/01」や「7/02」のような値を抽出しますが、「99/2」のようなパターンは抽出しません。抽出した値は、
monthday 属性に保管します。
... | erex monthday examples="7/01, 07/02" counterexamples="99/2"
例 2:
「7/01」のような値を抽出して、それを monthday 属性に保管します。
... | erex monthday examples="7/01"
例3: 攻撃されている可能性のあるポートを表⽰します。まず、潜在的な攻撃者をサーチして、例となるポート値
を探します。次に、erex を使ってポート (port) フィールドを抽出します。
sourcetype=secure* port "failed password" | erex port examples="port 3351, port 3768" | top port
このサーチはサーチに⼀致する上位のポート数を返します。また、[ジョブ] メニュー下にある、⽣成された正規表
現も探します。
関連項⽬
extract、kvform、multikv、regex、rex、xmlkv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、erex コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
eval
説明
式で、結果値を宛先フィールドに保管します。この宛先フィールド名が既存のフィールド名と⼀致する場合、
既存のフィールド値が eval 式の結果に上書きされます。eval コマンドは、数式、⽂字列式、論理式を評価しま
す。
eval
カンマを使って後続の式と区切ることで、⼀つのサーチにある複数の eval 式を連結できます。複数の eval 式は
左から右へと処理され、過去に評価されたフィールドを後続の式で参照できます。
eval 式と stat 式の違い
コマンドはイベントのフィールドに基づく統計を⾏います。eval コマンドは、既存のフィールドと任意の式
を使って、イベントに新しいフィールドを作成します。
stats
構⽂
eval <field>=<expression> [, <field>=<expression>]*
108
必要な引数
field
構⽂: <string>
説明: 計算結果の値の宛先フィールドの名前です。フィールド名がイベントに存在する場合は、eval が値を
上書きします。
expression
構⽂: <string>
説明: 宛先フィールドの値の位置を判断するために実⾏される、値、変数、演算⼦、および関数の組み合わ
せ。
サーチの実⾏前に eval 式の構⽂がチェックされ、無効な式の場合には例外が⽣成されます。
eval ステートメントの結果が、論理値になることは禁⽌されています。指定されたイベントに対して式を正
常に評価できなかった場合、結果フィールドは消去されます。
英数字以外の⽂字を含むフィールド名を式が参照する場合は、それを単⼀引⽤符 で囲む必要があります
(例:new=count+'server-1')。
英数字以外の⽂字を含むリテラル⽂字列 を式が参照する場合は、それを⼆重引⽤符 で囲む必要があります
(例:new="server-"+host)。
演算⼦
コマンドを使って実⾏できる基本的な操作を以下の表に⽰します。これらの評価が正常に機能するためには、
操作の種類に応じて有効な値を使⽤する必要があります。たとえば、追加の例外処理では、値が数値でないと算術
操作で有効な結果を得ることはできません。値を連結する場合は、実際の種類に関係なく値が⽂字列として読み込
まれます。
eval
タイプ
演算⼦
算術
+ - * / %
連結
.
論理値
AND OR NOT XOR < > <= >= != = == LIKE
数値を⽣成する演算⼦
+ 演算⼦は追加する 2 つの数字、または連結する 2 つの⽂字列を受け付けます。
引き算 ( - )、掛け算 ( * )、割り算 ( / )、係数 ( % ) 演算⼦は、2 つの数を受け⼊れます。
⽂字列を⽣成する演算⼦
ピリオド (.) 演算⼦は⽂字列と数字の両⽅を連結します。数字は、その⽂字列を表す形で連結されます。
論理値を⽣成する演算⼦
AND、OR、NOT、XOR演算⼦は、2 つの論理値を受け付けます。
<>、<=、!=、== 演算⼦は 2 つの数または 2 つの⽂字列を受けます。<>、!=、== 演算⼦は、2 つの数字また
は 2 つの⽂字列を受け付けます。単⼀の等号 ( = ) と 2 つの等号 ( == )は同じ意味を持ちます。
LIKE 演算⼦は 2 つの⽂字列を受け付けます。ここでは SQL と同様に、パターンの照合が⾏われます。
例:string LIKE pattern。パターン演算⼦は、リテラルテキスト、ワイルドカードのパーセント記号 ( % ) 、
単⼀⽂字の照合でのアンダースコア ( _ ) に対応しています。たとえばフィールド LIKE "a%b_" は、a で始ま
り、その後に任意の⽂字、b 、1 つの⽂字が続く⽂字列を照合します。
関数
eval
コマンドとともに次の関数を使⽤できます:
abs, case, ceil, ceiling, cidrmatch, coalesce, commands, exact,
exp, floor, if, ifnull, isbool, isint, isnotnull, isnull, isnum, isstr, len, like, ln, log, lower, ltrim, match,
max, md5, min, mvappend, mvcount, mvindex, mvfilter, mvjoin, mvrange, mvzip, now, null, nullif, pi, pow, random,
relative_time, replace, round, rtrim, searchmatch, sha1, sha256, sha512, sigfig, spath, split, sqrt, strftime,
strptime, substr, time, tonumber, tostring, trim, typeof, upper, urldecode, validate.
これらの関数の説明と例 は、「評価関数」を参照してください。
使⽤⽅法
全般
eval コマンドには、評価する式の結果を保管するフィールド名が必要です。この宛先フィールド名が既存の
フィールド名と⼀致する場合、フィールドの値が eval 式の結果に置換されます。
⾓括弧 { } を利⽤することで、宛先フィールド名として、他のフィールドの値を使⽤することもできます。たとえ
ば、aName=counter および aValue=1234 フィールドを持つイベントがある場合、| eval {aName}=aValue を使って
counter=1234 を返します。
109
数字と⽂字列はフィールドに割り当てることができます。論理値は割り当てられないことがあります。ただし、
tostring() を使って論理値や NULL を⽂字列に変換すれば、フィールドに割り当てられることがあります。
計算時、数値は倍精度浮動⼩数点数で、通常の浮動⼩数点数のすべての動作に従います。フィールドに NaN を割
り当てる操作の結果は「nan」になります。正および負のオーバーフローの結果は、「inf」および「-inf」になり
ます。0 で除算すると、NULL フィールドになります。
サーチを eval コマンドや関数の引数として使⽤する場合、保存済みサーチ名は使⽤できません。リテラルサーチ
⽂字列またはリテラルサーチ⽂字列を含むフィールド (index=_audit events から抽出された search フィールド
など) を渡す必要があります。
計算済みフィールド
ステートメントを使って計算済みフィールドを定義できます。ここでは、 props.conf でeval ステートメント
が定義されます。サーチを実⾏すると、ステートメントが評価され、サーチ時のフィールド抽出と同様にフィール
ドが作成されます。計算済みフィールドを設定すると、サーチ⽂字列に eval ステートメントを定義する必要がな
くなります。ここでは、⽣成された計算済みフィールドを直接サーチできます。
eval
イベントトークンのサーチ
イベントトークンのサーチで eval コマンドを使⽤する場合、⼀部の評価関数は使⽤できません。またはこれらの
関数が別の動作をします。イベントトークンのサーチで使⽤できる評価関数については、『ダッシュボードと視覚
エフェクト』の「トークンのサーチのためのカスタムロジック」を参照してください。
基本的な例
1.計算結果を含む新しいフィールドを作成します
各イベントで、 velocity という新しいフィールドを作成します。距離フィールドの値を時間フィールドの値で
割って、速度を計算します。
... | eval velocity=distance/time
2. if 関数を使って、 status フィールドの値を特定します
各イベントで、 status というフィールドを作成します。エラーの値が 200 の場合、ステータスフィールドの値を
OK に設定します。そうでない場合はステータスの値を Error に設定します。
... | eval status = if(error == 200, "OK", "Error")
3.⼩⽂字のユーザー名を lowuser に設定します
... | eval lowuser = lower(username)
4.sum_of_areas に、2 つの円領域の合計を設定します
... | eval sum_of_areas = pi() * pow(radius_a, 2) + pi() * pow(radius_b, 2)
5.単純な http エラーコードにステータスを設定します
... | eval error_msg = case(error == 404, "Not found", error == 500, "Internal Server Error", error == 200, "OK")
6.first_name、スペース、last_name を連結して full_name を設定します
... | eval full_name = first_name." ".last_nameSearch
7.processor 別の cpu_seconds の平均を⼩数第 2 位で丸めた時間グラフを作成します
... | timechart eval(round(avg(cpu_seconds),2)) by processor
8.数値フィールドの値を、カンマで区切った⽂字列に変換します
x の元の値が 1000000 の場合、返される値は 1,000,000 になります。
... | eval x=tostring(x,"commas")
⽂字列の先頭に通貨記号を付けるには:
... | eval x="$".tostring(x,"commas")
これによって、x は $1,000,000 として返されます。
使⽤事例
9.異なる 2 つのソースタイプからのフィールドを融合し、それを使ってイベントのトランザクションを作
110
成します
この例は、異なる 2 つのソースタイプからのフィールドを融合し、それを使ってイベントのトランザクションを
作成する⽅法を表しています。sourcetype=Aには、number フィールドがあり、sourcetype=B の subscriberNumber
フィールドには同じ情報が存在しています。
sourcetype=A OR sourcetype=B | eval phone=coalesce(number,subscriberNumber) | transaction phone maxspan=2m
コマンドを使⽤して共通のフィールド phone を追加し 、各イベントが sourcetype=A からなのか、sourcetype=B
からなのかを⽰す情報を追加します。coalesce() 関数を使って phone の値を定義しています (number および
subscriberNumber の値として)。coalesce() 関数は、最初の NULL ではない (イベント内に存在している) フィール
ドの値を取ります。
eval
これで、同じ
りました。
phone
値を保有している場合、ソースタイプ
A
または
B
からのイベントをグループ化できるようにな
10.イベントをカテゴリに分類し、最⼤値と最低値をカウントして表⽰します
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それを Splunk への⼊⼒として
追加できます。
⼀般的に深度 70km 未満で発⽣した地震は、浅発 地震、70〜300km の震源域で発⽣した地震は深発 地震とし
て分類されます。沈み込み帯では、より深い所で深発 地震が発⽣することもあります (300〜700 km)。
最近の地震を、その発⽣深度に基づいて分類します。
source=usgs | eval Description=case(depth<=70, "Shallow", depth>70 AND depth<=300, "Mid", depth>300, "Deep") | stats
count min(mag) max(mag) by Description
コマンドを使って Description フィールドを作成します。このフィールドは、地震の Depth に基づいて、
「Shallow」 (浅)、「Mid」 (中)、または「Deep」 (深) の値を取ります。case() 関数は、各説明に適合する深さ
の範囲を指定するために⽤いられています。たとえば、深度が 70 km 未満の場合、その地震は浅発地震として分
類され、Description には Shallow が設定されます。
eval
また、このサーチは eval の結果を stats コマンドに渡して、地震数をカウントし、各説明 (Description) にマグ
ニチュードの最⼩値と最⼤値を表⽰します。
11.IP アドレスを特定し、eval 関数 の cidrmatch とif を使ってネットワークごとに分類します。
この例は、Splunk チュートリアルの「Splunk へのチュートリアルデータの取り込み 」のトピックで説明
されているサンプルデータセットを使⽤することを想定していますが、任意の形式の Apache Web アクセス
ログにも対応しています。このトピックの説明に従ってデータセットをダウンロードして、Splunk に取り込
んでください。次に、時間範囲に [その他] > [昨⽇] を指定してサーチを実⾏します。
このサーチでは、IP アドレスを検索し、それが所属するネットワークに応じて分類します。
sourcetype=access_* | eval network=if(cidrmatch("192.0.0.0/16", clientip), "local", "other")
この例は、cidrmatch() 関数を使って、clientip フィールド内の IP アドレスをサブネット範囲と⽐較します。この
サーチは if() 関数も使⽤して、clientip の値がサブネット範囲内に該当する場合、network に値 local が与えられ
ます。それ以外の場合は、network=other になります。
コマンドは、特に結果のフォーマットは⾏いません。単純に eval 式に基づく値を取る新規フィールドを作成
します。このサーチを実⾏したら、フィールドサイドバーを使って結果に network フィールドを追加します。これ
で、サーチ結果内で local ネットワークに所属している IP アドレスと、所属していない IP アドレスを識別できる
ようになりました。イベントリストの例を以下に⽰します。
eval
111
結果をフォーマットする別の⽅法として、eval の結果を
することができます。(例 1 を参照)
table
コマンドに渡して、注⽬するフィールドのみを表⽰
注意: この例は cidrmatch 関数の使い⽅を説明すものです。イベントを分類して、それらのイベントを素早くサー
チしたい場合は、イベントタイプを使⽤することをお勧めします。詳細は、『ナレッジ管理』マニュアルの「イ
ベントタイプについて 」を参照してください。
12.イベントから情報を個別のフィールドに抽出し、複数値フィールドを作成します
この例は、⽣成されたメールデータ (sourcetype=cisco_esa) を使⽤しています。この例の sourcetype=cisco_esa を
ご⾃分のデータの sourcetype 値に、そして mailfrom フィールドをご⾃分のメールアドレスフィールド名
(例:To, From, or Cc) に変更すれば、任意のメールデータに対して利⽤できます。
メールアドレスフィールドを使って、ユーザーの名前とドメインを抽出します。
sourcetype="cisco_esa" mailfrom=* | eval accountname=split(mailfrom,"@") | eval from_user=mvindex(accountname,0) |
eval from_domain=mvindex(accountname,-1) | table mailfrom, from_user, from_domain
この例は split() 関数を使って、mailfrom フィールドを複数値フィールド accountname に分割していま
す。accountname の最初の値は、「@」記号の前にあるすべての⽂字列で、2 番⽬の値はこの記号の後にある⽂字列
です。
次に、mvindex() 関数を使って、from_user と
定します。
eval
式の結果は
よび
from_domain
from_domain
に、それぞれ
accountname
コマンドに渡されます。以下の結果テーブルでは、元の
の値を確認できます。
table
の 1 番⽬の値と 2 番⽬の値を設
mailfrom
値と、新しい
from_user
お
注意: この例は実⽤的なものではありません。これは、eval 関数を使った、複数値フィールド内の個別の値の識別
⽅法をデモンストレーションする⽬的で作成されています。このメールデータセットには複数値フィールドが存在
していないため、この例では単⼀値フィールド (mailfrom) から複数値フィールド (accountname) を作成しました。
13.match関数を使ってイベントを分類します
この例は、⽣成されたメールデータ (sourcetype=cisco_esa) を使⽤しています。この例の sourcetype=cisco_esa を
ご⾃分のデータの sourcetype 値に、そして mailfrom フィールドをご⾃分のメールアドレスフィールド名
(例:To, From, or Cc) に変更すれば、任意のメールデータに対して利⽤できます。
112
この例では、メールアドレスのドメイン(.com, .net, and .org)に基づいて、受信されるメールが分類されていま
す。アドレスは local、その他は abroad と⾒なされます。(もちろんですが、.com/.net/.org 以外での分類も可能
です。)
sourcetype="cisco_esa" mailfrom=*| eval accountname=split(mailfrom,"@") | eval from_domain=mvindex(accountname,-1) |
eval location=if(match(from_domain, "[^\n\r\s]+\.(com|net|org)"), "local", "abroad") | stats count by location
このサーチの前半は、例 12 と似ています。split() 関数は、mailfrom フィールド内のメールアドレスの分割に⽤い
られます。mvindex 関数は from_domain を、mailfrom フィールドの @ 記号の後の部分として定義しています。
次に if() および match() 関数が使⽤されます。from_domain の値が .com, .net., or .org で終了する場合、location
フィールドには local が割り当てられます。from_domain が⼀致しない場合は、location に abroad が割り当てられま
す。
の結果は
成されます。
eval
stats
コマンドに渡されて、各
location
値の結果数がカウントされ、以下のような結果テーブルが⽣
サーチの実⾏後、イベントに mailfrom および location フィールドを追加して、イベントの分類をそのまま参照す
ることができます。サーチ結果にこれらのフィールドを⼊れると、結果は以下のようになります。
注意: これは match() を使⽤する⼀例にすぎません。イベントを分類して、それらのイベントを素早くサーチした
い場合は、イベントタイプを使⽤することをお勧めします。詳細は、『ナレッジ管理』マニュアルの「イベント
タイプについて 」を参照してください。
14.トランザクションの時間を読みやすい⽂字列形式に変換します
この例では、サーチチュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ
形式の任意のデータを利⽤できます。サーチチュートリアルのこのトピック からデータ セットをダウンロー
ドした後、指⽰に従って Splunk にアップロードしてください。次に、時間範囲に [その他] > [昨⽇] を指定
してサーチを実⾏します。
時間を秒で測定している数値フィールドを、より把握しやすい形式に変換します。
sourcetype=access_* | transaction clientip maxspan=10m | eval durationstr=tostring(duration,"duration")
この例は、tostring() 関数と duration オプションを使って、トランザクションの duration を把握しやすい
HH:MM:SS 形式に変換しています。duration は、トランザクション内の最初のイベントと最後のイベント間の時
間差 (秒) です。
このサーチは、変換した duration 値⽤の新規フィールド durationstr を定義しています。サーチの実⾏後は、
フィールドピッカーを使って イベントと⼀緒に 2 つのフィールドをインラインに表⽰することができます。サー
チ結果にこれらのフィールドを⼊れると、結果は以下のようになります。
113
計算済みフィールド
計算済みフィールドを使って、頻繁に使われる eval ステートメントをサーチから props.conf に移動して、サーチ
時に裏側で処理を⾏うことができます。計算済みフィールドを利⽤すれば、例 4 のサーチを以下のように変更す
ることができます。
sourcetype="cisco_esa" mailfrom=* | table mailfrom, from_user, from_domain
この例では、抽出されたフィールド mailfrom フィールドを含むイベントに対してサーチを実⾏する
と、accountname、from_user、および from_domain フィールドを定義していた、サーチ内の 3 つの eval ステートメン
トが裏側で実⾏されるようになっています。また、これらのフィールドを計算済みフィールドとして props.conf に
設定したら、フィールドを別個にサーチすることもできます。たとえば、from_domain=email.com に対してサーチを
⾏うことができます。
への計算済みフィールドの設定⽅法の詳細は、『ナレッジ管理』マニュアルの「計算済みフィールドの
定義」を参照してください。
props.conf
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、eval コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
eventcount
説明
指定したインデックス内のイベント数を返します。eventcount コマンドは⽣成サーチで、パイプライン中の最初の
コマンドでなければなりません。
注意: 異なる時間範囲にまたがってこの関数を使⽤することはできません。
構⽂
| eventcount [index=<string>]...[summarize=<bool>] [report_size=<bool>] [list_vix=<bool>]
オプション引数
インデックス
構⽂: index=<string>
説明: レポートするインデックス名、またはレポートする複数のインデックスに⼀致するワイルドカード
index=* index=_* のように複数回指定できます。インデックスが指定されない場合、デフォルトインデックス
に関する情報が返されます。
list_vix
構⽂: list_vix=<bool>
説明: 仮想インデックスを記載するかどうかを指定します。list_vix=false の場合は、仮想インデックスが
⼀覧化されません。
デフォルト: 真 (True)
report_size
構⽂: report_size=<bool>
説明: インデックスのサイズを報告するかどうかを指定します。report_size=true の場合、インデックスのサ
イズがバイト数で返されます。
デフォルト: false
summarize
構⽂: summarize=<bool>
説明: すべてのピアとインデックスにまたがってイベントを要約するかどうかを指定しま
す。summarize=false の場合は、インデックスとサーチピア別にイベント数を分割します。
デフォルト: 真 (True)
例
例 1:
114
すべてのサーチピアに対して、デフォルトインデックス内のイベントカウントを表⽰します。
| eventcount
例 2:
内部のデフォルトインデックス内のイベント数とそのサイズを返します。
| eventcount summarize=false index=_* report_size=true
注意: このサイズは、ディスク上のインデックスのサイズと同じではありません。
例 3:
各インデックス/サーバーのペアにより、イベントカウントを与えます。
| eventcount summarize=false index=*
内部インデックスをサーチする場合は、それを別途指定する必要があります。
| eventcount summarize=false index=* index=_*
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、eventcount コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
eventstats
説明
すべてのサーチ結果に、サマリー統計情報を追加します。
サーチ結果に存在するすべてのフィールドのサマリー統計を作成し、 新しいフィールドに保存します。eventstats
コマンドは stats と同様のコマンドです。これらの違いは、eventstats コマンドでは集計結果イベントに関係する
場合だけに、それぞれのイベントのインラインに結果が追加されることです。
ファイルでは、 max_mem_usage_mb パラメータを使って、 stats と eventstats コマンドが情報の追跡で消
費するメモリが制限されます。eventstats コマンドがこの上限に達すると、サーチ結果への要求されたフィールド
の追加が停⽌されます。この場合、上限を上げるか、システムのメモリを増やすことができます。
limits.conf
構⽂
eventstats [allnum=<bool>] <stats-agg-term>* [<by clause>]
必要な引数
<stats-agg-term>
構⽂: <stats-func>( <evaled-field> | <wc-field> ) [AS <wc-field>]
説明: オプションとして新しいフィールド名に名前を変更できる統計指定⼦。指定⼦には、フィールドに
aggregation 関数を適⽤、または⼀連のフィールドセット、または任意の eval 式に aggregation 関数を適
⽤したものを利⽤できます。
オプション引数
allnum
構⽂: allnum=<bool>
115
説明: 真 (True) の場合、当該フィールドのすべての値が数値の場合にのみ、各フィールドの数値統計を算出
します。
デフォルト: false
<by 句>
構⽂: by <field-list>
説明: グループ化する 1 つ以上のフィールドの名前。
sta ts-fu nc オプションの説明
stats-func
構⽂: avg() | c() | count() | dc() | distinct_count() | first() | last() | list() | max() | median() | min() |
mode() | p<in>() | perc<int>() | per_day() | per_hour() | per_minute() | per_second() | range() | stdev() |
stdevp() | sum() | sumsq() | values() | var() | varp()
説明: stats コマンドで使⽤される関数。stats コマンドの起動時に、複数の関数を使⽤できます。ただし、
使⽤できる by clause は 1 つだけです。統計関数のほか、その説明と例を含む⼀覧については、「統計およ
びグラフ関数」を参照してください。
例
例1: 総合的な平均期間を算出し、「avgdur」を duration フィールドが存在する各イベントの新しいフィールドと
して追加します。
... | eventstats avg(duration) as avgdur
例2: 例 1 とほぼ同じですが、date_hour の各⼀意の値に対して平均が計算され、次に各イベントに date_hour
の値の平均値が与えられます。
... | eventstats avg(duration) as avgdur by date_hour
例3: エラーボリューム内のスパイクをサーチします。このサーチを利⽤して、エラー数が平均を超えた場合にア
ラートを⽣成することができます。以下に例を⽰します。
eventtype="error" | eventstats avg(foo) as avg | where foo>avg
関連項⽬
stats、streamstats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、eventstats コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
extract (kv)
説明
サーチ結果から、フィールドと値のペアを抽出します。
構⽂
extract | kv <extract-opt>* <extractor-name>*
必要な引数
<extract-opt>
構⽂: clean_keys=<bool> | kvdelim=<string> | limit=<int> | maxchars=<int> | mv_add=<bool> |
pairdelim=<string> | reload=<bool> | segment=<bool>
説明: 抽出を定義するオプション
<extractor-name>
構⽂: <string>
説明: transforms.conf ファイルのスタンザ。props.conf ファイルによりこのソース、ソースタイプ、またはホ
ストに対して明⽰的に抽出が⾏われない場合に使⽤されます。
extra c t-op t オプションの説明
clean_keys
構⽂: clean_keys=<bool>
説明: キーを消去するかどうかを指定します。transforms.conf ファイルの CLEAN_KEYS を上書きし
ます。
kvdelim
構⽂: kvdelim=<string>
説明: キーと値を分離する区切り⽂字のリスト。
limit
116
構⽂: limit=<int>
説明: ⾃動的に抽出するキーと値のペアの数を指定します。
デフォルト: 50
maxchars
構⽂: maxchars=<int>
説明: イベントで探す⽂字数を指定します。
デフォルト: 10,240
mv_add
構⽂: mv_add=<bool>
説明: 複数値フィールドを作成するかどうかを指定transforms.conf ファイルの MV_ADD の値を上書き
します。
pairdelim
構⽂: pair=<string>
説明: キーと値のペアを分離する区切り⽂字のリスト
reload
構⽂: reload=<bool>
説明: props.conf および transforms.conf ファイルの再ロードを強制するかどうかを指定
デフォルト: false
segment
構⽂: segment=<bool>
説明: キー/値のペアの場所に結果に記録するかどうかを指定
デフォルト: false
例
例 1:
パイプまたはセミコロン ( |; ) で区切られているキーと値のペアを抽出します。等号またはコロン ( =: ) で区切ら
れているフィールドを抽出します。こうした区切り⽂字は個別の⽂字です。この例では「=」または「:」 が、
キー/値を区切るために使⽤されています。同様に、「|」や「;」 はフィールド/値のペア⾃体を区切るために使⽤
されています。
... | extract pairdelim="|;", kvdelim="=:"
例 2:
フィールド/値のペアを抽出して、ディスクからフィールド抽出設定を再ロードします。
... | extract reload=true
例 3:
スタンザ内の 「access-extractions」で定義されているフィールド/値のペアを抽出します。
transforms.conf<code>
file.
... | extract access-extractions
関連項⽬
kvform、multikv、rex、xmlkv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、extract コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
fieldformat
説明
コマンドでは、結果の⽣成時に eval 式を使⽤することで、フィールド値の形式を変更できます。ここ
では、フィールドの値⾃体を変更せず、形式を変更できます。サーチパイプライン内の後のコマンドは、変更され
た値を変更できません。
fieldformat
コマンドは、データをエクスポートする outputcsv や output lookup などのコマンドには適⽤されませ
ん。エクスポートでは変更された形式ではなく元のデータ形式が維持されます。エクスポートするデータに形式を
適⽤する場合は、fieldformat コマンドではなく eval コマンドを使⽤してください。
fieldformat
構⽂
fieldformat <field>=<eval-expression>
必要な引数
117
<field>
説明: eval 式の出⼒⽤の、ワイルドカードを使⽤しない新しいまたは既存のフィールド名
<Eval 式>
構⽂: <string>
説明: 宛先フィールドの値を表す、値、変数、演算⼦、および関数の組み合わせ詳細は eval コマンドと 評
価関数を参照してください。
例
例 1:
メインインデックス内のソースタイプに対する、metadata 結果を返します。
| metadata type=sourcetypes | rename totalCount as Count firstTime as "First Event" lastTime as "Last Event"
recentTime as "Last Update" | table sourcetype Count "First Event" "Last Event" "Last Update"
フィールドの名前も変更されますが、fieldformat コマンドなしの場合は時間フィールドが Unix 時で表⽰されま
す。
ここでは
fieldformat
コマンドを使って
firstTime、lastTime、recentTime
の時間フィールドの形式を再設定します。
| metadata type=sourcetypes | rename totalCount as Count firstTime as "First Event" lastTime as "Last Event"
recentTime as "Last Update" | table sourcetype Count "First Event" "Last Event" "Last Update" | fieldformat
Count=tostring(Count, "commas") | fieldformat "First Event"=strftime('First Event', "%c") | fieldformat "Last
Event"=strftime('Last Event', "%c") | fieldformat "Last Update"=strftime('Last Update', "%c")
コマンドは、Count フィールドの書式設定を変更し、値にカンマを表⽰するためにも使⽤されます。
結果がより把握しやすくなりました。
fieldformat
例 2:
start_time がエポック数であると想定し、その時間に対応する時間、分、秒のみを表⽰する start_time を設定し
ます。
... | fieldformat start_time = strftime(start_time, "%H:%M:%S")
例 3:
フィールドの数値に通貨記号を付けてフォーマットするには、通貨記号をリテラルとして指定し、引⽤符で囲む必
要があります。ここでは 2 値の連結演算⼦としてピリオドを使⽤し、その後に⽂字⾦額の値にコンマを表⽰する
tostring 関数を使⽤します。
...| fieldformat totalSales="$".tostring(totalSales,"commas")
関連項⽬
eval、where
Answers
118
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、fieldformat コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
フィールド
説明
フィールドのリスト基準に基づいて、サーチ結果のフィールドを維持 (+) または除外 (-) します。「+」を指定し
た場合、リスト内のいずれかのフィールドに⼀致するフィールドのみが保持されます。「-」を指定した場合、リ
スト内のいずれかのフィールドに⼀致するフィールドのみが削除されます。どちらも指定されていない場合、デ
フォルトの + が使⽤されます。
重要: 先頭のアンダースコアは、_raw and _time などの、すべての内部 Splunk Enterprise フィールド名⽤に予約
されています。デフォルトでは、出⼒には内部フィールド _raw and _time が含まれます。fields コマンドは、以下
の項⽬を明⽰的に指定しない限り、内部フィールドを削除することはありません。
... | fields - _*
または、より明⽰的に以下のように指定します。
... | fields - _raw,_time
注意: _time フィールドの削除には⼗分注意してください。_time フィールドがない場合、timechart や
統計コマンドでは⽇付と時刻の情報を表⽰できません。
chart
などの
構⽂
fields [+|-] <wc-field-list>
必要な引数
<wc-field-list>
構⽂: <string>, ...
説明: 保持 (+) または削除 (-) するフィールドのカンマ区切りリスト(ワイルドカードの使⽤が可能)。
例
例 1:
「host」および「ip」フィールドを削除します。
... | fields - host, ip
例 2:
および ip フィールドのみを維持します。内部フィールドはすべて削除します。たとえば、_time など、内部
フィールドはアンダースコアから始まります。
host
... | fields host, ip | fields - _*
例 3:
フィールド「source」、「sourcetype」、「host」、および値の先頭が「error」で始まるすべてのフィールドの
みが保持されます。
... | fields source, sourcetype, host, error*
関連項⽬
rename、table
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、fields コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
fieldsummary
説明
コマンドは、イベント内のすべて、または⼀部のフィールドのサマリー統計を計算します。サマリー
情報は結果テーブルとして表⽰され、以下の計算を含んでいます。
fieldsummary
フィー
ルド名
説明
119
field
イベント内のフィールド名。
count
そのフィールドを持つイベント/結果数。
distinct
count
フィールド内の⼀意の値数。
is_exact
フィールドが厳密かどうか。これは、フィールド値の⼀意のカウントに関連しています。フィールド
の値数が maxvals を超えた場合、fieldsummary はすべての値の保持を中⽌して、完全な⼀意の値ではな
く⼀意の近似値を算出します。1 は厳密を、0 はそうではないことを表しています。
max
フィールドが数値の場合に、値の最⼤値。
mean
フィールドが数値の場合に、値の平均値。
min
フィールドが数値の場合に、値の最⼩値。
numeric
count
フィールド内の数値数。これに NULL 値を含めることはできません。
stdev
フィールドが数値の場合に、値の標準偏差。
values
フィールドの⼀意の値数とそれぞれの値のカウント数。
構⽂
fieldsummary [maxvals=<num>] [<wcfield-list>]
オプション引数
maxvals
構⽂: maxvals=<num>
説明: 各フィールドに対して返す⼀意の値の最⼤値を指定します。
デフォルト: 100
wcfield-list
説明: ワイルドカードを含めることができる、1 つのフィールドまたはフィールドのリスト。
例
例 1:
すべてのフィールドのサマリーを返します。
index=_internal earliest=-15m latest=now | fieldsummary
例 2:
名前に「size」および「count」を含むフィールドのサマリーを返し、各フィールドのトップ 10 の値のみを返し
ます。
index=_internal earliest=-15m latest=now | fieldsummary maxvals=10 *size* *count*
120
関連項⽬
af、anomalies、anomalousvalue、stats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、fields コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
filldown
説明
1 つのフィールドまたは⼀連のフィールドに対して、NULL を最後の⾮ NULL と置換します。フィールドのリス
トが指定されない場合、filldown がすべてのフィールドに適⽤されます。フィールドに対して前の値が存在してい
ない場合は、そのまま空 (NULL) で放置されます。
構⽂
filldown <wc-field-list>
例
例 1:
すべてのフィールドの NULL 値に対して、filldown を実施します
... | filldown
例 2:
count フィールドにのみ NULL 値の filldown を実施します
... | filldown count
例 3:
count フィールドおよび先頭が「score」で始まる任意のフィールドの null 値に対して filldown を実施します
... | filldown count score*
関連項⽬
fillnull
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、filldown コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
fillnull
説明
NULL 値を指定値で置換します。NULL 値は、特定の結果には存在していないけれども、他の結果には存在して
いるフィールド値です。NULL 値を⽂字列で置換するには、fillnull を使⽤します。フィールドリストを指定しな
い場合は、fillnull はすべての NULL 値を 0 (デフォルト) またはユーザー指定⽂字列で置換します。
構⽂
121
fillnull [value=string] [<field-list>]
オプション引数
field-list
構⽂: <field>...
説明: スペースで区切られた 1 つ以上のフィールドです。指定しない場合、すべてのフィールドに fillnull
が適⽤されます。
値
データタイプ: value=<string>
説明: NULL 値を置換する⽂字列値の指定
デフォルト: 0
例
例 1:
現在のサーチ結果に対して、すべての空のフィールドに NULL を記⼊します。
... | fillnull value=NULL
例 2:
現在のサーチ結果に対して、「foo」および「bar」のすべての空フィールドに NULL を記⼊します。
... | fillnull value=NULL foo bar
例 3:
現在のサーチ結果に対して、すべての空のフィールドに 0 を記⼊します。
... | fillnull
例 4:
Web イベントのホスト別タイムライングラフを作成します。空のフィールドには NULL を記⼊します。
sourcetype="web" | timechart count by host | fillnull value=NULL
関連項⽬
streamstats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、fillnull コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
findkeywords
概要
いくつかのイベントの整数ラベルをグループとして、それらのグループを⽣成するサーチを探します。
構⽂
findkeywords labelfield=<field>
必要な引数
labelfield
構⽂: labelfield=<field>
説明: フィールドの名前
説明
コマンドの後に findkeywords コマンド、またはイベントをグループ化する類似のコマンドを使⽤しま
す。findkeyword コマンドは、結果を⼀連のグループに分割するフィールド (labelfield) を持つ、⼀連の結果を取り
ます。コマンドは、これらの各グループを⽣成するサーチを算出します。このサーチは、イベントタイプ として
保存できます。
cluster
例
122
例1: このサーチは、Splunk が⾃⼰に関する情報を _internal 内に記録しているログを活⽤しています。log_level
が DEBUG、WARN、ERROR、FATAL のすべてのログをクラスタ化して返します。
index=_internal source=*splunkd.log* log_level!=info | cluster showcount=t | findkeywords labelfield=cluster_count
結果は静的テーブルになります。
groupID
の値は、cluster コマンドから返される
cluster_count
の値です。
関連項⽬
cluster、 findtypes
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、findkeywords コマン
ドの使⽤⽅法に関する質問と回答をご覧いただけます。
findtypes
説明
サーチの結果を取得し、イベントタイプとして使⽤できる可能性がある有望なサーチのリストを⽣成します。発⾒
されたイベントタイプに対して、最⾼で 5000 件のイベントが分析されます。
構⽂
findtypes max=<int> [notcovered] [useraw]
必要な引数
max
データタイプ: <int>
説明: 返されるイベントの最⼤数
デフォルト: 10
オプション引数
notcovered
説明: このキーワードが使⽤されると、
します。
findtypes
コマンドはまだカバーされていないイベントタイプのみ返
useraw
説明: このキーワードが使⽤された場合、 findtypes コマンドはイベントの _raw テキストに含まれるフレー
ズを使⽤してイベントタイプを⽣成します。
例
例 1:
10 件の共通なイベントタイプを発⾒します。
... | findtypes
例 2:
50 件の⼀般的なイベントタイプを探し、注⽬するテキストフレーズに対するサポートを追加します
123
... | findtypes max=50 useraw
関連項⽬
typer
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、findtypes コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
folderize
説明
上位レベルのグループを作成します (ファイル名をディレクトリで置換するなど)。attr 属性の値をより汎⽤的な
値に置換します。これは、他の結果からの他の値で attr 値をグループ化した結果となります。グループ化は、sep
セパレータ値に対して attr 属性をトークン化することにより⾏われます。
たとえば、folderize コマンドはセパレータ (例:「/」) で区切ってソース⽂字列を分類し、要求された結果内の
ディレクトリ結果だけを表⽰することができます。Splunk ホームページに 200 件のソースを表⽰する代わり
に、folderize コマンドはセパレータ (例: 「/」) で区切ってソース⽂字列を分類し、要求された結果内のディレ
クトリ結果だけを表⽰することができます。
構⽂
folderize attr=<string> [sep=<string>] [size=<string>] [minfolders=<int>] [maxfolders=<int>]
引数
attr
構⽂: attr=<string>
attr 属性の値をより汎⽤的な値に置換します。これは、他の結果からの他の値でグループ化した結果となり
ます。グループ化は、sep セパレータ値に対して attr 属性をトークン化することにより⾏われます。
sep
構⽂: sep=<string>
説明: 複数のデータシリーズと split-by フィールドが⼀緒に使⽤されている場合に、出⼒フィールド名の構
築に使⽤するセパレータ⽂字を指定
デフォルト : ::
size
構⽂: size=<string>
説明: フォルダのサイズに使⽤する名前を指定
デフォルト : totalCount
minfolders
構⽂: minfolders=<int>
説明: グループに最低フォルダ数を設定
デフォルト: 2
maxfolders
構⽂: maxfolders=<int>
説明: グループの最⼤フォルダ数を設定
デフォルト: 20
例
例 1:
ソースを 20 フォルダに折りたたみます。
| metadata type=sources | folderize maxfolders=20 attr=source sep="/"| sort totalCount d
例 2:
結果を URI に基づいてフォルダにグループ化します。
index=_internal | stats count(uri) by uri | folderize size=count(uri) attr=uri sep="/"
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、folderize コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
foreach
説明
124
ワイルドカード指定されたフィールドリスト内の各フィールドに対して、テンプレートされたストリーミングサブ
サーチを実⾏します。
構⽂
foreach <wc-field> [fieldstr=<string>] [matchstr=<string>] [matchseg1=<string>] [matchseg2=<string>]
[matchseg3=<string>] <subsearch>
必要な引数
wc-field
構⽂: <field> <field>...
説明: ワイルドカードを含めることのできるフィールド名のリスト
subsearch
Syntax: [ subsearch ]
説明: ワイルドカードが使⽤されているフィールドの値を置換する、テンプレートを含むサブサーチ
オプション引数
fieldstr
構⽂: fieldstr=<string>
説明: <<FIELD>> を完全なフィールド名で置き換えます。
matchstr
構⽂: matchstr=<string>
説明: <<MATCHSTR>>を指定⼦のワイルドカードに⼀致するフィールド名の⼀部と置換します。
matchseg1
構⽂: matchseg1=<string>
説明: <<MATCHSEG1>> を、指定されている 1 番⽬のワイルドカードに⼀致するフィールド名の⼀部と
置換します。
matchseg2
構⽂: matchseg2=<string>
説明: <<MATCHSEG2>> を、指定されている 2 番⽬のワイルドカードに⼀致するフィールド名の⼀部と
置換します。
matchseg3
構⽂: matchseg3=<string>
説明: <<MATCHSEG3>> を、指定されている 3 番⽬のワイルドカードに⼀致するフィールド名の⼀部と
置換します。
例
例 1: 「test」から始まる名前を持つすべてのフィールドをまとめて合計フィールドに追加します。結果は
total=6 になります。
a.
... | eval total=0 | eval test1=1 | eval test2=2 | eval test3=3 | foreach test* [eval total=total + <<FIELD>>]
b.
... | eval total=0 | eval test1-1=1 | eval test1-2=2 | eval test1-3=3 | foreach test* [eval total=total +
'<<FIELD>>']
foreach サブサーチ内の <<FIELD>> トークンは、単なるフィールド名 (test*) の⽂字列置換です。フィールド名
に英数字以外の⽂字が含まれている場合、単⼀引⽤符でそれを囲まないと eval 式はその名前を認識できません。
つまり、フィールド名 test1-1 および test1-2 には、英数字以外の⽂字が含まれているため、1b に対して 1a の
サブサーチにある eval 式は無効となります。eval 式を有効にするためには、<<FIELD>> を単⼀引⽤符で囲む
必要があります。
例 2: foreach コマンドを使って、ライセンスの使⽤状況を監視します。ソースタイプ別の⽇次ライセンス使⽤状
況 (バイト ) を返すには、ライセンスマスター上で以下のサーチを実⾏します。
index=_internal source=*license_usage.log type!="*Summary" earliest=-30d | timechart span=1d sum(b) AS daily_bytes
by st
各フィールドの⽇次ライセンス使⽤状況をギガバイト で算出するには、foreach コマンドを使⽤します。
index=_internal source=*license_usage.log type!="*Summary" earliest=-30d
| timechart span=1d sum(b) AS daily_bytes by st
| foreach * [eval <<FIELD>>='<<FIELD>>'/1024/1024/1024]
例 3: foo* に⼀致する各フィールドを対応する bar* に追加して、結果を new_* フィールドに書き込みます。たと
えば、new_X = fooX + barX のようになります。
... | foreach foo* [eval new_<<MATCHSTR>> = <<FIELD>> + bar<<MATCHSTR>>]
125
例 4: 同等:
... | eval foo="foo" | eval bar="bar" | eval baz="baz"
... | foreach foo bar baz [eval <<FIELD>> = "<<FIELD>>"]
例 5: フィールド fooXbarY に対して、これは次と同等です:
... | eval fooXbarY = "X"
... | foreach foo*bar* fieldstr="#field#" matchseg2="#matchseg2#" [eval #field# = "#matchseg2#"]
関連項⽬
eval、map
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、foreach コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
format
説明
このコマンドはサブサーチで暗黙的に使⽤されます。このコマンドはサブサーチ の結果をフォーマットして⼀つ
の結果にまとめ、新しいフィールド search に保存します。
構⽂
format [mvsep="<mv separator>"] ["<row prefix>" "<column prefix>" "<column separator>" "<column
end>" "<row separator>" "<row end>"]
⾏または列のオプションを指定する場合は、それらすべてのオプションを指定する必要があります。
オプション引数
mvsep
構⽂: mvsep="<string>"
説明: 複数値フィールドで使⽤するコンマやスペースなどのセパレータ
<row prefix>
構⽂: "<string>"
説明: ⾏のプレフィックスの値
デフォルト: 左括弧「(」
<column prefix>
構⽂: "<string>"
説明: 列のプレフィックスの値
デフォルト: 左括弧⽂字「(」
<column separator>
構⽂: "<string>"
説明: 列のセパレータの値
デフォルト: AND 演算⼦
<column end>
構⽂: "<string>"
説明: 列の終端の値
デフォルト: 右括弧「)」
<row separator>
構⽂: "<string>"
説明: ⾏のセパレータの値
デフォルト: OR 演算⼦
<row end>
構⽂: "<string>"
説明: ⾏の終端の値
デフォルト: 右括弧⽂字「)」
使⽤⽅法
オプションの⾏や列の引数を指定しない場合、形式出⼒のデフォルトは
"(" "(" "AND" ")" "OR" ")"
です。
⾏または列のオプションを指定するのは、異なる形式化が必要な別のシステムにクエリをエクスポートするためで
す。
例
例 1:
126
上位 2 件の結果を取得します。ホスト、ソース、ソースタイプのフィールドからサーチを作成します。デフォル
トの形式値を使⽤します。
... | head 2 | fields source, sourcetype, host | format
結果は「search」という名前の新たなフィールドの単⼀の結果です。
( ( host="mylaptop" AND source="syslog.log" AND sourcetype="syslog" ) OR ( host="bobslaptop" AND source="bobsyslog.log" AND sourcetype="syslog" ) )
例 2:
外部のシステムで使⽤するために形式化されたクエリを作成します。
... | format "[" "[" "&&" "]" "||" "]"
例 1 でデータを使⽤すると、結果は:
[ [ host="mylaptop" && source="syslog.log" && sourcetype="syslog" ] || [ host="bobslaptop" && source="bobsyslog.log" && sourcetype="syslog" ] ]
関連項⽬
search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、format コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
gauge
説明
gauge
コマンドは、ゲージグラフでの表⽰に適した形式に結果を変換します。
各引数は実数か、または数値フィールド名でなければなりません。
範囲の値が指定される場合は、2 つ以上必要です。ゲージは最初に指定されている値から開始し、指定されている
最後の値で終わります。中間の範囲値は、全範囲をサブ範囲に分割するために使⽤されます。サブ範囲は個別に可
視化されます。
範囲値が指定されていない場合、範囲の下限値は 0、上限値は 100 となります。
単⼀の範囲値は意味がないため無視されます。
コマンドの出⼒は単⼀の結果で、値は x フィールドにあり、範囲は y1、y2... のような、フィールドのシ
リーズとして表されます。
gauge
gauge グラフタイプでは、⾊範囲にマップされる数値を確認できます。これらの⾊は、特定のビジネス上の意味
やロジックを持っている場合があります。時間の経過に伴い値が変化すると、ゲージマーカーの位置がその範囲内
で変化します。
コマンドでフィールドを表⽰できます。フィールドの値はゲージグラフで追跡されます。ゲージが表す総合
的な数値範囲を定義することができます。また、その範囲内でカラーバンドのサイズを定義できます。カラーバン
ドを使⽤する場合は、サーチ⽂字列に 4 つの「範囲の値」を追加できます。範囲の値は範囲の始まりと終わりを
⽰します。また、範囲内の該当するカラーバンドのサイズも表します。
gauge
ゲージのグラフタイプを使った gauge コマンドの使⽤⽅法の詳細は、『データの視覚化』マニュアルの「視覚化リ
ファレンス」のサブセクションを参照してください。
構⽂
gauge <value> [<range_val1> <range_val2>...]
引数
値
説明: ゲージの現在値となる数値フィールドまたはリテラル値です。名前付きフィールドは、最初の⼊⼒結
果から値を取得します。
range_val1 range_val2...
説明: ゲージの表⽰範囲として使⽤する複数の数値フィールドまたは数値です。各パラメータは独⽴した
フィールド名またはリテラル数になります。フィールド名は最初の⼊⼒結果から取得されます。ゲージの合
計範囲は、最初の range_val から最後の range_val までとなります。4 つ以上の range_val パラメータがある
場合、各値セット間の範囲は出⼒で視覚的に区別されます。
デフォルトの範囲: 0 〜 100
127
例
例 1:
イベント数をカウントして、4 つの領域 (0〜750、750〜1000、1000〜1250、1250〜1500) を持つゲージに
カウント数を表⽰します。
index=_internal | stats count as myCount | gauge myCount 750 1000 1250 1500
放射状ゲージ、フィラーゲージ、およびマーカーの 3 種類のゲージを選択できます。ゲージのグラフタイプを
使った gauge コマンドの使⽤については、「ダッシュボードと視覚化」の「ゲージ」のセクションを参照してくだ
さい。
関連項⽬
eval、stats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、gauge コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
gentimes
説明
gentimes
コマンドは map コマンドと⼀緒に使⽤すると便利です。
開始時刻として指定されたその時刻から開始する、タイムスタンプ結果を⽣成します。各結果には、指定した増分
値で表⽰される重複しない隣接する時間範囲が記載されます。これは、endtime 値を通過するだけの結果が⽣成
されると終了します。
例:
| gentimes start=10/1/07 end=10/5/07
は、2007 年 10 ⽉ 1、2、3、4 ⽇の隣接する暦⽇期間を、1 ⽇単位で 4 つの区間を⽣成します。
このコマンドでは、将来の期間は利⽤できません。
構⽂
gentimes start=<timestamp> [end=<timestamp>] [<increment>]
必要な引数
先頭
構⽂: start=<timestamp>
説明: 開始時刻を指定します。
<タイムスタンプ>
構⽂: MM/DD/YYYY(:HH:MM:SS)?|<int>
説明: 時刻を指定 (例:10/1/07:12:34:56 (2007 年 10 ⽉ 1 ⽇ 12:34:56) または -5 (5 ⽇前))。
オプション引数
最後
構⽂: end=<timestamp>
説明: 終了時刻を指定
デフォルト: ローカル時間の現在時刻より前の午前 0 時
128
increment
構⽂: increment=<int>(s|m|h|d)
説明: 開始時間から終了時間への、期間の増分を指定します。
デフォルト: 1d
例
例 1:
10 ⽉ 1 ⽇から 10 ⽉ 5 ⽇までのすべての毎時間範囲
| gentimes start=10/1/07 end=10/5/07 increment=1h
例 2:
30 ⽇前から 27 ⽇前までのすべての⽇次時間範囲
| gentimes start=-30 end=-27
例 3:
10 ⽉ 1 ⽇から 10 ⽉ 5 ⽇までのすべての⽇次時間範囲
| gentimes start=10/1/07 end=10/5/07
例 4:
10 ⽉ 25 ⽇から今⽇までのすべての⽇次時間範囲
| gentimes start=10/25/07
関連項⽬
map
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、gentimes コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
geom
説明
geom コマンドは各イベントに「geom」というフィールドを追加します。このフィールドには、JSON のポリゴ
ン図形に使⽤する地理データ構造が含まれ、コロプレスマップの可視化に使⽤できます。
このコマンドには、インストールされる
external_type=geo
がある外部のルックアップが必要になりす。
構⽂
geom [<featureCollection>] [featureIdField=<string>] [gen=<double>] [min_x=<double>]
[min_y=<double>] [max_x=<double>] [max_y=<double>]
オプション引数
featureCollection
構⽂: <index>
説明: 設定すると、名前付きインデックスの使⽤を強制します。設定しない場合は、featureCollectionフィー
ルドのインデックス名を使⽤します。
featureIdField
構⽂: featureIdField = <field>
説明: 「featureId」以外の名前を持つフィールドに featuredId がある場合、このオプションを使⽤して
フィールド名を指定します。
gen
構⽂: gen=<double>.
説明: データ単位で概括を指定たとえば gen=0.1 では、0.1 単位のパラメーターがあるポリゴンで
Douglass Puiker Ramer アルゴリズムを実⾏することで、図形の概括(サイズの縮⼩) が⾏われます。
min_x
構⽂: min_x=<double>
説明: 境界ボックスの左下の隅にある X 座標。範囲は [-180, 180]。
デフォルト: -180
129
min_y
構⽂: min_y=<double>
説明: 境界ボックスの左下の隅にある Y 座標。範囲は [-90, 90]。
デフォルト: -90
max_x
構⽂: max_x=<double>
説明: 境界ボックスの右上の隅にある X 座標。範囲は [-180, 180]。
デフォルト: 180
max_y
構⽂: max_y=<double>
説明: 境界ボックスの右上の隅にある Y 座標。範囲は [-90, 90]。
デフォルト: 90
使⽤⽅法
引数が指定されない場合、geom コマンドはイベント内で featureCollection という名前のフィールドと
featureIdField という名前の列を探します。これらのフィールドは geoindex の検索からのデフォルトの出⼒に含
まれます。
min_x、min_y、max_x、max_y 引数を使⽤して図形の境界ボックスを定義します。ここでは⻑⽅形の最低値
(min_x、in_y) と⻑⽅形の最⼤値 (max_x、max_y) を指定できます。
例
例 1:
lookup "us_state" latitude as lat, longitude as long | stats count by featureId as state | geom "us_states"
featureIdField="state"
例 2:
... | geom "us_states" featureIdField="state" gen=0.1 min_x=-130.5 min_y=37.6 max_x=-130.1 max_y=37.7
関連項⽬
geomfilter
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、geom コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
geostats
説明
geostats
コマンドを使⽤し、地理情報データを表⽰してマップ上のデータを要約するための統計を⽣成します。
このコマンドは、世界地図に表⽰される地域ビンにクラスタ化される統計情報を⽣成します。緯度/経度フィール
ドに基づいてイベントをクラスタ化します。⽣成されたクラスタで統計情報が評価されます。by 句により、統計
情報をフィールド別にグループ化できます。
地図の表⽰とズームを効率的に⾏うために、geostats コマンドは1 つのサーチでさまざまなズームレベルのクラス
タ統計を⽣成し、それらの中から視覚エフェクトを選択します。ズームレベルの数量は binspanlat、
binspanlong、maxzoomlevel オプションで調整することができます。最初の解像度は binspanlat と binspanlong によっ
て選択されます。ズームの各レベルで、ビン数が両⽅の次元で倍加されます (各ズームインに対して合計 4 倍のビ
ン)。
構⽂
geostats [translatetoxy=<bool>] [latfield=<string>] [longfield=<string>] [globallimit=<int>]
[locallimit=<int>] [outputlatfield=<string>] [outputlongfield=<string>] [ binspanlat=<float>
binspanlong=<float> ] [maxzoomlevel=<int>] <stats-agg-term> [AS <rename>] [by <split-by-fields>]
必要な引数
<stats-agg-term>
書式: <stats-agg-term> [AS <rename>]
説明: 集計⼦または関数を指定します。複数の関数を指定し、フィールドの名前を変更できます。stats 関数
のほか、その説明と例を含む⼀覧については、「統計およびグラフ関数」を参照してください。
オプション引数
130
binspanlat
構⽂: binspanlat=<float>
説明: 最⼩ズームレベルにおけるビンのサイズ (緯度)。
デフォルト: 22.5。デフォルトの binspanlong=45.0 と組み合わせると、グリッドサイズは 8x8 になります。
binspanlong
構⽂: binspanlong=<float>
説明: 最⼩ズームレベルにおけるビンのサイズ (緯度)。
デフォルト: 45.0。デフォルトの binspanlat=22.5 と組み合わせると、グリッドサイズは 8x8 になります。
globallimit
構⽂: globallimit=<int>
説明: 各円グラフに追加する名前付きカテゴリ数を指定します。もう 1 つ「OTHER (その他)」カテゴリが
存在しており、ここには他のすべての split-by 値がグループ化されます。globallimit=0 を設定すると、す
べての制限が解除され、すべてのカテゴリが表⽰されます。現在の所、「その他」へのグループ化は、
count および additive 統計情報に対してのみ機能します。
デフォルト: 10
locallimit
構⽂ : locallimit=<int>
説明: シリーズへのフィルター適⽤の限界数を設定します。locallimit=N を設定すると、先頭から N 個の値
が各シリーズの合計に基づいてフィルターされます。locallimit=0 の場合は、フィルターされません。
latfield
構⽂: latfield=<field>
説明: 分析で使⽤する緯度座標を表す、事前サーチのフィールドを指定します。
デフォルト: lat
longfield
構⽂: longfield=<field>
説明: 分析で使⽤する経度座標を表す、事前サーチのフィールドを指定します。
デフォルト: lon
maxzoomlevel
構⽂: maxzoomlevel=<int>
説明: クワッドツリー内で作成する最⼤レベル
デフォルト: 90 から 9 の 10 のズームレベルが作成されるように指定します。
outlatfield
構⽂: outlatfield=<string>
説明: geostats 出⼒データの緯度フィールドの名前を指定します。
デフォルト: latitude
outlongfield
構⽂: outlongfield=<string>
説明: geostats 出⼒データの経度フィールドの名前を指定します。
Default: longitude
translatetoxy
構⽂: translatetoxy=<bool>
Description: 真 (True) の場合、geostats は位置的に区分された各場所あたり 1 つの結果を⽣成します。
このモードは地図上に描画する場合に適しています。偽 (False) の場合は、位置的に区分された場所あたり
の、カテゴリ (または多重分割データセットのタプル) あたり 1 つの結果が⽣成されます。これにより、基
本的にはデータがカテゴリ別に分割されます。このモードでは、地図上に描画することはできません。
デフォルト: 真 (True)
使⽤⽅法
マップに情報を表⽰するには、まず geostats コマンドを使ってレポート作成サーチを実⾏し、サーチをレポート
として保存するか、ダッシュボードに保存します。簡易 XML を編集して、<map>視覚エフェクトエレメントを
含めます。詳細は、以下の項⽬を参照してください。
『データの視覚化』マニュアルの「視覚化リファレンス」
「シンプル XML リファレンス」の「<map> エレメント」
例
例 1:
この例は、『サーチチュートリアル』の Buttercup Games データ (tutorialdata.zip) とルックアップファイル
(prices.csv および vendors.csv) を使⽤します。販売された各商品数をベンダー別に計算し、情報を地図上に表
⽰します。
sourcetype=vendor_* | lookup price_lookup Code OUTPUTNEW product_name | table product_name VendorID | lookup
vendors_lookup VendorID | geostats latfield=VendorLatitude longfield=VendorLongitude count by product_name
この場合、sourcetype=vendor_sales および各イベントは、以下のようになります。
[26/Sep/2013:18:24:02] VendorID=5036 Code=B AcctID=6024298300471575
price_lookup は、各イベントの Code フィールドを、テーブル内の product_name と照合するために⽤いられま
131
す。vendors_lookup は、各イベント内の VendorID と⼀致する、vendors.csv 内のすべてのフィールド
(Vendor、VendorCity、VendorID、VendorLatitude、VendorLongitude、VendorStateProvince、
VendorCountry) を出⼒するために⽤いられています。
注意: このサーチでは、csv が Splunk にアップロードされ、ルックアップが定義されていますが、⾃動ではあり
ません。
このサーチは、統計テーブルを⽣成します。
サーチを実⾏したら、それをダッシュボードとして保存してください。ここでダッシュボード名は「Geostats
example」、パネル名は「Vendor and Product Map」としています。次に、[ソースの編集] を選択して XML
を編集し、table エレメントを map エレメントに変更します。
これで、ダッシュボードを表⽰すると、世界地図上に情報が表⽰されるようになります。ここでは、地図をズーム
インして、マウスカーソルを北部 USA 地域の円グラフ上に移動します。
ズームイン/アウトして、地図の詳細を確認することができます。<map> エレメントと利⽤可能なオプションの
詳細は、「シンプル XML リファレンス」を参照してください。
例 2:
「eventlat」および「eventlong」の値でイベントをクラスタ化/グループ化した後に、各性別の平均レーティング
を計算します。
... | geostats latfield=eventlat longfield=eventlong avg(rating) by gender
132
例 3:
デフォルトの緯度/経度フィールド「lat」および「lon」でイベントをクラスタ化します。そのようなイベントの
カウントを算出します。
... | geostats count
関連項⽬
iplocation、stats、xyseries
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、geostats コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
head
説明
指定した結果の最初の N 件を、サーチ順序に返します。このことは、履歴サーチの最新の N 件のイベント、また
はリアルタイムサーチで最初に補⾜された N 件のイベントを表しています。サーチ結果はサーチ順の最初の結果
に限定されます。
適⽤できる制限のタイプには、2 種類があります。結果数量を絶対値で、または偽 (False) になるまですべての結
果を返す式で指定します。
どちらの⽅法も明⽰しない場合は、最初の 10 件が返されます。
数値リテラルなやフラグ limit=int などの数値制限を使⽤する場合、head コマンドでは最初の N 件の結果が返さ
れます。ここでの N は選択された数字です。両⽅の数値制限構⽂を使⽤すると、エラーになります。
式が使われる場合は、式の評価が false になるまで、すべての結果が返されます。評価が false になると、結
果は返されません。式が false と評価した結果を保持または破棄するかは、keeplast オプションの設定に左右され
ます。
eval
数値制限と
eval
式の両⽅が使⽤された場合、制限の少ない⽅が適⽤されます。たとえば、
... |head limit=10 (1==1)
は、式が常に真 (True) になるため、最初の 10 件の結果を返します。ただし、
... |head limit=10 (0==1)
では式が常に偽 (False) になるため、結果は返されません。
構⽂
head [<N> | (<eval-expression>)] [limit=<int>] [null=<bool>] [keeplast=<bool>]
オプション引数
<N>
構⽂: <int>
説明: 返す結果数
limit
構⽂: limit=<int>
説明: 返す結果数を指定するもう⼀つの⽅法です。
Eval 式
構⽂: <eval-math-exp> | <eval-concat-exp> | <eval-compare-exp> | <eval-bool-exp> | <eval-functioncall>
説明: 論理演算式を評価する有効な eval 式です。サーチではこの式の評価が false になるまで結果が返され
ます。keeplast は最終結果を保持するかどうかを指定します。詳細は 『サーチリファレンス』 の 評価機
能を参照してください。
keeplast
構⽂: keeplast=<bool>
説明: eval 式の評価が偽 (False) または NULL となった、最後の結果を保持するかどうかを指定します。
null
構⽂: null=<bool>
説明: 論理 eval 式を使⽤する場合の NULL の取り扱いについて指定します。たとえば、 eval 式が (x > 10)
でフィールド x が存在しなければ、真 (True) または偽 (False) ではなく、 NULL と評価されま
す。Null=trueであるため、 head コマンドは結果が NULL の場合に処理を続⾏します。この場合、null=false
によってコマンドの実⾏が停⽌されます。
デフォルト: false
133
例
例 1:
最初の 20 件の結果を返します。
... | head 20
例 2:
データの期間が 100 秒以上になるまでイベントを返します。
... | streamstats range(_time) as timerange | head (timerange<100)
関連項⽬
reverse、tail
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、head コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
highlight
説明
指定した⽤語をイベントリスト内で強調表⽰します。⽂字列や⽂字列のリストを照合し、Splunk Web で強調表
⽰します。照合では⼤⽂字と⼩⽂字が区別されません。
構⽂
highlight <string>+
必要な引数
<⽂字列>
構⽂: <string>,...
説明: 結果内の⼤⽂字⼩⽂字を区別しない⽂字列を強調表⽰するための、カンマ区切りまたはスペース区切
りリスト
例
例 1:
「login」および「logout」を強調表⽰します。
... | highlight login,logout
例 2:
「Access Denied」というフレーズを強調します。
... | highlight "access denied"
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、highlight コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
history
説明
この⽣成コマンドは現在のユーザーのサーチ履歴を閲覧するために使⽤します。サーチ履歴は⼀連のイベントまた
はテーブルとして表⽰されます。events=true を指定すると、history コマンドはサーチ⽂字列としてのテキストを
持つイベントのように情報を表⽰します。これはイベント指向型の UI を表⽰します。UI を使って⼿軽に強調表
⽰やフィールドの調査を⾏うことができます。events=false を指定すると、history コマンドはイベントテキストを
表⽰せず、サーチテキストをサーチフィールドとして提供します。ここでは静的なビューが起動され、データが表
で表⽰されるため、便利に全体を閲覧できます。
_time:サーチが開始された時刻
api_et:イベントが最初に要求された
API 呼び出しの最も早い時刻
API 呼び出しの最も遅い時刻
event_count:サーチがイベントを取得または⽣成した場合、イベント数が返されます。
api_lt:イベントが最後に要求された
134
exec_time:サーチ実⾏時間
(UNIX エポック時で整数の秒数)
(1) か、または履歴サーチ (0) かを⽰します。
result_count:サーチが変換サーチの場合、サーチの結果数
scan_count:低レベルで Splunk インデックスから取得されたイベント数
search:events=false で実⾏した場合のサーチ⽂字列
search_et:サーチ実⾏のために設定された、もっとも早い時間
search_lt:サーチ実⾏のために設定された、もっとも遅い時間
sid:サーチジョブ ID
splunk_server:サーチが実⾏された Splunk サーバー
status:サーチのステータス
total_run_time:サーチの実⾏時間合計 (秒)
is_realtime:サーチがリアルタイム
構⽂
| history [events=<bool>]
引数
イベント
構⽂: events=bool
説明: デフォルトで、サーチテキストは「search」と呼ばれるフィールドで表されます。events=true の場
合、サーチテキストはイベントテキストとして表⽰されます (_raw フィールド)。
デフォルト: false
例
例 1:
サーチ履歴のテーブルを返します。
| history
関連項⽬
search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、history コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
iconify
概要
Splunk Web で、リストに表⽰する各フィールド値に対して、⼀意のアイコンを作成します。
構⽂
iconify <field-list>
必要な引数
field-list
構⽂: <field>...
説明: ワイルドカードを使⽤しないフィールドの、カンマまたはスペース区切りリスト
説明
iconify コマンドはイベントのハッシュ値となる _icon フィールドを追加します。Splunk Web では、イベントリ
スト内に各フィールドの⼀意の値が、異なるアイコンで表⽰されます。複数のフィールドが記載されている場合
は、UI にはフィールド値の各⼀意の組み合わせに対して、別個のアイコンが表⽰されます。
例
例1: eventtype ごとに異なるアイコンを表⽰します。
... | iconify eventtype
例2:
clientip
と
method
の値の⼀意のペアに対して、異なるアイコンを表⽰します。
... | iconify clientip method
Splunk がイベントリストに どのように結果を表⽰するかを以下に⽰します。
135
関連項⽬
highlight
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、iconify コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
⼊⼒
説明
サーチで処理するソースを追加または無効にします。オプションのソースタイプとインデックス設定で、
inputs.conf の⼊⼒を有効、または無効にします。その他の attribute=values は inputs.conf に追加されます。変
更内容は、$SPLUNK_HOME/var/log/splunk/inputs.log に記録されます。通常、 input コマンドは crawl コマンド
と⼀緒に使⽤されます。
構⽂
input (add|remove) [sourcetype=string] [index=string] [string=string]*
オプション引数
ソースタイプ
データタイプ: <string>
説明: 新しい⼊⼒を追加する場合、取得したデータがこのソースタイプを使⽤するように、⼊⼒にラベルを
設定します。
インデックス
データタイプ: <string>
説明: 新しい⼊⼒を追加する場合、取得したデータがこのインデックスに送られるように、⼊⼒にラベルを
設定します。インデックスが存在するか確認してください。
例
例 1:
現在処理中のすべての csv ファイルを削除します
| crawl | search source=*csv | input remove
例 2:
Bob のホームディレクトリで⾒つかったすべてのソースを preview インデックスに、sourcetype=text で追加しま
す。またカスタムユーザーフィールドの「owner」と「name」を設定します。
| crawl root=/home/bob/txt | input add index=preview sourcetype=text owner=bob name="my nightly crawl"
例 3:
クロールで⾒つかった各ソースを、デフォルトのインデックスに追加します。この時、ソースは⾃動的に分類され
ます (sourcetyping)。
| crawl | input add
関連項⽬
crawl
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、input コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
136
inputcsv
説明
指定した CSV ファイルから、サーチ結果を読み込みます。ファイルは変更されません。ファイル名は
$SPLUNK_HOME/var/run/splunk (または、 dispatch = true の場合は $SPLUNK_HOME/var/run/splunk/dispatch/<job id>/) にあ
る相対パスを参照する必要があります。指定したファイルが存在せず、ファイル名に拡張⼦が含まれていない場
合、ファイル名に .csv 拡張⼦がついているものと⾒なされます。
注意: inputcsv でエラーが発⽣する場合は、 .csv ファイルが BLANK LINE で終了しているかどうか確認してく
ださい。
構⽂
inputcsv [dispatch=<bool>] [append=<bool>] [start=<int>] [max=<int>] [events=<bool>] <filename>
[WHERE <search-query>]
必要な引数
filename
構⽂: <filename>
説明: $SPLUNK_HOME/var/run/splunk にある .csv ファイルの名前を指定します。
オプション引数
dispatch
構⽂: dispatch=<bool>
説明: true に設定すると、ファイル名が dispatch ディレクトリにある .csv ファイルであることが⽰されま
す。相対パスは、$SPLUNK_HOME/var/run/splunk/dispatch/<job id>/ です。
デフォルト: false
append
構⽂: append=<bool>
説明: .csv ファイルのデータを現在の結果セットに追加 (true) するか、置換 (false) するかを指定します。
デフォルト: false
events
構⽂: events=<bool>
説明: 適切なタイムラインとフィールドピッカーが表⽰されるように、インポートした結果のイベントとし
ての処理を許可します。
max
構⽂: max=<int>
説明: ファイルから読み込むイベントの最⼤数を指定します。
デフォルト: 1000000000
start
構⽂: start=<int>
説明: 読み込む最初のイベントの、0 ベースのオフセットを指定します。
デフォルト: 0
WHERE
構⽂: WHERE <search-query>
説明: この句を使ってルックアップテーブルから返されたデータを事前にフィルタリングすることで、サー
チのパフォーマンスを改善します。限定的なサーチクエリ演算⼦(=、 !=、<、>、<=、>=、AND、OR、
NOT)に対応します。これらの演算⼦はどのように組み合わせてもかまいません。ワイルドカードによる⽂
字列のサーチにも対応しています。
使⽤⽅法
append
トで
す。
を
に設定すると、.csvファイルからのデータが最新の結果セットに追加されます。appendは、デフォル
に設定されています。この場合、現在の結果セットがルックアップサーチからの結果で置き換えられま
true
false
句を使⽤して、inputlookup がルックアップテーブルに対して⾏うクエリの範囲を限定することができま
す。inputlookup の対象となるルックアップテーブルの⾏数を減らすことで、かなり⼤きな .csv ルックアップテー
ブルの処理でサーチの効率を改善できます。
WHERE
例
例1: CSV ファイル「$SPLUNK_HOME/var/run/splunk/all.csv」から結果を読み込んで、⽂字列「error」を
含む結果を保持し、それをファイル「$SPLUNK_HOME/var/run/splunk/error.csv」に書き込みます。
| inputcsv all.csv | search error | outputcsv errors.csv
例2: ファイル「bar」 (存在する場合) または「bar.csv」のいずれかから 101〜600 イベントを読み込みます。
| inputcsv start=100 max=500 bar
137
例3: CSV ファイル 「$SPLUNK_HOME/var/run/splunk/students.csv」から、年齢が 13 歳以上、19 歳未満
で 16 歳でないデータをイベントに読み込みます。受け取るイベント数を指定します。
| inputcsv students.csv WHERE (age>=13 age<=19) AND NOT age=16 | stats count
関連項⽬
outputcsv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、inputcsv コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
inputlookup
説明
ルックアップコマンドを使って、 .csv または .csv.gz で終わるファイル名で指定されるルックアップテーブルや、
transforms.conf で設定されているルックアップテーブルの内容をサーチします。ルックアップテーブルには、CSV
ルックアップまたは KV ストアルックアップを使⽤できます。
に true を設定すると、ルックアップファイルまたは KV ストアコレクションから現在の結果セットにデー
タが追加されます。appendは、デフォルトで false に設定されています。この場合、現在の結果セットがルック
アップサーチからの結果で置き換えられます。
append
句は、inputlookup がルックアップテーブルに対して⾏うクエリの範囲を狭めることができます。inputlookup
の対象となるルックアップテーブルの⾏数を減らすことで、かなり⼤きな .csv ルックアップテーブルの処理で
サーチの効率を改善できます。
where
フィールドルックアップのテーブル設定の詳細は、『ナレッジ管理』マニュアルの「CSV および外部ルックアッ
プの設定」および「KV ストアルックアップの設定」を参照してください。
App キー バリュー ストアの詳細は、『管理』マニュアルの「KV ストアについて」を参照してください。
構⽂
inputlookup [append=<bool>] [start=<int>] [max=<int>] [<filename> | <tablename>] [where <searchquery>]
必要な引数
<filename>
構⽂: <string>
説明: ルックアップファイルの名前(.csv または .csv.gz で終了する必要があります)です。ルックアップが存
在しない場合は、警告メッセージが表⽰されます (ただし、構⽂エラーは⽣成されません)。
<tablename>
構⽂: <string>
説明: transforms.conf にあるスタンザ名で指定されるルックアップテーブルの名前です。任意のルック
アップタイプ (CSV、外部、または KV ストア) に対してルックアップテーブルを設定できます。
オプション引数
append
構⽂: append=<bool>
説明: true に設定された場合、ルックアップファイルのデータは、現在の結果セットに追加されます (置換
されるのではありません)。デフォルトは false です。
max
構⽂: max=<int>
説明: ファイルから読み込むイベントの最⼤数を指定します。デフォルトは
1000000000
です。
先頭
構⽂: start=<int>
説明: 読み込む最初のイベントの、0 ベースのオフセットを指定します。start=0 の場合、最初のイベントか
ら開始されます。start=4 の場合は、5 番⽬のイベントから開始されます。デフォルトは 0 です。
where
構⽂: where <search-query>
説明: この句により、ルックアップテーブルから返されたデータを前もってフィルターすることで、サーチ
のパフォーマンスを向上します。対応しているサーチクエリ演算⼦は =、 !=、<、>、<=、>=、AND、
OR、NOT に限られます。これらの演算⼦を組み合わせて使⽤できます。ワイルドカードによる⽂字列の
サーチもできます。
例
例1:
transforms.conf
に定義されている
usertogroup
ルックアップテーブルを読み込みます。
138
| inputlookup usertogroup
例2: transforms.conf のスタンザで定義されている
を追加します。
usertogroup
テーブルを読み込みます。現在の結果にフィールド
| inputlookup append=t usertogroup
例3: ($SPLUNK_HOME/etc/system/lookups または
プファイルをサーチします。
$SPLUNK_HOME/etc/apps/<app_name>/lookups
にある)
users.csv
ルックアッ
| inputlookup users.csv
例4: KV ストアコレクションの kvstorecoll の内容のうち、 CustID の値が 500 を上回り、 CustName の値が P で始
まるものをサーチします。コレクションは kvstorecoll_lookup というルックアップテーブルで参照されています。
テーブルから受け取るイベント数を指定します。
| inputlookup kvstorecoll_lookup where (CustID>500) AND (CustName="P*") | stats count
例5: ルックアップテーブル kvstorecoll_lookup を使って、KV ストアコレクションの kvstorecoll の内部キー ID 値
を表⽰します。内部キー ID は、コレクション内の各レコードに対する⼀意の ID です。このためには、eval およ
び table コマンドを使⽤する必要があります。
| inputlookup kvstorecoll_lookup | eval CustKey = _key | table CustKey, CustName, CustStreet, CustCity, CustState,
CustZip
例6: 単⼀の KV ストアコレクションレコードのフィールド値を更新します。これに
は、inputlookup、outputlookup、および eval を使⽤する必要があります。このサーチはレコードをその内部キー ID
(_key フィールド) で指定し、新しい顧客名と顧客の都市名でレコードを更新します。レコードは KV ストアコレ
クション kvstorecoll に所属しており、ルックアップテーブル kvstorecoll_lookup を介してアクセスします。
| inputlookup kvstorecoll_lookup | search _key=544948df3ec32d7a4c1d9755 | eval CustName="Marge Simpson" | eval
CustCity="Springfield" | outputlookup kvstorecoll_lookup append=True
例7: ルックアップテーブル kvstorecoll_lookup を使って、CSV ファイルの内容を KV ストアコレクション
kvstorecoll に書き込みます。このためには、inputlookup および outputlookup の両⽅を使⽤する必要があります。
| inputlookup customers.csv | outputlookup kvstorecoll_lookup
関連項⽬
inputcsv、join、lookup、outputlookup
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、inputlookup コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
iplocation
説明
サードパーティのデータベースを使って、IP アドレスから場所情報を抽出します。IPv4 と IPv6 に対応していま
す。
ip-address-fieldname に指定されている IP アドレスフィールドがデータベースで検索されます。位置フィールド
の情報がイベントに追加されます。フィールドは City、Continent、Country、Region、MetroCode、
Timezone、lat (緯度)、lon (経度) です。すべての IP アドレスですべての情報が利⽤できるとは限らないため、
イベントに空のフィールドが存在することもあります。
内部アドレスなどの位置を持たない IP アドレスの場合、フィールドは追加されません。
構⽂
iplocation [prefix=<string>] [allfields=<bool>] [lang=<string>] <ip-address-fieldname>
必要な引数
ip-address-fieldname
構⽂: <field>
説明: clientip などの、IP アドレスフィールドを指定します。
オプション引数
allfields
構⽂: allfields=<bool>
説明: 真 (True) の場合、フィールド City、Continent、Country、Region、MetroCode、Timezone、lat
139
(緯度)、lon (経度) を追加します。
デフォルト: 偽(false)で、Country、City、Region、lat、lon フィールドのみが追加されます。
lang
構⽂: lang=<string>
説明: 結果の⽂字列を異なる⾔語で表⽰します。たとえば、スペイン語にする場合は「lang=es」と指定し
ます。使⽤する geoip データベースに応じて、使⽤できる⾔語セットは異なります。複数の⾔語を指定する
場合は、それらをカンマで区切ります。ここでは、優先順位が降順で⽰されています。「lang=code」を指
定すると、2⽂字の ISO 略号が戻ります。
prefix
構⽂: prefix=<string>
説明: フィールド名の前に付ける⽂字列を指定します。これにより、追加するフィールド名が既存のフィー
ルド名と競合することを回避できます。
デフォルト : NULL/空の⽂字列
例
例 1:
Web アクセスイベントに場所情報を追加します。
sourcetype=access_* | iplocation clientip
例 2:
Web アクセス内のクライアントエラーをサーチし、場所情報を追加して、各クライアントエラーに対する IP アド
レス、都市および国のテーブルを返します。
sourcetype=access_* status>=400 | head 20 | iplocation clientip | table clientip, status, City, Country
例 3:
追加されたフィールドの先頭に「iploc_」を付けます。
sourcetype = access_* | iplocation prefix=iploc_ allfields=true clientip | fields iploc_*
140
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、iplocation コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
join
説明
コマンドを使って、サブサーチの結果をメインサーチの結果に組み合わせます。それぞれの結果セットには、
1 つ以上の共通するフィールドが必要です。また、selfjoin コマンドを使って結果セット⾃体に組み合わせること
もできます。
join
その他のコマンド
柔軟性やパフォーマンスの⾯から、join コマンドの代わりに別のコマンドを使⽤したほうがよい場合もあります。
Splunk Enterprise は、時間と地域、場所、トランザクション、サブサーチ、フィールドルックアップ、および結
合を使ったイベントのグループ化やイベントの相関をサポートしています。
コマンド
append
使⽤事例
サブサーチの結果を現在のサーチの結果に追加します。ここでは両⽅の結果のイベントが保持され
ます。
履歴データだけで使⽤します。リアルタイムのサーチで使⽤される場合、append コマンドは
正しい結果を⽣成しません。
append を使ってイベントを組み合わせる場合は、<stats> コマンドを活⽤してイベントをグ
ループ化します。 append コマンドを使った後は、transaction コマンドを使⽤できません。
appendcols
サブサーチ の結果フィールドを⼊⼒のサーチ結果フィールドに追加します。最初のサブサーチの結
果は最初のメインサーチの結果に連結され、2 番⽬のサブサーチの結果は 2 番⽬のメインサーチの
結果に連結されます。以降同様にして連結されます。
lookup
この⽅法は、結果セット、またはソースファイルのいずれかが静的である場合、もしくはまれにし
か変更されない場合に使⽤します(外部システムからの CSV ファイルなど)。
ルックアップをサブサーチとすることはできません。
search
もっとも単純なケースでは、OR 演算⼦を使ってソースだけをサーチし、
コマンドを使ってイベントのグループ化が⾏われます。
stats
イベントをフィールドごとにグループ化し、イベントで統計関数を使⽤する場合。たとえば、ホス
ト名ごとにイベントの平均期間を特定する場合。
stats
または
transaction
を使⽤するには、フィールドに⼀意の識別⼦が必要です。
イベントの raw データを表⽰するには、代わりに transaction コマンドを使⽤します。
stats
transaction
transaction
は、以下の状況で使⽤します。
if、case、match
などの条件付きの式とともに eval コマンドを使ってイベントをでグループ化
141
する場合。
イベントを、IDやIPアドレスといったリサイクルフィールドの値を使って分類する場合。
イベントの開始時間や終了時間などのパターンを使ってイベントをグループ化する場合。
⼀定の期間を超えるグループを分離する場合。たとえば、トランザクションがメッセージに
よって明⽰的に終了されず、トランザクション開始からの時間の上限を設定したい場合。
グループ化されたイベントの raw データを表⽰する場合。
join を使⽤するタイミングについては、『サーチ』マニュアルの「イベントのグループ化と相関について」にあ
るフローチャートを参照してください。
構⽂
join [join-options]* <field-list> [ subsearch ]
必要な引数
subsearch
説明: 結合するイベントのソースを指定するセカンダリサーチです。サブサーチの結果が利⽤可能なメモリ容
量を超えないようにしてください。
コマンドのサブサーチに対する制限は、 limits.conf.spec ファイルに指定されます。制限としては、結
合できるサブサーチの最⼤数、サブサーチのサーチ時間の上限、サブサーチが完全に終了するまでの待機最
⼤時間などが挙げられます。サブサーチについては、『サーチ』マニュアルを参照してください。
join
オプション引数
field-list
構⽂: <field>, <field>, ...
説明: join で使⽤するフィールドを指定します。フィールドが指定されない場合、両⽅の結果セットに共通
するすべてのフィールドが使⽤されます。
フィールドの名前は⼤⽂字と⼩⽂字も⼀致しなければなりません。product_id と product_ID は結合できませ
ん。メインサーチのフィールドと⼀致させるには、サブサーチでフィールドの⼤⽂字、⼩⽂字を変更する必
要があります。
join-options
構⽂: type=(inner | outer | left) | usetime=<bool> | earlier=<bool> | overwrite=<bool> | max=<int>
説明: join コマンドのオプション left outer join を指定するには、outer または left のいずれかを使⽤しま
す。
join-op tions 引数の説明
type
構⽂: type=inner | outer | left
説明: 実⾏する結合の種類を指定します。inner とleft (または outer) join の違いは、サブサーチのイベント
と⼀致しないメインサーチのイベントが処理される⽅法です。inner join でも left join でも、⼀致するイベ
ントは結合されます。inner join の結果には、サブサーチで⼀致がないメインサーチのイベントは含まれま
せん。left (または outer) join の結果には、メインサーチのすべてのイベントのほか、⼀致するフィールド
値があるサブサーチでのイベントの値が含まれます。
デフォルト: inner
join に含められるデータの例
usetime
構⽂: usetime=<bool>
説明: サブサーチの結果で、時間によって照合を制限するかどうかを⽰す論理値。earlier オプションととも
に使⽤して、サブサーチの結果をメインサーチの結果よりも前、または後の照合だけに制限します。
デフォルト: true
earlier
構⽂: earlier=<bool>
説明: usetime=true とearlier=true が設定されている場合、メインサーチの結果は、それより前のサブサーチ
の結果だけと照合されます。earlier=false の場合は、メインサーチの結果がそれより後のサブサーチの結果
だけと照合されます。同じ秒に発⽣した結果は、どちらの値でも除外されません。
デフォルト: true
overwrite
142
構⽂: overwrite=<bool>
説明: フィールド名が同じ場合、サブサーチの結果フィールドでメインサーチの結果フィールドを上書きす
るかどうかを⽰します。
デフォルト: true
max
構⽂: max=<int>
説明: 各メインサーチの結果に結合できるサブサーチの結果の最⼤数を指定します。max=0 に設定した場合、
制限はありません。
デフォルト: 1
使⽤⽅法
コマンドは、たとえば 5,000 ⾏以下など、サブサーチの結果が⽐較的⼩さい場合に使⽤します。リソースと
パフォーマンス上の理由から、サブサーチにはいくつかのデフォルトの制限があります。これらの制限について
は、構⽂のサブサーチのセクションを参照してください。
join
例
例 1
メインサーチの結果をサブサーチ search vendors の結果と組み合わせます。結果セットは、両⽅のソースに共通す
る product_id フィールドで結合されます。
... | join product_id [search vendors]
例 2
ソースのフィールド名が⼀致しない場合、サブサーチの結果セットでフィールド名を変更できます。メインサーチ
のフィールドは product_id です。サブサーチのフィールドは pid です。
注意: フィールドの名前は⼤⽂字、⼩⽂字も⼀致しなければなりません。product_id と
ん。
product_ID
は結合できませ
... | join product_id [search vendors | rename pid AS product_id]
例 3
デフォルトでは、メインサーチの⾏に⼀致するサブサーチの最初の⾏のみが返されます。⼀致したすべてのサブ
サーチの⾏を返すには、max=<int> オプションで値を 0 に設定します。このオプションでは、⼀致するサブサーチ
の⾏とそれに対応するメインサーチの⾏が結合されます。
... | join product_id max=0 [search vendors]
例 4
分散管理コンソールのダッシュボードとアラートには、Splunk Enterprise のデプロイに関するパフォーマンス情
報が表⽰されます。リソースの利⽤:インスタンスのダッシュボードにはマシン、コア数、物理メモリ容量、
OS、CPUのアーキテクチャを⽰す表があります。
テーブルに情報を表⽰するには、join を含む以下のサーチを使⽤します。サーチでは dmc_assets テーブルの情
報を使⽤して、インスタンス名とマシン名が検索されます。次に、serverName フィールドを使い、情報を
/services/server/info REST エンドポイントからの情報と結合します。/services/server/info は Splunk REST API
エンドポイントへの URI パスで、マシンのハードウエアや OS に関する情報が提供されます。サーチの
$splunk_server$ 部分は、トークン変数です。
| inputlookup dmc_assets
| search serverName = $splunk_server$
| stats first(serverName) as serverName, first(host) as host, first(machine) as machine
| join type=left serverName
[
| rest splunk_server=$splunk_server$ /services/server/info
| fields serverName, numberOfCores, physicalMemoryMB, os_name, cpu_arch
]
| fields machine numberOfCores physicalMemoryMB os_name cpu_arch
| rename machine AS Machine, numberOfCores AS "Number of Cores", physicalMemoryMB AS "Physical Memory Capacity
(MB)", os_name AS"Operating System", cpu_arch AS "CPU Architecture"
関連項⽬
selfjoin、append、set、appendcols
143
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、join コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
kmeans
説明
選択フィールド (空の場合はすべての数値フィールド) に K-Means クラスタリングを実施します。同じクラスタ
内のイベントが隣同⼠になるように移動されます。必要に応じて、各イベントのクラスタ番号を表⽰できます。
制限事項
値を収集するクラスタ数 k に、limits.conf の [kmeans] スタンザに指定されている maxkvalue を超える値を指
定することはできません。デフォルトは 1000 です。
オプションに範囲が指定されている場合、クラスタカウントの始めと終わりの距離の合計は、[kmeans] スタン
ザの limits.conf に指定されている maxkrange を超えることはできません。デフォルトは 100 です。
k
上記の制限は、計算処理のコストが不合理に⾼くなることを回避する⽬的で設定されています。
アルゴリズムによってクラスタ化される値の合計 (通常は⼊⼒結果数) はlimits.conf の [kmeans] スタンザにある
maxdatapoints パラメータにより制限されます。実⾏時にこの制限を超えた場合、Splunk Web に警告メッセージ
が表⽰されます。この制限のデフォルト値は 100000000 です。maxdatapoints の制限は、メモリの⼤幅な消費を
避けるために設定されています。
構⽂
kmeans [kmeans-options]* <field-list>
必要な引数
field-list
構⽂: <field>, ...
説明: join で使⽤する抽出フィールドを指定します。何も指定されていない場合、両⽅の結果セットに共通
のすべての数値フィールドが使⽤されます。数値以外のフィールドをもつイベントはスキップされます。
オプション引数
kmeans-options
構⽂: <reps> | <iters> | <t> | <k> | <cnumfield> | <distype> | <showcentroid>
説明: kmeans コマンドのオプションです。
kmeans オプションの説明
reps
構⽂: reps=<int>
説明: 無作為の起動クラスタを使って、kmeans を繰り返す回数を指定します。
デフォルト: 10
iters
構⽂: maxiters=<int>
説明: 収束の失敗までに許可されている最⼤反復数を指定します。
デフォルト: 10000
t
構⽂: t=<num>
説明: アルゴリズム収束許容範囲を指定します。
デフォルト: 0
k
構⽂: k=<int> | <int>-<int>
説明: スカラー整数の値や整数の範囲として指定します。単⼀の数字として指定した場合、使⽤するクラス
タ数を⽰します。これにより、クラスタラベルを付加したイベントが⽣成されます。範囲を指定した場合、
範囲内の各 clustercounts に対してクラスタ化が⾏われ、結果のサマリーが⽣成されます。これらの結果は
クラスタのサイズを表しています。また、distortion フィールドは、データがそれらの選択されたクラスタ
にどのくらい適合しているのかを表します。値は 1 より⼤きく、maxkvalue 未満でなければなりません
(「制限事項」を参照)。
デフォルト: k=2
cnumfield
構⽂: cfield=<field>
説明: 各イベントのクラスタ番号で結果に注釈を付けるフィールド名を指定します。
デフォルト: CLUSTERNUM
distype
構⽂: dt= ( l1 | l1norm | cityblock | cb ) | ( l2 | l2norm | sq | sqeuclidean ) | ( cos | cosine )
説明: 距離測定基準を指定します。l1, l1norm, and cbは cityblock の同義語です。l2, l2norm, and
144
sqは
の同義語です。cosは
デフォルト: sqeucildean
sqeuclidean
cosine
の同義語です。
showcentroid
構⽂: showcentroid= true | false
説明: サーチ結果にセントロイドを表⽰するかどうかを指定します。
デフォルト: 真 (True)
例
例1: 「date_hour」と「date_minute」のフィールドの値に基づいて、サーチ結果を 4 つのクラスタにグループ
化する。
... | kmeans k=4 date_hour date_minute
例2: 数値フィールドの値に基づいて、結果を 2 つのクラスタにグループ化する。
... | kmeans
関連項⽬
anomalies、anomalousvalue、cluster、outlier
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、kmeans コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
kvform
説明
値の抽出⽅法を記述したフォームテンプレートに基づいて、イベントからキー/値のペアを抽出します。form を指
定した場合、Splunk 設定フォームディレクトリ内に⾒つかった、インストールされた form.form ファイルを使
⽤します。たとえば、form=sales_order の場合、すべての App に対して $PLUNK_HOME/etc/apps/<app_name>/forms 内の
sales_order.form ファイルが検索されます。処理されるすべてのイベントが、このフォームと照合され、値の抽出
が試⾏されます。
FORM を指定しない場合、field の値により抽出されるフィールド名が判断されます。たとえば、field=error_code
の場合、error_code=404 があるイベントが 404.form ファイルに対して照合されます。
field のデフォルト値は sourcetype で、kvform コマンドはデフォルトで、値を抽出するために
SOURCETYPE.form ファイルを検索します。
基本的に .form ファイルは、フォームのすべての静的部分のテキストファイルです。また、transforms.conf にあ
るタイプの正規表現に対して、各所から名前付き参照が⾏われる場合もあります。.form ファイルの例を以下に⽰
します。
Students Name: [[string:student_name]]
Age: [[int:age]] Zip: [[int:zip]]
構⽂
kvform [form=<string>] [field=<field>]
オプション引数
form
構⽂: form=<string>
説明: $SPLUNK_HOME/etc/apps/*/forms/ ディレクトリにある .formファイルを指定します。
field
構⽂: <field>
説明: 抽出するフィールドの名前
デフォルト: sourcetype
例
例1: ファイルが存在する場合、「eventtype.form」から値を抽出する。
... | kvform field=eventtype
関連項⽬
extract、multikv、rex、xmlkv
145
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、kvform コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
loadjob
説明
前に完了したサーチジョブのイベントまたは結果を読み込みます。読み込む成果物は、サーチジョブ ID またはス
ケジュール済みサーチ名および現在のサーチの時間範囲で判断されます。savedsearch が指定されており、その
範囲内に複数の成果物が存在している場合は、最新の成果物が読み込まれます。
サーチヘッドクラスタは、保存済みサーチに対してのみ loadjob コマンドを実⾏できます。サーチヘッドクラスタ
は複製した結果や成果物に対してサーチを実⾏します。リアルタイムサーチまたはアドホックサーチでは、loadjob
コマンドを実⾏できません。成果物の複製についての詳細は、『分散サーチ』マニュアルの「サーチヘッドクラス
タリングのアーキテクチャ」を参照してください。
構⽂
loadjob (<sid>|<savedsearch-opt>) [<result-event>] [<delegate>] [<artifact-offset>] [<ignore-running>]
必要な引数
sid
構⽂: <string>
説明: 成果物を読み込むジョブのサーチ ID。例:
1233886270.2
savedsearch
構⽂: savedsearch="<user-string>:<app-string>:<search-name-string>"
説明: 成果物がロードされる必要のある savedsearch の⼀意の識別⼦。savedsearch はたとえば、
savedsearch="admin:search:my Saved Search" など、 {user, app, savedsearch name} トリプレットにより⼀意
に識別されます。ワイルドカードまたはすべて⼀致を指定する⽅法はありません。トリプレットの構成要素
をすべて指定する必要があります。
オプション引数
result-event
構⽂: events=<bool>
説明: events=true はイベントをロードし、
デフォルト: false
events=false
は結果をロードします。
delegate
構⽂: job_delegate=<string>
説明: savedsearch を指定した場合、このオプションで特定のユーザーが開始したジョブを選択できます。
スケジュールされたジョブは、スケジューラにより実⾏されます。ダッシュボード埋め込みサーチは、
savedsearch の dispatchAs パラメータで実⾏されます (⼀般的にはサーチの所有者)。
デフォルト: scheduler
artifact-offset
構⽂: artifact_offset=<int>
説明: ⼀致する最新の結果以外の、過去のサーチ結果を選択します。たとえば、artifact_offset=1 の場合、2
番⽬に新しい過去のサーチ結果が使⽤されます。artifact_offset=2 の場合、3 番⽬に新しい過去のサーチ結
果が使⽤されます。artifact_offset=0 の場合は、最新のものを選択します。利⽤可能なすべての過去のサー
チ結果を選択する値を指定すると、エラーになります。
デフォルト: 0
ignore_running
構⽂: ignore_running=<bool>
説明: まだ実⾏中のサーチの過去のサーチ結果はスキップされます。
デフォルト: 真 (True)
使⽤⽅法
コマンドはいろいろな⽬的で使⽤します。役⽴つ例としては、統計情報を算出する⽐較的コストの⾼い
サーチを実⾏して、それらの統計情報を|loadjob サーチでさらに集計、分類、フィールド選択、および他の操作を
⾏ってさまざまなグラフや形式で表⽰することが挙げられます。
load job
サーチジョブが完了し、結果がキャッシュされたら、このコマンドを使って結果にアクセスまたはロードすること
ができます。
例
例 1: 管理者が保有する「search」アプリケーション内の、保存済みサーチ MySavedSearch の、最新のスケ
ジュールされた実⾏結果を読み込みます。
| loadjob savedsearch="admin:search:MySavedSearch"
例 2: ID が 1233886270.2 のサーチジョブが⽣成したイベントを読み込みます。
146
| loadjob 1233886270.2 events=true
関連項⽬
inputcsv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、loadjob コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
localize
説明
サーチ結果が⾒つかった時間範囲のリストを返します。
時間的に連続したイベント領域を⽰す結果を⽣成します。これは、最⾼ maxpause で分かれている、連続するイ
ベントの期間として定義されます。⾒つかった領域は「timeafter」および「timebefore」で拡張できます。これ
らのオプションを使⽤すると、領域内の最後/最初のイベントを後へ/前へ拡張して、領域を拡張することができま
す。この拡張は任意に⾏われ、「maxpause」 を超えた場合は領域内で重複が発⽣する恐れがあります。領域は
サーチの順番に返されます。また、履歴サーチでは時間の降順、リアルタイムサーチではデータの到着順となりま
す。各領域の時間は、初期の拡張前の開始時刻です。localize コマンドが対応しない領域は、map コマンドへ
フィードされます。このコマンドは各反復で異なる領域を使⽤します。Localize コマンドでは、(a) 範囲内のイベ
ント数、(b) 範囲の期間 (秒)、(c) (範囲内のイベント数) / (範囲の期間) - 秒当たりのイベント数で定義される領域
密度なども報告されます。
構⽂
localize [<maxpause>] [<timeafter>] [<timebefore>]
オプション引数
maxpause
構⽂: maxpause=<int>(s|m|h|d)
説明: 連続する時間領域内の 2 つの連続するイベント間の最⼤時間 (包含)を指定します。
デフォルト: 1m
timeafter
構⽂: timeafter=<int>(s|m|h|d)
説明: 出⼒の endtime フィールドに追加する時間 (時間領域を時間の前⽅向に拡張) を指定します。
デフォルト: 30s
timebefore
構⽂: timebefore=<int>(s|m|h|d)
説明: 出⼒の starttime フィールドから差し引く時間を指定します (時間領域を時間の後⽅向に拡張)。
デフォルト: 30s
例
例 1:
前の結果の時間範囲に対して「failure」をサーチします。
... | localize maxpause=5m | map search="search failure starttimeu=$starttime$ endtimeu=$endtime$"
例 2:
「error」をサーチした後に、localize コマンドを呼び出して、エラーの発⽣に適切な領域を⾒つけ、これらを map
コマンド内のサーチに渡します。潜在するトランザクションを発⾒するため、各反復は特定の時間範囲で⾏われま
す。
error | localize | map search="search starttimeu::$starttime$ endtimeu::$endtime$ |transaction uid,qid maxspan=1h"
関連項⽬
map、transaction
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、localize コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
localop
説明
147
リモートピア上での後続のコマンドの実⾏を阻⽌します。ここでは、後続のコマンドをローカルで実⾏するよう
サーチで指定します。
localop
コマンドは、後続のコマンドが mapreduce プロセスの reduce ステップの⼀部となるように強制しま
す。
構⽂
localop
例
例 1:
この例では、iplocation コマンドがリモートピアで実⾏されることはありません。単語 FOO と BAR に対する初
期サーチで発⽣するリモートピアからのすべてのイベントは、サーチヘッドに転送されます。サーチヘッドは
iplocation が実⾏される場所にあります。
FOO BAR | localop | iplocation
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、localop コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
lookup
説明
コマンドを使ってフィールド値のルックアップを実⾏します。このコマンドは、ルックアップが
props.conf または transforms.conf に定義されていなくても使⽤できるものの、参照するルックアップテーブル
を Splunk Enterprise にアップロードする必要があります。
lookup
このコマンドを使⽤して、 transforms.conf にあるルックアップ定義を⼿動で起動することもできます。⾃動ルッ
クアップが props.conf ファイルに設定されている場合、 lookup コマンドはこれらの設定を使⽤しません。詳細
は、『ナレッジ管理』マニュアルの「CSV および外部ルックアップの設定」および「KV ストアルックアップの
設定」を参照してください。
構⽂
lookup [local=<bool>] [update=<bool>] <lookup-table-name> ( <lookup-field> [AS <event-field>] ) [(
OUTPUT | OUTPUTNEW <lookup-destfield> [AS <event-destfield>] )]
注意: lookup コマンドは、複数のルックアップのほか、イベントの
fields
や
destfields
を受け付けます。例:
lookup <lookup-table-name> <lookup-field1> AS <event-field1>, <lookup-field2> AS <event-field2>
OUTPUTNEW <lookup-destfield1> AS <event-destfield1>, <lookup-destfield2> AS <event-destfield2>
必要な引数
<lookup-table-name>
構⽂: <string>
説明: transforms.conf ファイルのスタンザ名を参照します。このスタンザは、ルックアップテーブルファイ
ルの場所を⽰します。
オプション引数
local
構⽂: local=<bool>
説明: local=true の場合、リモートピアではなく、サーチヘッド上でのルックアップが強制されます。
update
構⽂: update=<bool>
説明: サーチの実⾏中にディスク上のルックアップテーブルが変更された場合、リアルタイムサーチにその
変更内容が⾃動的に反映されることはありません。反映させるには、update=true を指定します。これは、⾮
リアルタイムサーチには適⽤されません。これでは、暗黙的に local=true を意味しています。
デフォルト: false
<lookup-field>
構⽂: <string>
説明: イベントと照合する、ルックアップテーブル内のフィールドを参照します。複数の <lookup-field> 値
を指定できます。
<event-field>
構⽂: <string>
説明: ルックアップテーブルでの照合のための値を取得するイベントのフィールドを参照します。複数の
<event-field> 値を指定できます。
148
説明: <lookup-field>の値
<lookup-destfield>
構⽂: <string>
説明: イベントにコピーするルックアップテーブルのフィールドを参照します。複数の <lookup-destfield>
値を指定できます。
<event-destfield>
構⽂: <string>
説明: イベントのフィールド複数の <event-destfield> 値を指定できます。
説明: <lookup-field>引数の値
使⽤⽅法
コマンドを使⽤する場合、OUTPUT または OUTPUTNEW 句を指定しないと、ルックアップテーブル内の
⼀致フィールドではないすべてのフィールドが出⼒フィールドとして使⽤されます。OUTPUT 句を指定した場
合、出⼒ルックアップフィールドが既存のフィールドを上書きします。OUTPUTNEW 句を指定した場合、出⼒
フィールドがすでに存在しているイベントへのルックアップは実⾏されません。
lookup
例
例 1:
には、スタンザ名が「usertogroup」のルックアップテーブルが指定されています。このルックアッ
プテーブルには、最低でも 2 つのフィールド「user」および「group」が存在しています。各イベントに対して、
テーブル内のフィールド「local_user」の値をルックアップし、⼀致した任意の項⽬に対して、ルックアップテー
ブル内の group フィールドの値が、イベント内の user_group フィールドに書き込まれます。
transforms.conf
... | lookup usertogroup user as local_user OUTPUT group as user_group
ルックアップサーチの最適化
コマンドを transforming コマンド と同じパイプラインで使⽤する場合、変換コマンドの後までルック
アップ対象フィールドを保持できるならば、変換コマンドの後にルックアップを⾏ってください。以下に例を⽰し
ます。
lookup
sourcetype=access_* | stats count by status | lookup status_desc status OUTPUT description
以下のようには指定しないでください。
sourcetype=access_* | lookup status_desc status OUTPUT description | stats count by description
最初のサーチのルックアップでは、すべての Web アクセスイベントではなく、stats コマンドの結果のみを照合
すればよいので、処理が⾼速に⾏われます。
関連項⽬
appendcols、inputlookup、outputlookup
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、lookup コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
makecontinuous
説明
データのない期間に空のバケツを追加し、データのある期間を量⼦化することで、X 軸のフィールドを数値的に連
続させます。この X 軸のフィールドは、 chart と timechart コマンドで起動できます。
構⽂
makecontinuous [<field>] <bucketing-option>*
必要な引数
<bucketing-option>
データタイプ: bins | span | start-end
説明: 離散化オプション。詳細は、「Bucketing のオプション」を参照してください。
オプション引数
<field>
データタイプ: <field>
説明: フィールド名を指定します。
149
Bucketing のオプション
bins
構⽂: bins=<int>
説明: 離散化処理でのビンの最⼤数。
span
構⽂: <log-span> | <span-length>
説明: 時間または対数ベースの期間に基づく期間⻑を使って、各バケツのサイズを設定します。
<start-end>
構⽂: end=<num> | start=<num>
説明: 数値バケツの最⼩/最⼤範囲を設定します。[start, end] の範囲外のデータは破棄されます。
L og-sp a n 構⽂
<log-span>
構⽂: [<num>]log[<num>]
説明: 対数に基づくスパンを設定します。最初の数値は係数です。2 番⽬の数値が底です。最初の数値を指
定する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなけれ
ばなりません (厳密に 1 より⼤きい)。
sp a n-length 構⽂
span-length
構⽂: <span>[<timescale>]
説明: 時間上のスパンの幅。
<span>
構⽂: <int>
説明: 各ビンのスパン。タイムスケールを使⽤する場合、これは時間範囲として使⽤されます。使⽤しない
場合、これは絶対バケツ「length」になります。
<timescale>
構⽂: <sec> | <min> | <hr> | <day> | <month> | <subseconds>
説明: タイムスケールの単位
<sec>
構⽂: s | sec | secs | second | seconds
説明: タイムスケール (秒)
<min>
構⽂: m | min | mins | minute | minutes
説明: タイムスケール (分)
<hr>
構⽂: h | hr | hrs | hour | hours
説明: タイムスケール (時)
<day>
構⽂: d | day | days
説明: タイムスケール (⽇)
<month>
構⽂: mon | month | months
説明: タイムスケール (⽉)
<subseconds>
構⽂: us | ms | cs | ds
説明: タイムスケール (マイクロ秒 (us)、 ミリ秒 (ms)、 10ミリ秒 (cs)、 100ミリ秒 (ds))
例
例 1:
10 分の期間で、「_time」を連続にします。
... | makecontinuous _time span=10m
関連項⽬
chart、timechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、makecontinuous コマ
ンドの使⽤⽅法に関する質問と回答をご覧いただけます。
makemv
150
説明
単純な区切り⽂字で分割することで、単⼀値フィールドを複数値フィールドに変換します。複数の⽂字で構成され
た区切り⽂字列も使⽤できます。また、 regex でもフィールドを分割できます。
構⽂
makemv [delim=<string>|tokenizer=<string>] [allowempty=<bool>] [setsv=<bool>] <field>
必要な引数
field
構⽂: <field>
説明: フィールドの名前を指定します。
オプション引数
delim
構⽂: delim=<string>
説明: この⽂字列が現れる度に field を分割します。
Default: 1 つのスペースです。
tokenizer
構⽂: tokenizer=<string>
説明: field のテキストに対して繰り返し照合される、捕捉グループ付きの regex です。各⼀致に対して、最
初に取得されたグループが、新たに作成される複数値フィールドの値として使⽤されます。
allowempty
構⽂: allowempty=<bool>
説明: 複数値フィールド内で空⽂字列値を許可します。つまり、delim 引数を使⽤すると、delim ⽂字列の
反復によって空⽂字列の値が発⽣します。例: delim=","、field="a,,b" デフォルトではどの値も発⽣しま
す。tokenizer 引数を使⽤すると、⻑さゼロの⼀致によって空⽂字列が発⽣します。デフォルトではどの値
も発⽣しません。
デフォルト: false
setsv
構⽂: setsv=<bool>
Description: 真(true)の場合、 makemv コマンドは決定されたフィールドの値を同じフィールドに設定さ
れる単⼀の値に組み合わせます(複数値と単⼀値が同じフィールドに同時に存在すると、Splunk
Enterprise の内部設計としてはかなり扱いにくい動作となります。このフラグは無視してください)。
デフォルト: false
例
例 1:
sendmail のサーチ結果に対して、「senders」の値を複数の値に分離します。上位の値を表⽰します。
eventtype="sendmail" | makemv delim="," senders | top senders
例 2:
「foo」の値を、複数の値に分離します。
... | makemv delim=":" allowempty=true foo
関連項⽬
mvcombine、mvexpand、nomv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、makemv コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
makeresults
説明
指定された数の空のサーチ結果を⽣成します。デフォルトでは、このコマンドはローカルマシンで実⾏され、注釈
のない空の結果が⽣成されます。eval コマンド と⼀緒に使⽤して、eval コマンドを実⾏するための空の結果を⽣
成します。
注意: サーチが eval コマンドで始まる場合、結果は返されません。makeresults はこれらのサーチの先頭に暗黙
的に挿⼊されます。
構⽂
151
makeresults [<count>] [<annotate>] [<splunk-server>] [<splunk-server-group>]
オプション引数
<count>
構⽂: count=<num>
説明: ⽣成する空の結果の数
<annotate>
構⽂: annotate=<bool>
説明: 真(true) に設定すると、splunk_server、splunk_server_group、_time のフィールドを持つ結果を⽣成し
ます。これらのフィールドは集計統計の計算に使⽤できます。順序に影響を受けるプロセッサは、内部の
_time フィールドがないと実⾏されません。
デフォルト: false
<splunk-server>
構⽂: splunk_server=<string>
説明: 結果を 1 つの特定のサーバーに限定するかどうかを選択します。サーチヘッドを参照するには
を使⽤します。
local
<splunk-server-group>
構⽂: splunk_server_group=<string>
説明: 結果を 1 つの特定のサーバーグループに限定するかどうかを選択します。
例
例 1:
makeresults | eval newfield="avalue"
例 2:
index=_internal _indextime > [makeresults | eval it=now()-60 | return $it]
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、makeresults コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
map
説明
コマンドは、各⼊⼒イベントや結果に対し、サーチを繰り返し実⾏するループ演算⼦です。保存済みサーチ、
現在のサーチ、またはサブサーチで map コマンドを実⾏できます。
map
サブサーチの詳細は、以下の項⽬を参照してください。
『サーチ』マニュアルの「サブサーチについて」を参照してください。
『サーチ』マニュアルの「サーチコマンドの使⽤⽅法」を参照してください。
構⽂
map (<searchoption>|<savedsplunkoption>) [maxsearches=int]
必要な引数
<savedsplunkoption>
構⽂: <string>
説明: 各⼊⼒結果に対して実⾏する保存済みサーチ名
デフォルト: なし
<searchoption>
構⽂: [ <subsearch> ] | search="<string>"
説明: 各⼊⼒結果に対して実⾏するリテラルサーチ例:
source="$source$"].
デフォルト: なし
[search starttimeu::$start$ endtimeu::$end$
オプション引数
maxsearches
構⽂: maxsearches=<int>
説明: 実⾏するサーチの最⼤数。これ以上のサーチ結果がある場合、メッセージが⽣成されます。
デフォルト: 10
152
使⽤⽅法
savedsearchに、または search="string" を使⽤する場合、map コマンドでは⼊⼒結果内のフィールド名と照合す
る $variable$ ⽂字列を代⼊することができます。たとえば $count$ などの⽂字列を持つサーチは、⼊⼒サーチ
結果内の count フィールドの値でその⽂字列が置換されます。
は、$_serial_id$ として提供されるサーチ ID フィールドもサポートしています。これには、各サーチ実⾏時
に増加する数字が含まれます。つまり、最初に実⾏されるサーチの場合値は 1、2 番⽬のサーチは 2 などのよう
になります。
map
map コマンドの [subsearch] 形式は、$variable$ の代⼊をサポートしていません。
サブサーチのパーシングに失敗した場合、map コマンドは有益なエラー・メッセージを表⽰しないことに注意し
てください。トラブルシューティングのためには、⽬的のサーチ⽂字列を⼿作業で作成し、それを直接実⾏してく
ださい。
例
例1: 保存済みサーチで map コマンドを起動します。
error | localize | map mytimebased_savedsearch
例2: 開始/終了時間値をマップします。
... | map search="search starttimeu::$start$ endtimeu::$end$" maxsearches=10
例3: この例では、sudo イベントを検索し、次に map コマンドを使って sudo イベントの前にログオンしたユー
ザーのコンピュータと時間をトレースします。まず、sudo イベントを検索する以下のサーチを実⾏します。
sourcetype=syslog sudo | stats count by user host
以下のような結果テーブルが返されます。
ユーザー
ホスト
カウント
userA
serverA 1
userB
serverA 3
userA
serverB 2
これらの結果を map コマンドに渡す際に、ユーザー名を代⼊します。
sourcetype=syslog sudo | stats count by user host | map search="search index=ad_summary username=$user$
type_logon=ad_last_logon"
前のサーチからの 3 件の結果を受け取って、ad_summary インデックスのユーザーログオンイベントをサーチしま
す。以下のような結果テーブルが返されます。
_time
10/12/12 8:31:35.00
AM
computername
Workstation$
computertime
10/12/2012 8:25:42
AM
username
userA
usertime
10/12/2012 08:31:35
AM
(この例を提供した Alacercogitatus さんに感謝の意を表明します。)
関連項⽬
gentimes、search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、map コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
metadata
説明
コマンドは、指定したインデックスまたは分散サーチピアから、ソース、ソースタイプ、またはホストの
リストを返します。metadata コマンドは、時間ごとに蓄積した情報を返します。たとえば、過去 7 ⽇間などの特定
の期間のインデックスのスナップショットを閲覧できます。
metadata
ここでは、指定した metadata タイプのすべての値で特定された、最初のイベント、最後のイベント、最新のイベ
ントが表⽰されます。たとえば、以下のサーチを実⾏すると:
| metadata type=hosts
結果はこのようになります:
153
firstTime
フィールドは、インデクサーがこのホストからのイベントを初めて発⾒した時刻のタイムスタンプ
です。
lastTime
フィールドは、インデクサーがこのホストからのイベントを最後に発⾒した時刻のタイムスタンプ
です。
フィールドは、このホストでインデクサーが発⾒した最新の indextime です。つまり、これは最後
に更新された時刻です。
totalcount フィールドは、このホストからのイベント数の合計です。
type フィールドは、指定された表⽰するメタデータのタイプです。このサーチは type=hosts を指定している
ため、host 列も存在しています。
recentTime
たいていの場合、データがライブストリーム配信されている時には、 lastTime と
じです。ただし、履歴データの場合は、これらの値が異なる可能性があります。
recentTime
フィールドの値は同
⼩規模なテスト環境では、データは完全です。ただし、カテゴリ値の値数が⼤きい⼤規模環境では、データが不完
全になることもあります。これは、metadata コマンドが妥当な時間とメモリー使⽤量で実⾏されるように、意図的
に⾏われています。
構⽂
metadata type=<metadata-type> [<index-specifier>] [<server-specifier>]
必要な引数
type
構⽂: type= hosts | sources | sourcetypes
説明: 返すメタデータのタイプを指定します。これは、リテラル⽂字列 host、source、または sourcetype
のいずれかになります。
オプション引数
index-specifier
構⽂: index=<index_name>
説明: 結果を返すインデックスを指定します。ワイルドカード (*) を使⽤できます。index=* は、内部イン
デックス以外のインデックスに⼀致します。index=_* は内部インデックスに⼀致します。
デフォルト: デフォルトインデックス(通常は main )
server-specifier
構⽂: splunk_server=<string>
説明: 結果を返す分散サーチピアを指定します。使⽤する場合、1 つの
デフォルト: 設定されているすべてのサーチピアが情報を返します。
splunk_server
のみを指定できます。
例
1.「_internal」インデックス内のイベントの「sourcetypes」の値を返します
| metadata type=sourcetypes index=_internal
これによって、以下のレポートが返されます。
2.metadata コマンドの結果を読みやすくフォーマットします
fieldformat コマンドを使って、firstTime、lastTime、recentTime の結果をフォーマットできます。
154
| metadata type=sourcetypes index=_internal | rename totalCount as Count firstTime as "First Event" lastTime as
"Last Event" recentTime as "Last Update" | fieldformat Count=tostring(Count, "commas") | fieldformat "First
Event"=strftime('First Event', "%c") | fieldformat "Last Event"=strftime('Last Event', "%c") | fieldformat "Last
Update"=strftime('Last Update', "%c")
これで、結果がより把握しやすくなりました。
3.特定のサーバーの、特定のインデックス内にあるイベントの 「sourcetypes」の値を返します
サーバー foo の「_audit」インデックス内のイベントの、sourcetype の値を返します。
| metadata type=sourcetypes index=_audit splunk_server=foo
関連項⽬
dbinspect
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、metadata コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
metasearch
説明
<logical-expression>の単語に基づいて、インデックスからイベントの metadata を取得します。Metadata フィール
ドには source、sourcetype、host, _time、index、splunk_server が含まれます。
構⽂
metasearch [<logical-expression>]
オプション引数
<logical-expression>
構⽂: <time-opts>|<search-modifier>|((NOT)?<logical-expression>)|<index-expression>|<comparisonexpression>|(<logical-expression> (OR)?<logical-expression>)
説明: 時間、サーチ修飾⼦、⽐較式、インデックス式が含まれます。
論理式
<comparison-expression>
構⽂: <field><cmp><value>
説明: フィールドをリテラル値または他のフィールド値と⽐較します。
<index-expression>
構⽂: "<string>"|<term>|<search-modifier>
<time-opts>
構⽂: (<timeformat>)?(<time-modifier>)*
⽐較式
<cmp>
構⽂: = | != | < | <= | > | >=
説明: ⽐較演算⼦
<field>
155
構⽂: <string>
説明: フィールド名です。metasearch では、source、sourcetype、host, _time、index、splunk_server
フィールドだけを使⽤できます。
<lit-value>
構⽂: <string> | <num>
説明: ⽐較式で使⽤するフィールドの厳密値またはリテラル値
<value>
構⽂: <lit-value> | <field>
説明: comparison-expression でのフィールドのリテラル値、または、他のフィールドの名前(リテラル値
は数字、または⽂字列)
インデックス式
<search-modifier>
構⽂: <field-specifier>|<savedsplunk-specifier>|<tag-specifier>
時間オプション
時間に関連するサーチのため、柔軟性あるオプションが多く⽤意されています。時間修飾⼦の⼀覧については、
『サーチ 』マニュアルの「サーチの時間修飾⼦」を参照してください。
<timeformat>
構⽂: timeformat=<string>
説明: starttime、endtime のフォーマットを指定します。デフォルトでは、タイムスタンプのフォーマット
は timeformat=%m/%d/%Y:%H:%M:%S です。
<time-modifier>
構⽂: earliest=<time_modifier> | latest=<time_modifier>
説明: 相対または絶対時間を使って、開始/終了時間を指定します。時間修飾⼦インデックスについては、
『サーチ 』マニュアルの「サーチへの時間修飾⼦の指定」を参照してください。
例
例 1:
ホスト「webserver1」からの「404」を持つイベントのメタデータを返します
... | metasearch 404 host="webserver1"
関連項⽬
metadata、search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、metasearch コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
multikv
説明
top、netstat、ps の結果など、テーブルでフォーマットされたイベントからフィールド値を抽出します。multikv
コマンドにより、各テーブル⾏に対して新しいイベントが作成され、テーブルのタイトル⾏からフィールド名が割
り当てられます。
multikv で処理できるようになっている、この種類のデータの例を次に⽰します。
Name
Age
Occupation
Josh
42
SoftwareEngineer
Francine 35
CEO
Samantha 22
ProjectManager
ここで主な特徴は:
テキストの各⾏が概念的レコードを表している。
列が揃っている。
テキストの最初の⾏が、列内のデータ名を表している。
multikv では、このテーブルを 1 つのイベントから、関連フィールドを持つ 3 つのイベントに変換することがで
きます。固定揃えの⽅が簡単に処理できますが、単に順番に並んでいるフィールドでも処理できることがありま
す。
⼀般的な⽅針としては、ヘッダー、オフセット、およびフィールド数を判別し、次に後続の⾏のどのコンポーネン
トをそれらのフィールド名に含めるかを決定します。単位単⼀イベント内の複数のテーブルを処理できます
(multitable=true の場合)。ただし、2 番⽬のテーブルのヘッダー⾏は⼤⽂字にする、または ALLCAPS 名にする
必要があります。
156
ヘッダー⾏の⾃動検出はテキスト⾏、および ALLCAPS 処理またはすべて⼤⽂字になっている場合に正常に機能
します。
構⽂
multikv [conf=<stanza_name>] [<multikv-option>]*
オプション引数
conf
構⽂: conf=<stanza_name>
説明: multikv.conf にフィールド抽出を定義した場合、サーチ内でこの引数を使ってスタンザを参照します。
詳細は、『管理』マニュアルの「設定ファイルリファレンス」に記載されている multikv.conf の説明を参照
してください。
<multikv-option>
Syntax: copyattrs=<bool> | fields <field-list> | filter <field-list> | forceheader=<int> |
multitable=<bool> | noheader=<bool> | rmorig=<bool>
説明: 表イベントからフィールドを抽出するオプションです。
multikv オプションの説明
copyattrs
構⽂: copyattrs=<bool>
説明: 真 (True) の場合、multikv はオリジナルのイベントからすべてのフィールドを、そのイベントから⽣成
されたイベントにコピーします。偽 (False) の場合、オリジナルのイベントからフィールドはコピーされま
せん。この場合、イベントには _time フィールドがないため、UI にそれを表⽰する⽅法はありません。
デフォルト: 真 (True)
fields
構⽂: fields <field-list>
説明: multikv 抽出が設定するフィールドをこのリストに制限します。リストにないテーブル内のフィール
ドは無視されます。
フィルタ
構⽂: filter <term-list>
説明: 指定した場合、multikv は最低でもフィルタ・リスト内のいずれかの⽂字列を含まないテーブル⾏を
スキップします。"multiple words" や "trailing_space " などのように、引⽤符で囲んだ式を指定できます。
forceheader
構⽂: forceheader=<int>
説明: テーブルヘッダーの⾏番号(最初の⾏を1とする数え⽅による番号)を強制的に指定した値に設定しま
す。 空⾏はカウントされません。デフォルトで multikv は、ヘッダー⾏を⾃動的に決定しようと試みます。
multitable
構⽂: multitable=<bool>
説明: 元のイベントの単⼀の single _raw 内に、複数のテーブルを⼊れることができるかどうかを指定しま
す。
デフォルト: 真 (True)
noheader
構⽂: noheader=<bool>
説明: ヘッダー⾏識別なしでテーブルを処理します。テーブルのサイズは最初の⾏から推測され、フィール
ドには Column_1、Column_2、... のような名前が付けられます。noheader=trueは必然的に multitable=false
となります。
デフォルト: false
rmorig
構⽂: rmorig=<bool>
説明: 真 (True) の場合、出⼒結果にオリジナルのイベントは含まれません。偽 (False) の場合、オリジナル
のイベントは出⼒結果内に保持されます。オリジナルから⼀連の結果が⽣成された後、各オリジナルが⽣成
されます。
デフォルト: 真 (True)
例
例1: 「splunkd」を含む⾏があった場合に、COMMAND フィールドを抽出します。
... | multikv fields COMMAND filter splunkd
例2: 「pid」と「command」フィールドを抽出します。
... | multikv fields pid command
関連項⽬
extract、kvform、rex、xmlkv
Answers
157
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、multikv コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
multisearch
説明
複数サーチを同時実⾏します。
コマンドは、複数のストリーミングサーチを同時に実⾏する⽣成コマンドです。これには最低 2 つの
サブサーチが必要で、各サブサーチでは純粋なストリーミング操作のみを⾏うことができます。ストリーミング
サーチの例としては、search、eval、where、fields、rexなどのコマンドを使ったサーチが挙げられます。詳細は、
『サーチ』マニュアルの「サーチの種類」を参照してください。
multisearch
構⽂
| multisearch <subsearch1> <subsearch2> <subsearch3> ...
必要な引数
<subsearch>
構⽂:
説明: 少なくとも 2 つのストリーミングサーチ。
例
例 1:
インデックス a と b の両⽅のイベントをサーチし、各事例に eval を使って異なるフィールドを追加
| multisearch [search index=a | eval type = "foo"] [search index=b | eval mytype = "bar"]
関連項⽬
append、join
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、multisearch コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
mvcombine
説明
特定のフィールドを除けば同⼀の結果グループを、そのフィールドが
とめます。
multivalue
フィールドである単⼀の結果にま
つまり、⼀連の⼊⼒結果を受け付けて、すべてのフィールド値が同⼀の結果グループを探し、選択したフィールド
を保存します。これらの結果はすべて単⼀の結果に結合されます。フィールドは multivalue フィールドになり、結
合対象結果からのすべての値が含まれます。
raw イベントは多くのフィールドがそれぞれ異なっているため、通常は fields コマンドを使って⼀連の利⽤可能
なフィールドをペアリングした後に役⽴ちます。このコマンドは特定のレポートコマンドの結果を処理する際にも
有⽤です。
特別な動作として、mvcombine はフィールドの単⼀値のバージョンも⽣成し、すべての値を単⼀の⽂字列に組み合
わせます。この⽂字列は delim パラメーターの⽂字列で区切られます。サーチ結果を調査する⼿段の中には、UI
での CSV のエクスポートや splunk search "..." -output csv を使ったコマンドラインサーチのサーチ実⾏など、単
⼀値の表記が優先されるものものあります。こうした単⼀値は、multivalue に対応していない⼀部のコマンドでも
使⽤できます。
サーチ結果へのアクセス⼿法の⼤半は複数値表記を好みます (UI での結果の表⽰、JSON へのエクスポート、コ
マンドラインサーチから splunk search "..." -output json を使った JSON のリクエスト、REST API からの JSON
または XML のリクエストなど)。このような⼿段では、指定された delim には何の効果もありません。
構⽂
mvcombine [delim=<string>] <field>
必要な引数
field
158
構⽂: <field>
説明: 結合するフィールド名、これにより複数値フィールドが⽣成されます。
オプション引数
delim
構⽂: delim=<string>
Description: 結合⽂字列形式の単⼀値フィールドを⽣成するために使⽤する⽂字列を定義します。たとえ
ば、フィールドの値が「1」、「2」、および「3」で、区切り⽂字が「,」の場合、結合された単⼀値フィー
ルドは「1, 2, 3」になります。
Default: 1 つのスペース (" ")
例
例 1:
IP アドレスの値を除いて同⼀の 3 件のイベントがあります。
Nov 28 11:43:49 2014 host=datagen-host1 type=dhclient: bound to ip=209.202.23.154
message= ASCII renewal in 5807 seconds.
Nov 28 11:43:49 2014 host=datagen-host1 type=dhclient: bound to ip=160.149.39.105
message= ASCII renewal in 5807 seconds.
Nov 28 11:43:49 2014 host=datagen-host1 type=dhclient: bound to ip=199.223.167.243
message= ASCII renewal in 5807 seconds.
1 つのフィールドに 3 つの IP アドレスをを返し、値をカンマで区切ります。例:ip="209.202.23.154,
160.149.39.105, 199.223.167.243"。
以下のサーチを使⽤します。
... | mvcombine delim="," ip
例 2:
複数値イベントでは:
sourcetype="WMI:WinEventLog:Security" | fields EventCode, Category,RecordNumber | mvcombine delim="," RecordNumber |
nomv RecordNumber
例 3:
「foo」の値とコロン区切り⽂字を組み合わせます。
... | mvcombine delim=":" foo
関連項⽬
makemv、mvexpand、nomv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、mvcombine コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
mvexpand
説明
複数値フィールドの値を、その各値を持つ個別のイベントにデプロイします。結果として、mvexpand コマンドは複
数値フィールドごとに新たな結果を⽣成します。
構⽂
mvexpand <field> [limit=<int>]
必要な引数
field
構⽂: <field>
説明: 複数値フィールドの名前
オプション引数
159
limit
構⽂: limit=<int>
説明: 各⼊⼒イベントで使⽤する、<field>の値の数を指定します。
デフォルト: 0 (制限なし)
制限事項
特定の結果バッチの拡張時に mvexpand コマンド が使⽤できる RAM の量には制限があります。通常、⼊⼒の結果
群のサイズは maxresults 以下になり、これらの結果の拡張はメモリー内に 1 回のみ保持されます。必要な合計メ
モリーは、平均結果サイズを結果群内の結果数で乗算し、さらに拡張する複数値フィールドの平均サイズで乗算し
た値になります。
これが、limits.conf の max_mem_usage_mb の値を超えた場合、その結果群の出⼒は切り詰められ、警告メッ
セージが⽣成されます。
デフォルト: この制限のデフォルト値は 200MB です。
例
例 1:
複数値フィールド「foo」の各値に対応する新しいイベントを作成します。
... | mvexpand foo
例 2:
複数値フィールド「foo」の最初の 100 件の値に対応する新しいイベントを作成します。
... | mvexpand foo limit=100
例 3:
コマンドは 1 つの複数値フィールドのみを処理できます。この例では、複数の複数値フィールドを持つイ
ベントを、各フィールドの値に対応する個別のイベントに拡張する⽅法を説明していきます。たとえば、
sourcetype=data の以下のイベントを考えてみましょう。
mvexpand
2012-10-01 00:11:23 a=22 b=21 a=23 b=32 a=51 b=24
2012-10-01 00:11:22 a=1 b=2 a=2 b=3 a=5 b=2
まず rex コマンドを使って、a と b の値を抽出します。次に eval コマンド と mvzip 関数 を使って a と b の値
から新しいフィールドを作成します。
sourcetype=data | rex field=_raw "a=(?<a>\d+)" max_match=5 | rex field=_raw "b=(?<b>\d+)" max_match=5 | eval fields
= mvzip(a,b) | table _time fields
新しいフィールドの「fields 」で mvexpand コマンドと rex コマンド を使⽤し、新しいイベントを作成して
フィールド alpha と beta を抽出します。
sourcetype=data | rex field=_raw "a=(?<a>\d+)" max_match=5 | rex field=_raw "b=(?<b>\d+)" max_match=5 | eval fields
= mvzip(a,b) | mvexpand fields | rex field=fields "(?<alpha>\d+),(?<beta>\d+)" | table _time alpha beta
table コマンド を使って、結果テーブルに _time、alpha、および beta フィールドのみを表⽰します:
(この例を提供した Duncan さんに感謝の意を表明します。JSON データと spath コマンド を使ったこの例の別
バージョンもあります。)
160
関連項⽬
makemv、mvcombine、nomv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、mvexpand コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
nomv
説明
指定する複数値フィールドの値を 1 つの単⼀値に変換します。fields.conf ファイルに設定される複数値フィール
ドの設定を上書きします。
構⽂
nomv <field>
必要な引数
field
構⽂: <field>
説明: 複数値フィールドの名前です。
例
例 1:
sendmail イベントでは、senders フィールドの値を単⼀値にまとめます。上位 10 件の値を表⽰します。
eventtype="sendmail" | nomv senders | top senders
関連項⽬
makemv、mvcombine、mvexpand、convert
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、nomv コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
outlier
説明
このコマンドは、外れ値の検出ではなく除外に使⽤されます。選択フィールド内の範囲外の数値を除外または切り
捨てます。フィールドが指定されていない場合、outlier はすべてのフィールドの処理を試みます。
フィルタリングは、数値フィールドの 25 位パーセンタイルと 75 位パーセンタイルの値の差で計算される IQR
に基づいて⾏われます。イベントのフィールドの値が (25th percentile) - param*IQR 未満、あるいは (75th
percentile) + param*IQR を超える場合、action パラメーターに基づいてフィールドの変換、またはイベントの除外
が⾏われます。
構⽂
outlier <outlier-option>* [<field-list>]
オプション引数
<outlier-option>
構⽂: <action> | | <param> | <uselower>
説明: outlier のオプション
<field-list>
構⽂: <field>, ...
説明: フィールド名の、カンマまたはスペース区切りリスト
outlier のオプション
<action>
構⽂: action=rm | remove | tf | transform
説明: 外れ値の処理を設定します。RM | REMOVE は、数値の外れ値を持つイベントを削除します。TF |
TRANSFORM は、外れ値をその閾値に切り捨てます。また、mark=true の場合、値にプレフィックス
161
「000」を追加します。
デフォルト: tf
<mark>
構⽂: mark=<bool>
説明: action=transform (または tf) で、mark=true の場合、⾮外れ値範囲の値にプリフィックス「000」を付け
ます。action=remove の場合、何の効果もありません。
デフォルト: false
<param>
構⽂: param=<num>
説明: 外れ値を検出するための閾値です。外れ値は、IQR を乗じた
ます。
デフォルト: 2.5
param
に該当しない数値として定義され
<uselower>
構⽂: uselower=<bool>
説明: 上記に加えて、中央値を下回る値の外れ値を探すかどうかを指定します。
デフォルト: false
例
例1: webserver イベントの時間グラフで、範囲外の平均 CPU 値を変換します。
404 host="webserver" | timechart avg(cpu_seconds) by host | outlier action=tf
例2: 範囲外の数値をすべて削除します。
... | outlier
関連項⽬
anomalies、anomalousvalue、cluster、kmeans
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、outlier コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
outputcsv
概要
outputcsv コマンドは、 $SPLUNK_HOME/var/run/splunk/ のローカルサーチヘッド上に指定された CSV
ファイルにサーチ結果を保存します。
構⽂
outputcsv [append=<bool>] [create_empty=<bool>] [dispatch=<bool>] [usexml=<bool>]
[singlefile=<bool>] [<filename>]
オプション引数
append
構⽂: append=<bool>
説明: 「append」が真 (True) の場合、既存の CSV ファイルが存在する場合はそれに追加、ない場合は必
要に応じてファイルを作成します。CSV ヘッダーを持つファイルがすでに存在している場合は、そのヘッ
ダーが参照しているフィールドのみを⽣成します。.gz ファイルには追加できません。
デフォルト: false
create_empty
構⽂: create_empty=<bool>
説明: 真 (True) を設定すると、結果がない 0 ⻑のファイルを作成します。偽 (False) の場合、ファイルは
作成されず、また append=false の場合は、すでに存在しているファイルが削除されます。
デフォルト: false
dispatch
構⽂: dispatch=<bool>
説明: 真 (True) を設定すると、$SPLUNK_HOME/var/run/splunk/dispatch/<job
ファイルを参照します。
id>/
のジョブディレクトリにある
filename
構⽂: <filename>
説明: サーチ結果を書き込む csv ファイルの名前を指定します。このファイル
は、$SPLUNK_HOME/var/run/splunk になければなりません。ディレクトリの分割⽂字はファイル名に使⽤できま
せん。ファイル名を指定しない場合、各結果の内容を CSV の⾏として「_xml」フィールドに書き込みま
す。それ以外の場合は、ファイルに書き込みます (ファイル名に拡張⼦がない場合は、.csv が追加されま
162
す)。
singlefile
構⽂: singlefile=<bool>
説明: singlefile に真 (True) を設定しており、出⼒が複数のファイルにまたがる場合は、それを 1 つのファ
イルにまとめます。
デフォルト: true
usexml
構⽂: usexml=<bool>
説明: ファイル名がない場合に、csv 出⼒を XML にエンコードするかどうかを⽰します。UI から
outputcsv を起動する場合は、このオプションを使⽤しないでください。
例
例1: サーチ結果を CSV ファイル「mysearch.csv」に出⼒します。
... | outputcsv mysearch
関連項⽬
inputcsv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、outputcsv コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
outputlookup
概要
サーチ結果を、指定した静的ルックアップテーブル または KV ストアコレクションに書き込みます。
構⽂
outputlookup [append=<bool>] [create_empty=<bool>] [max=<int>] [key_field=<field_name>]
[createinapp=<bool>] (<filename> | <tablename>)
必要な引数
<filename>
構⽂: <string>
説明: ルックアップファイルの名前ファイルは
.csv
または
.csv.gz
で終了する必要があります。
<tablename>
構⽂: <string>
説明: transforms.conf にあるスタンザ名で指定されるルックアップテーブルの名前です。任意のルック
アップタイプ (CSV、外部、または KV ストア) に対してルックアップテーブルを設定できます。
オプション引数
append
構⽂: append=<bool>
説明: 真 (True) を設定した場合、outputlookup はサーチ結果を既存の.csv ファイルまたは KV ストアコレク
ションに追加しようと試みます。または、ファイルを作成します。CSV ファイルがある場合、 outputlookup
は、既存の .csv ファイルにあるフィールドだけを書き込みます。append=true を使ったサーチを実⾏すると、
ルックアップテーブルまたはコレクションが部分的に更新される場合があります。つまり、コレクションで
の後続の lookup や inputlookup サーチでは、新しいデータとともに古いデータも返されることがありま
す。outputlookupは、.gz ファイルに追加することはできません。デフォルトは偽 (false) です。
create_empty
構⽂: create_empty=<bool>
説明: true の場合、結果が存在しなければ空のファイルが作成されます。偽 (False) の場合、ファイルは作
成されず、すでに存在しているファイルは削除されます。デフォルトは真 (True) です。
createinapp
構⽂: createinapp=<bool>
説明: 偽 (False) を設定した場合、または現在のアプリケーションコンテキストが存在しない場合、システム
のルックアップディレクトリ内にファイルが作成されます。デフォルトは真 (True) です。
key_field
構⽂: key_field=<field_name>
説明: KV ストアベースのルックアップの場合、指定されたフィールド名を値へのキーとして使い、その値
を置換します。key_field 引数を使⽤した outputlookup サーチでは、ルックアップテーブルまたはコレクショ
ンが部分的に更新される場合があります。つまり、コレクションでの後続の lookup や inputlookup サーチで
は、新しいデータとともに古いデータも返されることがあります。
163
max
構⽂: max=<int>
説明: 出⼒する⾏の数デフォルトは無制限です。
説明
指定されたファイル名 (ファイル名の最後は .csv または .gz になる)、または transforms.conf のルックアップテー
ブル設定で指定されたテーブル名で、結果をルックアップテーブルに保存します。ルックアップテーブルは KV ス
トアコレクションまたは CSV ルックアップを参照できます。外部ルックアップに outputlookup コマンドは使⽤
できません。
CSV ベースのルックアップの場合、ルックアップファイルが存在しないと、現在のアプリケーションのルック
アップディレクトリ内にファイルが作成されます。ルックアップファイルがすでに存在している場合は、そのファ
イルが outputlookup の結果で上書きされます。
オプションに false を設定した場合、または現在のアプリケーションコンテキストが存在しない場合
は、システムのルックアップディレクトリ内にファイルが作成されます。
createinapp
フィールドルックアップのテーブル設定の詳細は、『ナレッジ管理』マニュアルの「CSV および外部ルックアッ
プの設定」および「KV ストアルックアップの設定」を参照してください。
App キー バリュー ストア コレクションの詳細は、『管理』マニュアルの「KV ストアについて」を参照してくだ
さい。
例
例1:
transforms.conf
に定義されているように
usertogroup
ルックアップテーブルに書き込みます。
| outputlookup usertogroup
例2: ($SPLUNK_HOME/etc/system/lookups または
ルに書き込みます。
$SPLUNK_HOME/etc/apps/*/lookups
にある)
users.csv
ルックアップファイ
| outputlookup users.csv
例3: Shalimar Restaurant の⾷品検査 (food inspection) イベントを KV ストアコレクションkvstorecollに書き込
みます。このコレクションは、ルックアップテーブル kvstorecoll_lookup 内で参照されます。
index=sf_food_health sourcetype=sf_food_inspections name="SHALIMAR RESTAURANT" | outputlookup kvstorecoll_lookup
例4: CSVファイルの内容をルックアップテーブル kvstorecoll_lookup を使ってKV ストアコレクション
に書き込みます。このためには、inputlookup および outputlookup の両⽅を使⽤する必要があります。
kvstorecoll
| inputlookup customers.csv | outputlookup kvstorecoll_lookup
例5: KV ストアコレクションの単⼀のレコードのフィールドの値を更新します。これに
は、inputlookup、outputlookup、および eval を使⽤する必要があります。レコードはその内部キー ID (_key フィー
ルド) の値で指定し、新しい顧客名と顧客の都市名でレコードを更新します。レコードは KV ストアコレクション
kvstorecoll に所属しており、ルックアップテーブル kvstorecoll_lookup を介してアクセスします。
| inputlookup kvstorecoll_lookup | search _key=544948df3ec32d7a4c1d9755 | eval CustName="Marge Simpson" | eval
CustCity="Springfield" | outputlookup kvstorecoll_lookup append=True
KV ストアコレクション内のレコードの、内部キー ID 値の取得⽅法については、inputlookup コマンドの例 5 を参
照してください。
関連項⽬
inputlookup、lookup、inputcsv、outputcsv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、outputlookup コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
outputtext
説明
結果の raw テキスト (_raw) を _xml フィールドに出⼒します。
出⼒のイベントテキストを⽣成するために、outputtext は内部機構として作成されています。
デフォルトで、イベントのテキストの XML エスケープ処理が⾏われ、_xml フィールドにコピーされます。
usexml=fals の場合、outputtext はイベントのテキストを _xml フィールドにコピーします。
はレポートコマンドのため、すべてのイベントがサーチヘッドに取り込まれ、Web インターフェイス
を使⽤している場合は出⼒が統計 UI に表⽰されます。
outputtext
164
構⽂
outputtext [usexml=<bool>]
オプション引数
usexml
構⽂: usexml=<bool>
説明: usexml に真 (True) を設定した場合 (デフォルト)、_xml 内の _raw フィールドのコピーは xml エス
ケープ処理されます。usexml に false を設定した場合、_xml フィールドは _raw の完全コピーとなりま
す。
例
例 1:
現在のサーチの _raw フィールドを、_xml に出⼒します。
... | outputtext
関連項⽬
outputcsv
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、outputtext コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
overlap
注意: overlap コマンドを使⽤して、サマリーインデックスフィル/バックフィルすることはお勧めできません。イ
ンデックスをバックフィルする、またはサマリーインデックスのギャップを埋める fill_summary_index.py スクリプ
トが⽤意されています。詳細は、『ナレッジ管理』マニュアルの「サマリーインデックスのギャップの管理」を参
照してください。
説明
サマリーインデックス内の時間が重複するイベントを探すか、または保存済みスケジュール済みサーチがイベント
を⾒逃した可能性がある時間のギャップを探します。
ギャップを⾒つけたら、 その期間に対してサーチを実⾏し、結果のサマリーインデックスを作成してくだ
さい (「 | collect」を使⽤)。
重複するイベントが⾒つかった場合は、 サーチ⾔語を使ってサマリーインデックスから重複を⼿動削除し
てください。
コマンドは外部の python スクリプト $SPLUNK_HOME/etc/apps/search/bin/sumindexoverlap.py を起動します。
スクリプトはサマリーインデックスから⼊⼒イベントを受け取り、同じ「info_search_name」で違う
「info_search_id」を持つイベントの時間の重複やギャップを探します。
overlap
重要: ⼊⼒イベントには以下のフィールドがあると想定されます:「info_min_time」、「info_max_time」 (それ
ぞれ包含および除外)、「'info_search_id」「info_search_name」。インデックスに raw イベント (_raw) が存在
する場合、 overlap コマンドは機能しません。インデックスには、chart、stats、timechart などの結果が含まれて
いなければなりません。
構⽂
overlap
例
例 1:
「summary」インデックスで重複するイベントを探します。
index=summary | overlap
関連項⽬
collect、sistats、sitop、sirare、sichart、sitimechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、overlap コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
165
pivot
説明
pivot コマンドは、⽐較的単純なピボット操作を⾏いますが、より洗練されたピボット操作を⾏うために、複雑に
することも可能です。基本的にこのコマンドは、stats および xyseries のラッパーとなります。新しい動作は追加
されないものの、ピボットの仕組みを理解されている⽅にとってはこちらの⽅が使いやすいでしょう。『ピボッ
ト』マニュアルを参照してください。また、ピボットで⾮変換サーチを開く⽅法も確認してください。
特定のデータモデルオブジェクトに対して、ピボットサーチを実⾏します。このコマンドは⽣成サーチで、サーチ
パイプラインの先頭に指定する必要があります。多くの⼊⼒が必要です(データモデル、データモデルオブジェク
ト、ピボットエレメント)。
構⽂
| pivot <datamodel-name> <objectname> <pivot element>
必要な引数
datamodel-name
構⽂: <string>
説明: サーチするデータモデルの名前です。
objectname
構⽂: <string>
説明: サーチするデータモデルオブジェクトの名前です。
pivot element
構⽂: (<cellvalue>)* (SPLITROW <rowvalue>)* (SPLITCOL colvalue [options])* (FILTER <filter
expression>)* (LIMIT <limit expression>)* (ROWSUMMARY <true|false>)* (COLSUMMARY
<true|false>)* (SHOWOTHER <true|false>)* (NUMCOLS <num>)* (rowsort [options])*
説明: ピボットエレメントを使ってピボットテーブルやグラフを定義します。ピボットエレメントには、セ
ルの値、⾏の分割、列の分割、フィルター、制限、⾏と列のフォーマット、⾏のソートオプションが含まれ
ます。セル値が常に先頭になります。この後には⾏の分割と列の分割が指定されます。これは、次のように
インターリーブすることができます:avg(val), SPLITCOL foo, SPLITROW bar, SPLITCOL baz
cellvalue エレメントの説明
<cellvalue>
構⽂: <function>(fieldname) [AS <label>]
説明: セルの値を定義し、必要に応じてその名前を変更します。ここで、「label」はレポート内のセルの名
前です。
利⽤可能な関数は、指定されたフィールドのデータタイプによって異なります (fieldname):
⽂字列: list、values、first、last、count、および distinct_count (dc)。
数値: sum、count、avg、max、min、stdev、list、および values。
タイムスタンプ: duration、earliest、latest、list、および values。
オブジェクトまたは⼦カウント: count。
⾏ split-byエレメントの説明
SPLITROW <rowvalue>
構⽂: fieldname [AS <label>] [RANGE start=<value> end=<value> max=<value> size=<value>]
[PERIOD (auto | year | month| day | hour | minute | second)] [TRUELABEL <label>] [FALSELABEL
<label>]
説明: 各 SPLITROW に対して、これらのオプションを指定しない、⼀部指定する、またはすべて指定する
ことができます。これらは任意の順序で表⽰されます。フィールド名は「AS <label>」を使って変更するこ
とができます。ここで「label」は、レポート内の⾏の名前です。
その他のオプションは、指定されたフィールドのデータタイプによって異なります (fieldname):
RANGE は数値にのみ適⽤されます。オプション (start、end、max、および size) をすべて指定する必要は
ありません。
PERIOD はタイムスタンプにのみ適⽤されます。これを使って、バケツを作成する期間を指定します。
TRUELABEL は論理値にのみ適⽤されます。これを使って、真の値のラベルを指定します。
FALSELABEL は論理値にのみ適⽤されます。これを使って、偽の値のラベルを指定します。
列の split-by エレメントの説明
SPLITCOL colvalue <options>
構⽂: fieldname [ RANGE start=<value> end=<value> max=<value> size=<value>] [PERIOD (auto |
year | month| day | hour | minute | second)] [TRUELABEL <label>] [FALSELABEL <label>]
説明: 各 SPLITCOL にこれらのオプションを指定しないか、⼀つ以上指定できます。全部指定することもで
きます。.これらは任意の順序で表⽰されます。
その他のオプションは、指定されたフィールドのデータタイプによって異なります (fieldname):
RANGE は数値にのみ適⽤されます。オプション (start、end、max、および size) をすべて指定する必要は
ありません。
PERIOD はタイムスタンプにのみ適⽤されます。これを使って、バケツを作成する期間を指定します。
166
TRUELABEL は論理値にのみ適⽤されます。これを使って、真の値のラベルを指定します。
FALSELABEL は論理値にのみ適⽤されます。これを使って、偽の値のラベルを指定します。
filter エレメントの説明
Filter <filter expression>
構⽂: <fieldname> <comparator> <value>
説明: 値式に使⽤できるコンパレータ (comparator) は、フィールド値のタイプによって異なります。
⽂字列: is、contains、isNot、doesNotContain、startsWith、endsWith、isNull、isNotNull、および
regex。
ipv4: is、contains、isNot、doesNotContain、startsWith、isNull、isNotNull。
数: =, !=, <, <=, >, >=, isNull, isNotNull
論理値: isNull、isNotNull、= 、または is
limit エレメントの説明
Limit <limit expression>
構⽂: LIMIT <fieldname> BY <limittype> <number> <statsfn>(<fieldname>)
説明:
例
例1: このコマンドは、「Tutorial」データモデルの「HTTP Requests』オブジェクトのイベント数をカウントし
ます。
| pivot Tutorial HTTP_requests count(HTTP_requests) AS "Count of HTTP requests"
これを、ダッシュボードパネルの単⼀値レポートとして書式設定することができます。
例2: チュートリアルのデータモデルを使って、ホストあたりの HTTP リクエスト (HTTP Requests) 数のピボッ
トテーブルを作成します。
| pivot Tutorial HTTP_requests count(HTTP_requests) AS "Count" SPLITROW host AS "Server" SORT 100 host
関連項⽬
datamodel、stats、xyseries
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、pivot コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
predict
説明
フィールドの将来値を予測します。
コマンドは時系列データの予測を⾏います。ここでは、時系列から⽋けているデータを補った上で、将来
の複数の時間ステップについて予測されます。すべての予測値には厳密な信頼区間が提供されます。コマンドは時
predict
167
の複数の時間ステップについて予測されます。すべての予測値には厳密な信頼区間が提供されます。コマンドは時
系列の各イベントに予測値のほか、95 位パーセンタイル範囲の上限と下限を追加します。
構⽂
predict <variable_to_predict> [AS <newfield_name>] [<predict_option>]
必要な引数
<variable_to_predict>
構⽂: <field>
説明: 予測する変数のフィールド名
オプション引数
<newfield>
構⽂: <string>
説明: < variable_to_predict>フィールドの名前を変更します。
<predict_option>
構⽂: algorithm=<algorithm_name> | correlate_field=<field> | future_timespan=<number> |
holdback=<number> | period=<number> | lowerXX=<field> | upperYY=<field>
説明: 予測のオプションすべてのオプションを任意の順序で指定できます。
Predict のオプション
algorithm
構⽂: algorithm= LL | LLP | LLT | LLB | LLP5
説明: 適⽤する予測アルゴリズムの名前を指定します: LL (ローカルレベル)、LLP (シーズンローカルレベ
ル)、LLT (ローカルレベル傾向)、LLB (⼆変量ローカルレベル)、LLP5 (LLP と LLT の組み合わせ)各アル
ゴリズムには、期待する最低データポイント数があります。詳細は、後述する「アルゴリズムのオプショ
ン」を参照してください。デフォルトは LLP5 です。
correlate
構⽂: correlate=<field>
説明: ⼆変量モデルに対して、相関するフィールドを⽰します。
future_timespan
構⽂: future_timespan=<number>
説明: 将来に向けた予測の⻑さです。正の数値でなければなりません。algorithm=LLB の場合は、このオプ
ションを使⽤できません。
holdback
構⽂: holdback=<number>
説明: モデルの構築に使⽤しない、最後からのデータポイント数 (<number>) を⽰します。たとえば、
「holdback=10」の場合、最後の 10 件の値の予測を算出します。⼀般的には、予測値と実際のデータを⽐
較するために⽤いられます。algorithm=LLB の場合に必要です。
lowerXX
構⽂: lower<int>=<field>
説明: 下位<int>パーセントの信頼区間に対するフィールド名を指定します。<int> は、0 以上 100 未満に
なります。
デフォルト: lower95 で、この場合 95% の予測が該当すると予測されます。
period
構⽂: period=<number>
説明: algorithm=LLP または algorithm=LLP5 である場合に、時系列データのシーズン期間を指定します。
指定しない場合は、データの⾃動相関を使って予測が⾏われます。algorithm=LLP または algorithm=LLP5
でない場合は無視されます。
upperYY
構⽂: upper<int>=<field>
説明: 上位<int>パーセントの信頼区間に対するフィールド名を指定します。<int> は、0 以上 100 未満に
なります。
デフォルト: upper95。これは、95% の予測が該当すると期待される信頼区間を⽰しています。
アルゴリズムのオプション
すべてのアルゴリズムは、Kalman フィルタに基づいたバリエーションです。アルゴリズムの名前は、LL、
LLP、LLT、LLB、LLP5 です。上記の各アルゴリズムには、期待する最低データポイント数があります。有効と
なるのに⼗分なデータポイントがない場合は、エラーメッセージが表⽰されます。たとえば、フィールド⾃体に⼗
分な数のデータポイントがある場合もありますが、ホールドバックが⼤きいと有効なデータポイント数が⾜りない
ことがあります。
アル
ゴリ
ズム
のオ
プ
ショ
ン
LL
アル
ゴリ
ズム
名
説明
ローカ これは⼀変量モデルで、傾向もシーズンもありません。最低 2 つのデータポイントが必要で
ルレベ
168
LL
ルレベ す。
ル
LLP
シーズ
ンに合
わせた シーズンを持つ⼀変量モデル。時系列の周期性は⾃動的に算出されます。周期の 2 倍以上の
ローカ データポイントが必要です。
ルレベ
ル
LLT
ローカ これは⼀変量モデルで、傾向を考慮しますが、シーズンは考慮しません。最低 3 つのデータポ
ルレベ
ル傾向 イントが必要です。
LLB
⼆変量
ローカ
ルレベ
ル
LLP5
これは⼆変量モデルで、傾向もシーズンもありません。最低 2 つのデータポイントが必要で
す。LLB は、1 つのデータセットを使って、他の予測を⾏います。たとえば、それがデータ
セット Y を使ってデータセット X の予測を⾏う場合を考えてみましょう。holdback=10 の場
合、このことは LLB が Y の最後の 10 件のデータポイントを使って、X の最後の 10 件のデー
タポイントの予測を⾏うことを意味しています。
LLT と LLP モデルを組み合わせて予測を⾏います。
信頼区間
信頼区間の lower および upper パラメータのデフォルトは、lower95 および upper95 です。これは、95% の予
測が該当すると期待される信頼区間を⽰しています。
通常、⼀部の予測は以下の理由で信頼区間外になります。
信頼区間が予測の 100% をカバーすることはありません。
信頼区間は、期待値の確⽴性であり、結果が期待値と完全に⼀致する訳ではありません。
例
例 1:
前のダウンロード数に基づいて、今後のダウンロード数を予測します。
index=download | timechart span=1d count(file) as count | predict count
例 2:
foo に周期性があるかどうかに応じて、LL または LLP を使って foo の値を予測します。
... | timechart span="1m" count AS foo | predict foo
例 3:
信頼区間の上限と下限を⼀致させる必要はありません
... | timechart span="1m" count AS foo | predict foo as fubar algorithm=LL upper90=high lower97=low
future_timespan=10 holdback=20
例 4:
LLB アルゴリズムを表しています。foo2 フィールドは、それを foo1 フィールドと相関させて予測されていま
す。
... | timechart span="1m" count(x) AS foo1 count(y) AS foo2 | predict foo2 as fubar algorithm=LLB correlate=foo1
holdback=100
関連項⽬
trendline、x11
169
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、predict コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
rangemap
説明
関数を使って、数値フィールドの値を分類します。各イベントにつき、新しいフィールド
れ、それにカテゴリが表⽰されます。range フィールドの値は、指定する数値範囲に基づきます。
rangemap
のフィールドに、⼊⼒して field の値が範囲内の任意の
ない場合、range の値は default に設定されます。
range
attribute_name
range
が追加さ
の名前を設定します。⼀致する範囲が
設定する範囲は重複しても構いません。重複する値がある場合、range フィールドは適合するすべての値を含む複
数値フィールドとして作成されます。たとえば、 low=1-10、elevated=5-15、⼊⼒フィールドの値が 10 の場合
は、range=low と code=elevated になります。
構⽂
rangemap field=<string> (<attribute_name>=<numeric_range>)...[default=<string>]
必要な引数
field
構⽂: field=<string>
説明: ⼊⼒フィールドの名前です。このフィールドは数値でなければなりません。
オプション引数
attribute_name
構⽂: <string>=<numeric_range>
説明: 指定された数値範囲に対して、範囲フィールドに出⼒する名前です。
default
構⽂: default=<string>
説明: ⼊⼒フィールドが範囲と⼀致しない場合、これを使ってデフォルト値を定義します。
デフォルト: 「None」
attribute_name のパラメータ
<numeric_range>
構⽂: <start>-<end>
説明: attribute_name パラメータの属性となる範囲の、開始整数値と終了数値を定義します。最初の値は 2
番⽬の値未満でなければなりません。値は整数または浮動⼩数点数になります。負の値を指定することがで
きます。たとえば、Dislike=-5--1、DontCare=0-0、Like=1-5 と指定できます。
例
例 1:
date_second が 1〜30 の場合は range に「green」を、31〜39の場合は「blue」を、40〜59の場合は「red」
を、範囲が⼀致しない (例:date_second=0) 場合は「gray」を設定します。
... | rangemap field=date_second green=1-30 blue=31-39 red=40-59 default=gray
例 2:
各イベントの range フィールドに、count が 0 の場合は「low」、1〜100 の場合は「elevated」、それ以外の場合
は「severe」を設定します。
... | rangemap field=count low=0-0 elevated=1-100 default=severe
関連項⽬
eval
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、rangemap コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
rare
170
説明
フィールドの⼀番少ない値を表⽰します。
フィールドリスト内のすべてのフィールドの値の組の中で、⼀番頻度が少ない組を探します。オプションの byclause 句を指定した場合、group-by フィールドの各⼀意の値の組の中で、まれな組を返します。
このコマンドは top コマンドと同様に動作しますが、
けが特定されます。
rare
では最も頻度が⾼いものでなく最も頻度の低いものだ
構⽂
rare <top-opt>* <field-list> [<by-clause>]
必要な引数
<field-list>
構⽂: <string>,...
説明: フィールド名のコンマ区切り形式のリスト。
<top-opt>
構⽂: countfield=<string> | limit=<int> | percentfield=<string> | showcount=<bool> |
showperc=<bool>
説明: rare コマンドのオプションtop と同じです。
オプション引数
<by-clause>
構⽂: by <field-list>
説明: グループ化する 1 つ以上のフィールドの名前
Top のオプション
countfield
構⽂: countfield=<string>
説明: count の値を書き込む新規フィールド名
デフォルト: 「count」
limit
構⽂: limit=<int>
説明: 返すタプル数を指定します。「0」の場合、maxresultrows までのすべての値を返します (「制限事
項」を参照)。maxresultrows よりも⼤きな値を選択すると、エラーになります。
デフォルト: 10
percentfield
構⽂: percentfield=<string>
説明: パーセントの値を書き込む新しいフィールドの名前
デフォルト: 「percent」
showcount
構⽂: showcount=<bool>
説明: count フィールド (countfield オプションを参照)およびその組のカウントを作成するかどうかを指定
します。
デフォルト: 真 (True)
showperc
構⽂: showperc=<bool>
説明: percent フィールド (percentfield オプションを参照) およびその組の相対普及度を作成するかどうか
を指定します。
デフォルト: 真 (True)
制限事項
により返される結果数には制限があります。デフォルトでこの制限値は 10 ですが、limit オプションを使っ
て limits.conf の [rare] スタンザにある maxresultrows の指定されている制限の値まで、他の値を選択すること
ができます。デフォルトで上限は 50,000 です。この値で、rare が使⽤するメモリー量の上限を効果的に保持で
きます。
rare
例
例 1:
url フィールドの、⼀番頻度が少ない値を表⽰します。
... | rare url
例 2:
「host」に対して、⼀番少ない「user」値を探します。
171
... | rare user by host
関連項⽬
top、stats、sirare
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、rare コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
正規表現
説明
regex コマンドは、指定した正規表現に⼀致しない結果を削除します。
構⽂
regex (<field>=<regex-expression> | <field>!=<regex-expression> | <regex-expression>)
必要な引数
<regex-expression>
構⽂: "<string>"
説明: PCRE ライブラリがサポートする Peri 互換の正規表現引⽤符が必要です。
オプション引数
<field>
構⽂: <field>
説明: 正規表現に対して値を照合するフィールド名を指定します。フィールドが指定されていない場合は、
「_raw」に対して照合されます。
デフォルト: _raw
使⽤⽅法
正規表現を指定して、それに⼀致する結果 (field=regex-expression) または⼀致しない結果 (field!=regexexpression) のみを保持できます。
注意: 正規表現の引数に OR (「|」) コマンドを使⽤する場合は、正規表現全体を引⽤符で囲む必要があります
(例:...|regex "| パイプ付き正規表現")。
注意: Splunk サーチ⾔語は、サーチ⾔語をエスケープ⽂字として使⽤する正規表現に加えて、バックスラッシュ
(円記号) をエスケープ⽂字として使⽤します。たとえば、リテラル・バックスラッシュ (円記号) を照合する必要
がある場合、regex の引⽤符で囲んだ引数に、4 つの連続したバックスラッシュ (円記号) を指定する必要があり
ます。例:
|regex _raw="\\\\"
例
例1: _raw フィールドに、ルーティング不可能クラス A (10.0.0.0/8) IP アドレスが含まれているサーチ結果のみ
を保持します。
... | regex _raw="(?=!\d)10\.\d{1,3}\.\d{1,3}\.\d{1,3}(?!\d)"
例2: 使⽤例
... | regex _raw="complicated|regex(?=expression)"
関連項⽬
rex、search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、regex コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
relevancy
説明
イベントの _raw フィールドとサーチ (search) のキーワードの⼀致度に基づいて、イベントとクエリがどれだけ
⼀致するかを計算します。結果は「relevancy」フィールドに保存されます。デフォルトの時間順ではなく、⼀致
度の⾼いイベント/ドキュメントを取得する場合に役⽴ちます。イベントに希少なサーチキーワードがある、頻度
172
が⾼い、単語が少ない、などの場合にイベントの関連性スコアが⾼くなります。たとえば、「disk error」をサー
チした場合、「disk」 (希少単語) が多数、そして「error」が 1 つ存在している短いイベント/ドキュメントの⽅
が、「disk」が 1 つ、「error」が多数存在しているとても⼤きなイベントよりも関連性が⾼くなります。
注意 : 現在、relevancy コマンドは機能しません。
http://docs.splunk.com/Documentation/Splunk/latest/ReleaseNotes/KnownIssues にある既知の問題
(Known issues) ページの SPL-93039 を参照してください。
構⽂
relevancy
例
例1: サーチの⼀致性を計算し、結果を降順に並べ替えます。
disk error | relevancy | sort -relevancy
関連項⽬
abstract、highlight、sort
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、relevancy コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
reltime
説明
相対時間フィールド「reltime」を作成し、「now」と「_time」の差異の値を、ユーザーが理解できる形でこの
フィールドに設定します。ユーザーが理解できる形の値の例としては、「5 ⽇前」、「1 分前」、「2 年前」など
が挙げられます。
構⽂
reltime
例
例 1:
サーチから返されたイベントに
reltime
フィールドを返します。
... | reltime
関連項⽬
convert
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、reltime コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
rename
説明
コマンドを使って、指定するフィールド、または複数値フィールドの名前を変更します。このコマンドは、
「pid」の代わりに「製品 ID」を使⽤するなど、より分かりやすい名前をフィールドに指定する場合に役⽴ちま
す。複数のフィールド名を変更する場合は、ワイルドカードを使⽤できます。
rename
フィールド名をフレーズに変更するには、引⽤符を使⽤します。
... | rename SESSIONID AS sessionID
複数のフィールド名を変更するには、ワイルドカードを使⽤します。
... | rename *ip AS *IPaddress
ソースフィールドと宛先フィールドの両⽅に同じ数のワイルドカードを持つワイルドカード式が指定されている場
合、ワイルドカード部の名前の変更処理は宛先ワイルドカード式に持ち越されます。以下の「例 2」を参照してく
ださい。
173
注意: 1 つのフィールドを複数の名前に変更することはできません。たとえば、フィールド A を ⼀度に「A as B,
A as C」と指定することはできません。
... | stats first(host) AS site, first(host) AS report
注意: このコマンドを使って、複数のフィールドを結合して 1 つのフィールドにすることはできません。値ととも
に NULL (存在しない) フィールドがあるためです。たとえば、product_id または pid フィールドを持つイベント
がある場合、... | rename pid AS product_id は pid の値を product_id フィールドには結合しません。イベントに対
する pid が存在しない場合、product_id は NULL 値で上書きされます。代わりに eval コマンドと coalesce() 関
数を参照してください。
構⽂
rename (wc-field AS wc-field)...
必要な引数
wc-field
構⽂: <string>
説明: フィールド名と、その変更後の名前ワイルドカードを使⽤できます。
例
例 1:
_ip フィールドの名前を「IPAddress」に変更します。
... | rename _ip as IPAddress
例 2:
「foo」で始まるフィールドの名前を「bar」で始まる名前に変更します。
... | rename foo* as bar*
例 3:
count フィールドの名前を変更します。
... | rename count as "CountofEvents"
関連項⽬
fields、table
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、rename コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
replace
説明
指定フィールドの値を、指定値に置換します。
指定フィールドで、最初の⽂字列単体を、2 番⽬の⽂字列で置換します (何も指定しない場合はすべてのフィール
ド)。後でワイルドカードを使⽤しない置換を指定した場合、それ以前に指定した置換よりも優先されます。ワイ
ルドカード置換の場合、完全⼀致が部分⼀致に優先します。優先順位を明確にするためには、replace を 2 回の
実⾏に分けることをお勧めします。ワイルドカード置換を使⽤する場合、結果には同数のワイルドカードが存在す
るか、またはワイルドカードが 0 でなければなりません。ワイルドカード (*) を利⽤すれば、置換する多数の値を
指定できます。
構⽂
replace (<wc-str> with <wc-str>)+ [in <field-list>]
必要な引数
wc-string
構⽂: <string>
説明: ⼀つ以上のフィールド値と置き換える値を指定します。ワイルドカードを使って、1 つまたは複数の
⽤語を照合することができます。
オプション引数
174
field-list
構⽂: <string> [<string>...]
説明: 1 つまたは複数のフィールド値とその置換値を指定します。_internal フィールドの代⽤品、「in
<fieldname>」が必要です。
例
例 1:
「localhost」で終わるホスト (host) 値を「localhost」に変更します。
... | replace *localhost with localhost in host
例 2:
「localhost」が他の⽂字列に優先するように、host 値の⽂字列の順序を変更します。
... | replace "* localhost" with "localhost *" in host
例 3:
2 つのフィールドの値を変更します。
... | replace aug with August in start_month end_month
例 4:
IP アドレスをより詳細な名前に変更します。
... | replace 127.0.0.1 with localhost in host
例 5:
フィールドの値をより詳細な名前に置換します。
... | replace 0 with Critical, 1 with Error in msg_level
例 6:
エラーメッセージをサーチして、空の⽂字列を空⽩⽂字に置換します。注意: この例は、実際の空⽂字列 (値がな
い) がない限り機能しません。
"Error exporting to XYZ :" | rex "Error exporting to XYZ:(?.*)" | replace "" with " " in errmsg
例 7:
内部フィールド _time の値を置換します。
sourcetype=* | head 5 | eval _time="XYZ" | stats count by _time | replace *XYZ* with *ALL* in _time
関連項⽬
fillnull、rename
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、replace コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
rest
説明
コマンドは、 Splunk Enterprise REST API エンドポイントを読み込み、サーチ結果としてリソースデータ
を返します。.
rest
詳細は『REST API ユーザー』マニュアルおよび『REST API リファレンス』マニュアルを参照してください。
構⽂
rest <rest-uri> [count=<int>] [splunk_server=<string>] [splunk_server_group=<string>] [timeout=<int>]
(<get-arg-name>=<get-arg-value>)...
必要な引数
175
rest-uri
構⽂: <uri>
説明: Splunk REST API エンドポイントへの URI パスです。
get-arg-name
構⽂: <string>
説明: REST 引数の名前です。
get-arg-value
構⽂: <string>
説明: REST 引数の値です。
オプション引数
count
構⽂: count=<int>
説明: 返される結果数を制限します。0 の場合、制限はありません。
デフォルト: 0
splunk_server
構⽂: splunk_server=<string>
説明: 結果を 1 台の特定のサーバーに制限します。サーチヘッドを参照するには、「local」を使⽤しま
す。
splunk_server_group
構⽂: splunk_server_group=<string>
説明: 結果を 1 つの server_group に限定します。
timeout
構⽂: timeout=<int>
説明: REST エンドポイントの応答待機時の、タイムアウト (秒) を指定します。
デフォルト: 60
例
例1: 保存されているサーチジョブにアクセスします。
| rest /services/search/jobs count=0 splunk_server=local | search isSaved=1
例2: 現在のサーチユーザーをすべてのイベントに追加します (ログインしているユーザーに関連するイベントの
みを表⽰するレポートの作成に役⽴ちます)。
* | head 10 | join [ | rest splunk_server=local /services/authentication/current-context | rename username as
auth_user_id | fields auth_user_id ]
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、rest コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
return
説明
サブサーチから値を返します。
コマンドは、サブサーチからの値を渡すことを⽬的にしています。到着したイベントを、1 つのイベント、
1 つの属性「search」で置換します。 パフォーマンスを向上するために、return コマンドは到着する結果を head
で、そして結果フィールドを fields で⾃動的に制限します。
return
このコマンドではフィールド = 値の「return
$srcip 」を簡単に出⼒できます。
source」、エイリアス
= 値の「return
ip=srcip」、値の「return
デフォルトの return コマンドでは、⼊⼒として渡される結果の最初の⾏のみが使⽤されます。return 2 ip のよう
に、count で複数の⾏を指定することができます。また、各⾏の間には OR が仮定され、出⼒は (ip=10.1.11.2) OR
(ip=10.2.12.3) のようになります。複数値を指定できます。OR 句内に配置されます。return 2 user ip の出⼒は、
たとえば (user=bob ip=10.1.11.2) OR (user=fred ip=10.2.12.3) のようになります。
たいていの場合、サブサーチの最後に
が不要になります。
return
コマンドを使⽤すると、head、fields、rename、format、および
構⽂
return [<count>] [<alias>=<field>] [<field>] [$<field>]
引数
176
dedup
<count>
構⽂: <int>
説明: ⾏の数を指定します。
デフォルト: 1 (コマンドが受け取る結果の最初の⾏)
<alias>
構⽂: <alias>=<field>
説明: 返すフィールドのエイリアスと値を指定します。
<field>
構⽂: <field>
説明: 返すフィールドを指定します。
<$field>
構⽂: <$field>
説明: 返すフィールドの値を指定します。
例
例 1:
「error
ます
ip=<someip>」をサーチします。ここで、someip
は最近 Boss がもっともよく使⽤している IP を表してい
error [ search user=boss | return ip ]
例 2:
「error (user=user1
グインです。
ip=ip1) OR (user=user2 ip=ip2)」をサーチします。ここで、ユーザーと
IP は、2 つの最新のロ
error [ search login | return 2 user, ip ]
例 3:
eval に最後のユーザーのユーザー ID を返し、それを 1 増やします
... | eval nextid = 1 + [ search user=* | return $id ] | ...
関連項⽬
format、search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、return コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
reverse
構⽂
reverse
説明
結果の並び順を逆にします。
説明 : reverse コマンドは、サーチにより返されるイベントには影響しません。表⽰順序にのみ影響を与えます。
CLI の場合、任意のデフォルト設定または明⽰的な maxout 設定が含まれます。
注意 : ⾮常に⼤きな結果セット (数百万件以上の結果) に対して Reverse を実⾏するには、⼤量の⼀時ストレー
ジ、I/O、および時間を必要とします。
例
例 1:
結果セットの順序を逆にします。
... | reverse
関連項⽬
head、sort、tail
Answers
177
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、reverse コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
rex
説明
フィールドを抽出するための正規表現名前付きグループ、またはフィールド内の⽂字列を置換または代⼊するため
の sed 式を指定します。
コマンドは、指定フィールドの値を⾮アンカー正規表現と照合し、名前付きグループを対応する名前のフィー
ルドに抽出します。フィールドが指定されていない場合、_raw フィールドに正規表現が適⽤されます。rex を
_raw フィールドに対して実⾏すると、パフォーマンス上の悪影響が発⽣するおそれがあります。
rex
mode=sed の場合、置換や代⼊に使⽤される sed 式が選ばれたフィールドの値に適⽤されます。フィールドが指
定されていない場合、sed 式は _raw フィールドに適⽤されます。sed 構⽂は、インデックス時 に機密データを
マスクするためにも使⽤されます。sed を使ったデータの匿名化については。『データの取り込み』マニュアルを
参照してください。
サーチ時 フィールド抽出 、または⽂字列置換および⽂字代⼊には rex コマンドを使⽤します。Splunk
Enterprise は Perl 互換の正規表現 (PCRE) を使⽤します。Splunk Enterprise の正規表現については、『ナレッ
ジ管理』マニュアルを参照してください。
構⽂
rex [field=<field>] (<regex-expression> [max_match=<int>] [offset_field=<string>] | mode=sed <sedexpression>)
必要な引数
field
構⽂: field=<field>
説明: 情報を抽出するフィールド
デフォルト: _raw
mode
構⽂: mode=sed
説明: sed 式を使⽤していることを⽰す場合に指定します。
regex-expression
構⽂: "<string>"
説明: 指定フィールドから照合、抽出する情報を定義する、PCRE 正規表現。引⽤符が必要です。
sed-expression
構⽂: "<string>"
説明: mode=sed の場合に、正規表現に⼀致する項⽬の⽂字列を置換するか、または⽂字を代⼊するかを指
定します。他の sed コマンドは実装されていません。引⽤符が必要です。Sed モードはグローバル (g) およ
び N 番⽬登場 (N) のフラグをサポートしています。ここで、N は⽂字列内の⽂字の位置を表す数値です。
オプション引数
max_match
構⽂: max_match=<int>
説明: 正規表現と照合する回数を指定します。1 より⼤きな値を指定した場合、結果となるフィールドは複
数値フィールドになります。
デフォルト: 1(0 は無制限)
offset_field
構⽂: offset_field=<string>
説明: 指定した場合、 <string> で選択された名前のフィールドが作成されます。このフィールドの値は照合
対象フィールドに、0 オフセット⽂字の観点で⼀致するエンドポイントになります。例えば、rex 式が<「(?
tenchars>.{10})」の場合、フィールドの最初の 10 ⽂字に⼀致し、offset_field はは 「0-9」となります。
デフォルト: 未設定
sed 式
rex コマンドを sed モードで使⽤する場合、置換 (s) または⽂字代⼊ (y) オプションを使⽤できます。
sed を使ったデータ内のテキスト置換 (s) を使⽤するための構⽂を以下に⽰します。
"s/<regex>/<replacement>/<flags>"
<regex> は PCRE 正規表現で、捕捉グループを含めることができます。
<replacement> は、正規表現に⼀致した項⽬と置換する⽂字列です。前⽅参照には、\n を使⽤します。こ
こで「n」は 1 桁の整数を⽰します。
<flags> に「g」を指定すると、すべての⼀致項⽬が置換されます。また、数字を指定すると、指定された⼀
致項⽬が置換されます。
sed を使った⽂字代⼊の構⽂を以下に⽰します。
"y/<string1>/<string2>/"
178
これは、<string1> に⼀致する⽂字を <string2> の⽂字に置き換えます。
例
例 1:
正規表現を使って from および to フィールドを抽出します。raw イベントに「From: Susan To: Bob」が含まれ
ている場合、「from=Susan」および「to=Bob」になります。
... | rex field=_raw "From: (?<from>.*) To: (?<to>.*)"
例 2:
scheduler.log のイベント内の savedsearch_id フィールドから、「user」、「app」、および
「SavedSearchName」を抽出します。savedsearch_id=bob;search;my_saved_search の場合、user=bob、app=search、
および次になります: SavedSearchName=my_saved_search
... | rex field=savedsearch_id "(?<user>\w+);(?<app>\w+);(?<SavedSearchName>\w+)"
例 3:
正規表現を⼀連の数値と照合し、それらを匿名化⽂字列と置換するには、sed 構⽂を使⽤します。
... | rex field=ccnumber mode=sed "s/(\d{4}-){3}/XXXX-XXXX-XXXX-/g"
例 4:
潜在的な攻撃者の IP アドレスとポートを表⽰します。
sourcetype=linux_secure port "failed password" | rex "\s+(?<ports>port \d+)" | top src_ip ports showperc=0
このサーチは rex を使って port フィールドと値を抽出します。次に、潜在的な攻撃者を⽰す、サーチで返された
上位のソース IP アドレス (src_ip) とポートのテーブルを表⽰します。
関連項⽬
extract、kvform、multikv、regex、spath、xmlkv
rtorder
説明
リアルタイムサーチからイベントをバッファに格納して、可能な時にそれらを時間の昇順に⽣成します。
コマンドはストリーミングイベントバッファを作成します。ここでは、⼊⼒イベントの取り込み、時間の
昇順でのバッファの保存、その順番でのバッファからの送信が実⾏されます。これは、現在の時刻がイベントのタ
イムスタンプの時刻から少なくとも buffer_span によって指定された期間に到達しない限り実⾏されません。
rtorder
バッファの最⼤サイズを超えた場合にも、バッファからイベントが⽣成されます。
すでに送信されたイベントよりも前の時刻のイベントを⼊⼒として受信した場合、この順序違いのイベントは即座
に送信されます (discard オプションに真 (True) が設定されている場合を除く))。discard に真 (True) を設定し
た場合、順序違いのイベントは常に破棄されるため、時間の昇順での出⼒が厳格に保証されます。
構⽂
rtorder [discard=<bool>] [buffer_span=<span-length>] [max_buffer_size=<int>]
オプション引数
buffer_span
構⽂: buffer_span=<span-length>
説明: バッファの⻑さを指定します。
デフォルト: 10 秒
discard
構⽂: discard=<bool>
説明: 順序違いのイベントを常に破棄するかどうかを指定します。
デフォルト: false
max_buffer_size
構⽂: max_buffer_size=<int>
説明: バッファの最⼤サイズを指定します。
デフォルト: 50000、または limits.conf にある [search] スタンザの
例
179
max_result_rows
設定
例 1:
過去 5 分間のイベントをバッファに保管し、5 分以上経過したらそれを時間の昇順に送信します。新たに受信し
たイベントが 5 分以上前の時刻を持つ場合、その時刻以降のイベントをすでに送信しているならば、当該イベン
トを破棄します。
... | rtorder discard=t buffer_span=5m
関連項⽬
sort
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、rtorder コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
run
script を参照してください。
savedsearch
説明
保存済みサーチを実⾏します。保存済みサーチのサーチ結果を返します。
サーチに $replace_me$ のような置換表現がある場合、サーチプロセッサが⽂字列を置き換えます。例:
|savedsearch mysearch replace_me="value"
注意 : savedsearch コマンドはパイプラインの他のコマンドと組み合わせることができません。savedsearch コマンド
は、 すべてのサーチテキストを指定されたsavedsearch に置き換えて実⾏します。このコマンドは、savedsearch の
後に追加した他のコマンドを削除します。
構⽂
savedsearch <savedsearch name> [<savedsearch-opt>]*
必要な引数
savedsearch name
構⽂: <string>
説明: 実⾏する保存済みサーチの名前
Savedsearch のオプション
savedsearch-opt
構⽂: <substitution-control>|<replacement>
説明: savedsearch オプションを使って、代⼊なし、または⽂字列の代⼊置換に使⽤する置換キーと値のペ
アを指定します。
substitution-control
構⽂: nosubstitution=<bool>
説明: 真 (True) の場合、⽂字列の代⼊置換は⾏われません。
デフォルト: false
replacement
構⽂: <field>=<string>
説明: ⽂字列の代⼊置換で使⽤するキー/値のペア
例
例 1:
保存済みサーチ「mysecurityquery」を実⾏します。
| savedsearch mysecurityquery
関連項⽬
search
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、savedsearch コマンド
180
の使⽤⽅法に関する質問と回答をご覧いただけます。
script
説明
サーチ結果を変更または⽣成する、外部 python プログラムを呼び出します。スクリプトは、commands.conf で
宣⾔し、 $SPLUNK_HOME/etc/apps/<app_name>/bin/ に設定します。スクリプトは splunk_home/bin/python を使⽤して
実⾏されます。
サーチコマンドは、カスタムサーチコマンドを呼び出すためのもうひとつの⽅法です。この⽅法について
は、カスタムサーチコマンドのトピックで解説されています。
script
|script commandname
とほぼ同義語なのは、
|commandname
注意: スクリプトコマンドのいくつかの関数は、時間の経過とともに削除されています。ここでは、perl、python
を引数として明⽰的に選択できません。これらの引数は無視されます。perl サーチコマンドを書き込む必要があ
る場合は、commands.conf ファイルでこれらのコマンドを perl として宣⾔します。⼊出⼒のフォーマットに関
して詳細に⽂書化されていない多数の仕様を特定する必要があるため、これは推奨されません。ま
た、etc/searchscripts のスクリプトを対象とする明⽰的なファイル名の参照にも現在は対応されていません。す
べてのサーチコマンドは、commands.conf で宣⾔する必要があります。
構⽂
script <script-name> [<script-arg>]* [maxinputs=<int>]
必要な引数
script-name
構⽂: <string>
説明: commands.conf に定義された、実⾏するスクリプトサーチコマンドの名前
オプション引数
maxinputs
構⽂: maxinputs=<int>
説明: スクリプトに渡す⼊⼒結果数を決定します。
デフォルト: 100
script-arg
構⽂: <string>
説明: スクリプトに渡される 1 つまたは複数の引数複数の引数を渡す場合は、それぞれをスペースで区切っ
てください。
例
例 1:
Python スクリプト「myscript」に引数 myarg1 および myarg2 を指定して実⾏し、結果をメールで送信しま
す。
... | script myscript myarg1 myarg2 | sendemail [email protected]
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、script コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
scrub
概要
特段に指定されていない限り、$SPLUNK_HOME/etc/anonymizer にある辞書および設定ファイルを使⽤して、サーチ結
果を匿名化します。
構⽂
scrub [public-terms=<filename>] [private-terms=<filename>] [name-terms=<filename>]
[dictionary=<filename>] [timeconfig=<filename>]
オプション引数
public-terms
構⽂: public-terms=<filename>
説明: 匿名化する公開⽤語を含むファイル名を指定します。
181
private-terms
構⽂: private-terms=<filename>
説明: 匿名化する名前を含むファイル名を指定します。
name-terms
構⽂: name-terms=<filename>
説明: 匿名化する名前を含むファイル名を指定します。
dictionary
構⽂: dictionary=<filename>
説明: 匿名化する⽤語の辞書を含むファイル名を指定します。
timeconfig
構⽂: timeconfig=<filename>
説明: 匿名化する時間設定を含むファイル名を指定します。
説明
ユーザー名、ip アドレス、ドメイン名などの ID データを同じ⻑さの仮想値に置き換えて、サーチ結果を匿名化
します。たとえば、⽂字列 [email protected][email protected] に変換します。こう
することによって、機密情報や個⼈情報を暴露することなく、ログデータを共有することができます。デフォルト
では、$SPLUNK_HOME/etc/anonymizer にある辞書ファイルと設定ファイルが使⽤されます。これらの設定を
変更するには、scrub コマンドに引数を指定します。引数はスタンドアロンの CLI anonymize コマンドに厳密に対
応しています。説明については、そちらを参照してください。
_ (ただし_rawは除く)、または date_で始まる属性と、または
eventtype、linecount、punct、sourcetype、timeendpos、timestartpos
を除き、すべての匿名化します。
例
例1: 現在のサーチ結果を匿名化します。
... | scrub
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、scrub コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
search
説明
コマンドを使って、インデックスからイベントを取得、またはパイプライン内の前のコマンドの結果をフィ
ルタリングします。キーワード、引⽤符で囲んだフレーズ、ワイルドカード、キー/値の式を使って、インデック
スからイベントを取得できます。サーチの先頭には、常に暗黙の search コマンドが仮定されています (パイプラ
インの先頭)。
search
サーチコマンドがパイプラインの最初のコマンドでない場合、サーチは前のコマンドの結果をフィルタリングする
ために⽤いられます。このようなサーチはサブサーチと呼ばれます。サブサーチの詳細は、『サーチ』マニュアル
を参照してください。
イベントを取得したら、変換、フィルタリング、レポート作成のコマンドを適⽤できます。取得したイベントにコ
マンドを適⽤するには、垂直バー「|」またはパイプ記号を使⽤します:
構⽂
search <logical-expression>
必要な引数
<logical-expression>
構⽂: <time-opts> | <search-modifier> | [NOT] <logical-expression> | <index-expression> |
<comparison-expression> | <logical-expression> [OR] <logical-expression>
説明: インデックスから取得するイベントを⽰す、キーワードまたはキー/値のペアを指定します。これらの
フィルタは、論理演算式、⽐較演算⼦、時間修飾⼦、サーチ修飾⼦、または式の組み合わせで定義します。
論理式のオプションの説明
<comparison-expression>
構⽂: <field><cmp><value>
説明: フィールドをリテラル値か他のフィールドの値を⽐較します。
<index-expression>
構⽂: "<string>" | <term> | <search-modifier>
説明: リテラル⽂字列およびサーチ修飾⼦を使って、インデックスから取得するイベントを指定します。
<time-opts>
構⽂: [<timeformat>] (<time-modifier>)*
182
説明: starttime、endtime のフォーマットを指定します。
⽐較式のオプションの説明
<cmp>
構⽂: = | != | < | <= | > | >=
説明: ⽐較演算⼦です。フィールド/値のペアをサーチする際に、⽐較式を使⽤できます。「=」および
「!=」を使った⽐較式は、すべてのフィールド/値のペアに利⽤できます。< > <= >= を使った⽐較式は、
数値を持つフィールドに対してのみ使⽤できます。
<field>
構⽂: <string>
説明: フィールド名です。
<lit-value>
構⽂: <string> | <num>
説明: フィールドの正確な値またはリテラル値です。⽐較式に⽤いられます。
<値>
構⽂: <lit-value> | <field>
説明: ⽐較式内で、フィールドのリテラル (数値または⽂字列) 値または他のフィールド名です。
インデックス式のオプションの説明
<⽂字列>
構⽂: "<string>"
説明: 照合するキーワードまたは引⽤符で囲んだフレーズを指定します。⽂字列や引⽤符で囲まれた⽂字列
(またはサーチ修飾⼦以外の任意の語句) をサーチする場合、Splunk は _raw フィールドと照合して、⼀致す
るイベントや結果を探します。
<search-modifier>
構⽂: <sourcetype-specifier> | <host-specifier> | <hosttag-specifier> | <source-specifier> |
<savedsplunk-specifier> | <eventtype-specifier> | <eventtypetag-specifier> | <splunk_serverspecifier>
説明: 指定したフィールドまたはフィールドタグからイベントをサーチします。たとえば、ホスト、ソー
ス、ソースタイプなどを組み合わせたサーチ、保存済みサーチ、イベントタイプを使ったサーチなどを⾏う
ことができます。また、フィールドタグのサーチは以下のフォーマットで⾏います:tag=<field>::<string>
デフォルトのフィールドを使ったサーチの詳細は、『ナレッジ管理』マニュアルを参照してください。
タグとフィールドのエイリアスを使ったサーチの詳細は、『ナレッジ管理』マニュアルを参照してくださ
い。
<host-specifier>
構⽂: host=<string>
説明: 指定したホストフィールドからイベントをサーチします。
<hosttag-specifier>
構⽂: hosttag=<string>
説明: ⽂字列によりタグ付けされたホストを持つイベントをサーチします。
<eventtype-specifier>
構⽂: eventtype=<string>
説明: 指定したイベントタイプに⼀致するイベントをサーチします。
<eventtypetag-specifier>
構⽂: eventtypetag=<string>
説明: ⽂字列によりタグ付けされたすべての eventtype に⼀致するイベントをサーチします。
<savedsplunk-specifier>
構⽂: savedsearch=<string> | savedsplunk=<string>
説明: 指定した保存済みサーチが⾒つけたイベントに対してサーチを⾏います。
<source-specifier>
構⽂: source=<string>
説明: 指定したホストフィールドからイベントをサーチします。
<splunk_server-specifier>
構⽂: splunk_server=<string>
説明: 特定のサーバーからイベントをサーチします。サーチヘッドを参照するには、「local」を使⽤しま
す。
時間のオプションの説明
時間修飾⼦の⼀覧については、「サーチの時間修飾⼦」を参照してください。
<timeformat>
構⽂: timeformat=<string>
説明: starttime、endtime のフォーマットを指定します。デフォルトのタイムスタンプのフォーマットは
timeformat=%m/%d/%Y:%H:%M:%S です。
<time-modifier>
構⽂: starttime=<string> | endtime=<string> | earliest=<time_modifier> | latest=<time_modifier>
説明: 開始時間、終了時間を相対時間または絶対時間で指定します。
183
earliest および latest 属性を使って、サーチの絶対/相対時間範囲を指定することもできます。時間修飾⼦の
構⽂については、『サーチ』マニュアルの「サーチにおける時間範囲について」を参照してください。
starttime
構⽂: starttime=<string>
説明: イベントはこの時間か、それ以降でなければなりません。timeformat と⼀致する必要があります。
endtime
構⽂: endtime=<string>
説明: すべてのイベントはこの時間か、それ以前でなければなりません。
使⽤⽅法
search コマンドにより、キーワード、フレーズ、フィールド、論理演算式、⽐較式を使って、Splunk インデッ
クスから取得するイベントを正確に指定することができます。
⽤語のサーチ例を以下に⽰します。
キーワード: error login
引⽤符で囲んだ⽂字列: "database error"
論理演算⼦: login NOT (error OR fail)
ワイルドカード: fail*
フィールド値: status=404, status!=404, or
status>200
詳細は、『サーチ』マニュアルの「サーチコマンドを使ったイベントの取得」を参照してください。
引⽤符とエスケープ⽂字
⼀般的に、空⽩⽂字、カンマ、パイプ、引⽤符、⾓括弧を含むフレーズやフィールド値は、引⽤符で囲む必
要があります。 引⽤符の数は偶数でなければなりません。⽂字列の最初に引⽤符を指定したら、その⽂字列の終
了を表す引⽤符も指定する必要があります。例:
のようなサーチは、⽂字列「error」を含むイベント数を検索します。
のようなサーチは、error、1 つのパイプ、stats、および count がその順
番で含まれている raw イベントを返します。
error | stats count
... | search "error | stats count"
また、論理演算⼦やフィールド/値のペアなどが、サーチ時に元の意味で解釈されないように、そのようなキー
ワードやフレーズを引⽤符で囲むことも可能です。例:
キーワード AND を論理演算⼦として解釈せずにサーチする場合: error "AND"
フィールド/値のペアをフレーズとしてサーチする場合: error "startswith=foo"
円記号 (\) は、引⽤符、パイプ、および円記号⾃⾝をエスケープ処理する場合に使⽤します。 円記号による
エスケープシーケンスは、引⽤符内でも展開されます。例:
サーチ内に「\|」と指定すると、このパイプ⽂字は 2 つのコマンドの区切り⽂字ではなく、処理対象のパイ
プ⽂字としてコマンドに渡されます。
「\"」と指定すると引⽤符がそのまま⽂字としてコマンドに渡されます。たとえば、⽂字通りの引⽤符を検
索したり、rex を使ってフィールド内に引⽤符を挿⼊したりする場合に使⽤します。
「\\」と指定すると、⽂字通りの円記号がコマンドに渡されます。
認識されない円記号のシーケンスは変更されません。
たとえば、サーチ⽂字列内に「\s」とある場合、これは既知のエスケープ・シーケンスではないため「\s」
としてコマンドに渡されます。
しかし、「\\s」と指定した場合、「\\」は既知のエスケープシーケンスで「\」に変換されるため、「\s」
としてコマンドに渡されます。
TERM() を使ったサーチ
TERM() ディレクティブを使って、括弧内に指定した任意の項⽬をインデックス内の 1 つの⽤語としてサーチす
ることができます。TERM は、⽂字列にピリオドやカンマなどのマイナー区切り⽂字が含まれており、それがス
ペースやカンマなどのメジャー区切り⽂字で区切られているような場合に特に役⽴ちます。実際に TERM は、メ
ジャー区切り⽂字で区切られている⽂字列には機能しません。
CASE() を使ったサーチ
CASE() ディレクティブを使って、⼤⽂字と⼩⽂字を区別した、⽤語やフィールド値のサーチを⾏うことができま
す。
例
下記は、search コマンドの使⽤⽅法の例です。『サーチチュートリアル』の「サーチの開始」には、さまざまな例
が記載されています。
例1: この例では、キー/値のペアを照合して、特定のソース IP (src) と宛先 IP (dst) の値をサーチしています。
src="10.9.165.*" OR dst="10.9.165.8"
例2: この例では、論理演算⼦と⽐較演算⼦を使って、キー/値のペアを照合しています。「localhost」以外のホ
184
ストの、xqp が 5 より⼤きく、コードが 10 または 29 のイベントをサーチします
(code=10 OR code=29) host!="localhost" xqp>5
例3: この例では、ワイルドカードを使ってキー/値のペアを照合します。HTTP クライアントまたはサーバーエ
ラーステータスを持つ、すべての Web サーバーからのイベントをサーチします。
host=webserver* (status=4* OR status=5*)
例4: この例では、パイプラインの後半で search を使⽤し、サーチ結果のフィルタリングを⾏います。このサーチ
は、transaction コマンドを使って Web セッションを定義し、3 件以上のイベントを含むユーザーセッションを探
しています。
eventtype=web-traffic | transaction clientip startswith="login" endswith="logout" | search eventcount>3
例5: 論理演算⼦の「NOT」と⽐較演算⼦の「!=」は同じではありません。以下のサーチでは、field が定義され
ていない (または NULL) の場合にイベントが返されます。
NOT field="value"
以下のサーチは、field が 存在し、値が「value」でない場合、イベントを返します。
field!="value"
値がワイルドカード「*」の場合、NOT field=* ではフィールドが NULL または未定義のイベントが返されます。⼀
⽅、field!=* では、イベントが返されることはありません。
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、search コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
searchtxn
説明
指定したサーチ制約内の特定のトランザクションイベントを検索します。
で選択されたテキストを含むトランザクションタイプ
イベントを効率的に取得します。
search-string
transaction-name
に⼀致するトランザクション
たとえば、「fields="qid pid"」およびサーチ属性「sourcetype="sendmail_syslog"」を持つ「email」トランザ
クションタイプ、および search-string に「to=root」を指定すると、searchtxn は、
「sourcetype="sendmail_syslog" to=root」に⼀致するすべてのイベントを取得します。
これらの結果から、上記の制約で特定できるすべてのqid と pid を使って、関連するトランザクションイベントが
さらに検索されます。すべての qid と pid が⾒つかったら、結果となるサーチを実⾏します。
'sourcetype="sendmail_syslog" ((qid=val1 pid=val1) OR (qid=valn pid=valm) | transaction name=email |
search to=root'
注意 : searchtxn は特定のフィールドの値により結びつけられたトランザクションを処理します。並べ替えによる前
後の関係や、時間による関係で結び付けられたものの処理には向きません。
構⽂
searchtxn <transaction-name> [max_terms=<int>] [use_disjunct=<bool>] [eventsonly=<bool>] <searchstring>
必要な引数
<transaction-name>
構⽂: <transactiontype>
Description: transactiontypes.conf に定義されている
transactiontype
スタンザの名前
<search-string>
構⽂: <string>
説明: トランザクションイベント内をサーチする⽂字列
オプション引数
eventsonly
構⽂: eventsonly=<bool>
説明: 真 (True) の場合、関連するイベントのみを取得しますが、「| transaction」コマンドは実⾏しませ
ん。
デフォルト: false
max_terms
構⽂: maxterms=<int>
185
説明: 1〜1000 の整数で、すべてのフィールドが使⽤できる⼀意のフィールド値の数を指定します。⼩さな
値を使⽤するとサーチが⾼速化し、より最近の値が取得されます。
デフォルト: 1000
use_disjunct
構⽂: use_disjunct=<bool>
説明: 初期サーチ時にサーチ⽂字列 (SEARCH-STRING) 内の各単語間に OR を仮定するかどうかを⽰しま
す。
デフォルト: 真 (True)
例
例 1:
David Smith から root へのすべての電⼦メールトランザクションを探します
| searchtxn email to=root from="David Smith"
関連項⽬
transaction
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、searchtxn コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
selfjoin
説明
指定されたフィールドまたはフィールドのリストに基づいて、結果を⾃⾝と結合します。selfjoin のオプション
overwrite、max、および keepsingle は、selfjoin の結果を制御します。
構⽂
selfjoin [<selfjoin-options>]* <field-list>
必要な引数
<field-list>
構⽂: <field>...
説明: 結合するフィールドまたはフィールドのリストを指定します。
<selfjoin-options>
構⽂: overwrite=<bool> | max=<int> | keepsingle=<bool>
説明: selfjoin コマンドのオプションです。3 つのオプションを組み合わせて使⽤できます。
Selfjoin のオプション
keepsingle
構⽂: keepsingle=<bool>
説明: 結合フィールドに⼀意の値を持つ結果を保持するかどうかを指定します。つまり、結合する他の結果
がない結果が維持されます。
デフォルト: false
max
構⽂: max=<int>
説明: 各主結果が結合できる「その他の」結果の最⼤数を⽰します。0 の場合、制限はありません。
デフォルト: 1
overwrite
構⽂: overwrite=<bool>
説明: 真 (true)の時、「その他」の結果からのフィールドによって、結合の基盤として使⽤される結果の
フィールドが上書きされるかどうかを指定します。
デフォルト: 真 (True)
例
例 1:
結果の「id」フィールドを⾃⾝と結合します。
... | selfjoin id
関連項⽬
186
join
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、selfjoin コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
sendemail
説明
コマンドを使⽤して、メール通知を⽣成します。指定したメールアドレスにサーチ結果をメールで送信
できます。
sendemail
構⽂
sendemail to=<email_list>
[from=<email_list>]
[cc=<email_list>]
[bcc=<email_list>]
[subject=<string>]
[format= ( csv | table | raw ) ]
[inline= <bool>]
[sendresults=<bool>]
[sendpdf=<bool>]
[priority=( highest | high | normal | low | lowest ) ]
[server=<string>]
[width_sort_columns=<bool>]
[graceful=<bool>]
[message=<string>]
[sendcsv=<bool>]
[use_ssl=<bool>]
[use_tls=<bool>]
[pdfview=<string>]
[papersize= ( letter | legal | ledger | a2 | a3 | a4 | a5 ) ]
[paperorientation=( portrait | landscape ) ]
[maxinputs=<int>]
[maxtime=<int> m | s | h | d]
[footer=<string>]
必要な引数
to
構⽂: to=<email_list>
説明: サーチ結果の送信先メールアドレスのリストです。
オプション引数
bcc
構⽂: bcc=<email_list>
説明: BCC ⾏引⽤符で囲まれたカンマ区切りのメールアドレスを指定します。
cc
構⽂: cc=<email_list>
説明: CC ⾏引⽤符で囲まれたカンマ区切りのメールアドレスを指定します。
format
構⽂: format= csv | table | raw
説明: インライン結果のフォーマット⽅法を指定します。
デフォルト: テーブル
footer
構⽂: footer=<string>
説明: 代替となるメールフッターを指定します。
デフォルト:
「このメールが誤って配信されたと思われる場合は、Splunk 管理者にお問い合わせください:
splunk > マシンデータのエンジン」
注意: フッターで新しい⾏を強制する場合は、Shift+Enter を押してください。
開始
構⽂: from=<email_list>
説明: メールアドレスの差出⼈⾏
デフォルト: "splunk@<hostname>"
inline
構⽂: inline= true | false
説明: 結果をメッセージ本⽂に記載するか、または添付ファイルとして送信するかを指定します。添付ファ
イルは CSV 形式で提供されます。
デフォルト: 真 (True)
187
graceful
構⽂: graceful= true | false
説明: 真 (True) を設定すると、メールの送信に失敗した場合にエラーは表⽰されず、sendemail が指定さ
れていないものとして、そのままパイプラインの処理が続⾏されます。
デフォルト: 偽 (False)
maxinputs
構⽂: maxinputs = <integer>
説明: アラート経由で送信するサーチ結果の最⼤数を設定します。
デフォルト: 50000
maxtime
構⽂: maxtime = <integer>m | s | h | d
説明: アクションの実⾏を許可する最⼤時間。この時間が経過すると、アクションは中断されます。
デフォルト: 無制限
message
構⽂: message=<string>
説明: メールで送信するメッセージを指定します。
sendresults=true の場合、デフォルトのメッセージは「サーチ完了」になります。
sendresults=true、inline=true で、 sendpdf=false または sendcsv=false のどちらかが該当する場合、
メッセージのデフォルトは「サーチ結果」になります。
sendpdf=true または sendcsv=true の場合、メッセージのデフォルトは「サーチ結果が添付されていま
す」になります。
paperorientation
構⽂: paperorientation = portrait | landscape
Description: ⽤紙の向き。
デフォルト: 縦
papersize
構⽂: papersize = letter | legal | ledger | a2 | a3 | a4 | a5
Description: PDF のデフォルトの⽤紙。letter、legal、ledger、a2、a3、a4、a5 を指定できます。
デフォルト: Letter
pdfview
構⽂: pdfview=<string>
説明: PDF として送信するビューの名前です。
priority
構⽂: priority=highest | high | normal | low | lowest
説明: メールクライアントに表⽰される、メールの優先度を設定します。最低は Lowest または 5、低は
low または 4、⾼は high または 2、最⾼は highest または 1 です。デフォルトは normal (または 1) で
す。
sendcsv
構⽂: sendcsv=true | false
説明: 結果を CSV 形式の添付ファイルで送信するかどうかを⽰します。デフォルトは偽 (false) です。
sendpdf
構⽂: sendpdf=true | false
説明: 結果を PDF 形式の添付ファイルで送信するかどうかを⽰します。Splunk の統合 PDF ⽣成機能の使
⽤⽅法の詳細は、『レポート』マニュアルの「レポートとダッシュボードの PDF の⽣成」を参照してくだ
さい。デフォルトは偽 (false) です。
sendresults
構⽂: sendresults=true | false
説明: 結果をメールに含めるかどうかを指定します。デフォルトは偽 (false) です。
server
構⽂: server=<string>
説明: ローカルの SMTP サーバーではない場合に、これを使って SMTP サーバーを指定します。デフォル
トは localhost です。
subject
構⽂: subject=<string>
説明: 件名⾏を指定します。デフォルトは「Splunk 結果」になります。
use_ssl
構⽂: use_ssl=true | false
説明: SMTP サーバーとの通信時に SSL を使⽤するかどうか。1 (true) を設定した場合、サーバー名または
IP アドレスと TCP ポートの両⽅を「mailserver」属性に指定する必要があります。デフォルトは 0 (false)
です。
use_tls
構⽂: use_tls=true | false
説明: SMTP サーバーとの通信時に、TLS (トランスポート層セキュリティ) を使⽤するかどうかを指定しま
す (starttls)。デフォルトは 0 (false) です。
width_sort_columns
構⽂: width_sort_columns=true | false
説明: この指定はプレーンテキストのメールのみ有効です。列をその幅でソートするかどうかを指定しま
す。デフォルトは真 (True) です。
188
例
1. サーチ結果を指定メールで送信します
サーチ結果を指定メールで送信します。デフォルトで、結果は raw としてフォーマットされます。
... | sendemail to="[email protected]" sendresults=true
2. サーチ結果をテーブル形式で送信します
サーチ結果を、件名「myresults」のテーブル形式メールで送信します。
... | sendemail to="[email protected],[email protected]" format=raw subject=myresults server=mail.splunk.com
sendresults=true
3. PDF を添付し、メッセージとインライン結果を記載したメール通知を送信します。
index=_internal | head 5 | sendemail [email protected] server=mail.example.com subject="Here is an email from
Splunk" message="This is an example message" sendresults=true inline=true format=raw sendpdf=true
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sendemail コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
set
説明
サブサーチ で set 操作を実⾏します。
2 つのサブサーチを実⾏し、次に 2 つのサーチ結果に対して、指定された set 操作を実⾏します。
union 操作 の結果は、いずれかのサブサーチで⽣成されたものです。
diff 操作 の結果は、2 つのサブサーチのいずれかで⽣成されたものです。結果がどのサブサーチで⽣成さ
れたのかについての情報は提供されません。
intersect 操作 の結果は、両⽅のサブサーチに共通するものです。
含まれるフィールドがすべて⼀致する場合、set コマンドは結果を同じものと判断します。 _serial など、サーチ
が⽣成する内部フィールドはサーチごとに異なる場合があります。stats コマンドの結果などの変換された結果と
は対照的に、raw イベントで set コマンドを使⽤する場合は⼀部のフィールドを除外する必要があります。これら
の場合、サーチによってフィールドが異なることはありません。
構⽂
set (union|diff|intersect) subsearch subsearch
必要な引数
subsearch
構⽂: <string>
説明: サブサーチの指定。サブサーチの構⽂の詳細は、『サーチ』マニュアルの「サブサーチについて」を
参照してください。
制限事項
が受け取る呼び出しサブサーチからの結果の件数には制限があります。この制限を超えると、
た⼊⼒結果は警告なしに切り捨てられます。
set
diff
に設定され
この制限は limits.conf で設定できます。ここでは、サブサーチスタンザの最⼤制限値を設定できます。この値が
変更された場合、すべてのサブサーチで取得されるデフォルトの結果件数も変更されます。あまりにも⼤きな値を
設定すると、サブサーチが実⾏されるパーシング中に遅延が発⽣する恐れがあります。この制限のデフォルト値は
10000 です。
また、set コマンドがそれぞれのサブサーチから移動する際の項⽬の件数にも制限があります。サーチからの⼊⼒
結果の件数が制限を超えると、setコマンドは警告なしに残りのベントを無視します。この制限は、出⼒結果の件
数を最⼤値の範囲に抑えるためのものです。
この制限は、limits.conf の [set] スタンザの maxresultrows で設定します。デフォルトは 50000 です。サブサー
チの最⼤制限値があるため、このデフォルト値が制限値を超えることはありません。
例
例 1:
「URL」の値に⽂字列「404」または「303」が含まれる値を返します (両⽅を含む値は返されません)。
189
| set diff [search 404 | fields url] [search 303 | fields url]
例 2:
404 エラーおよび 303 エラーがあるすべての URL を返します。
| set intersect [search 404 | fields url] [search 303 | fields url]
注意: fields コマンドをサブサーチで使⽤する場合、デフォルトでは内部フィールドはフィルタリングされませ
ん。set コマンドに _raw や _time などの内部フィールドを⽐較させない場合は、サブサーチ内で明⽰的に除外する
必要があります。
| set intersect [search 404 | fields url | fields - _*] [search 303 | fields url | fields - _*]
関連項⽬
append、appendcols、join、diff
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、set コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
setfields
説明
すべての結果のフィールド値を共通値に設定します。
特定フィールドに、結果セット内の各イベントの指定値を設定します。複数の定義はカンマで区切ります。フィー
ルドがない場合は追加され、存在しているフィールドは上書きされます。
フィールド値を変更または定義する必要がある場合は、より汎⽤⽬的の eval コマンドを使⽤することができま
す。例 1 の eval 式 を使ったフィールド値の設定⽅法を参照してください。
構⽂
setfields <setfields-arg>, ...
必要な引数
<setfields-arg>
構⽂: string="<string>"
説明: 引⽤符で値を囲んだキーと値のペア標準のキークリーニングが実⾏されます。つまり、英数字以外の
⽂字は「_」に置き換えられ、先頭の「_」は削除されます。
例
例 1:
ip および foo フィールドの値を指定します。
... | setfields ip="10.10.10.10", foo="foo bar"
このためには、eval コマンドを使⽤します。
... | eval ip="10.10.10.10" | eval foo="foo bar"
関連項⽬
eval、fillnull、rename
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、setfields コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
sichart
サマリーインデックス は、レポートコマンドの前に⾮ストリーミングコマンドが使われているサーチなどの、レ
ポート⾼速化に適さない、処理に時間がかかるサーチの⾼速化に利⽤できます。詳細は、詳細は、『ナレッジ管
理』マニュアルの「レポート⾼速化とサマリーインデックスについて」および「サマリーインデックスを使ったレ
ポート効率の向上」を参照してください。
説明
190
はサマリーインデックス版の chart コマンドで、グラフとしての可視化に対応するデータ構造で結果を返
します。たとえば、縦棒、折れ線、⾯、および円グラフを作成できます。sichart コマンドは、サマリーインデッ
クスにグラフ視覚エフェクトの⽣成に必要な統計情報を設定します。サマリーインデックスを設定したら、通常の
chart コマンドと、sichart コマンドと完全に⼀致するサーチ⽂字列を使⽤して、そのレポートを⽣成します。
sichart
構⽂
sichart [sep=<string>] [format=<string>] [cont=<bool>] [limit=<int>] [agg=<stats-agg-term>] ( <statsagg-term> | <sparkline-agg-term> | <eval-expression>...) [ by <field> (<bucketing-option> )...[<splitby-clause>] ] | [ over <field> (<bucketing-option>)...(by <split-by-clause>] ]
chart コマンド の構⽂と 統計およびグラフ関数 を参照してください。
例
例 1:
サマリーインデックスの結果に対して「chart avg(foo) by bar」を実⾏するために必要な情報を算出します。
... | sichart avg(foo) by bar
関連項⽬
chart、collect、overlap、sirare、sistats、sitimechart、sitop
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sichart コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
sirare
サマリーインデックス は、レポートコマンドの前に⾮ストリーミングコマンドが使われているサーチなどの、レ
ポート⾼速化に適さない、処理に時間がかかるサーチの⾼速化に利⽤できます。詳細は、『ナレッジ管理』マニュ
アルの「レポート効率を向上するサマリーインデックスの使⽤」を参照してください。
説明
は rare コマンドのサマリーインデックス版で、フィールドまたはフィールドの組み合わせのもっとも共通
していない値を返します。sirare コマンドは、サマリーインデックスに rare レポートの⽣成に必要な統計情報を
設定します。サマリーインデックスを設定したら、通常の rare コマンドと、rare コマンドと完全に⼀致するサー
チ⽂字列を使⽤して、そのレポートを⽣成します。
sirare
構⽂
sirare <top-opt>* <field-list> [<by-clause>]
必要な引数
<field-list>
構⽂: <string>,...
説明: フィールド名のコンマ区切り形式のリスト。
<top-opt>
構⽂: countfield=<string> | limit=<int> | percentfield=<string> | showcount=<bool> |
showperc=<bool>
説明: rare コマンドのオプションです。top と同じです。
オプション引数
<by-clause>
構⽂: by <field-list>
説明: グループに分類する⼀つまたは複数のフィールドの名前です。
Top のオプション
countfield
構⽂: countfield=<string>
説明: タプルの数の値を書き込む新しいフィールドの名前です。
デフォルト: 数 (カウント)
limit
構⽂: limit=<int>
説明: 返す組数を指定します。0 を指定すると、すべての値が返されます。
percentfield
構⽂: percentfield=<string>
191
説明: パーセントの値を書き込む新しいフィールドの名前です。
デフォルト: 「percent」
showcount
構⽂: showcount=<bool>
説明: タプルの数を⽰す「count」フィールドを作成するかどうか。countfield オプションを参照してくだ
さい。
デフォルト: 真 (True)
showpercent
構⽂: showpercent=<bool>
説明: percent フィールド (percentfield オプションを参照) およびその組の相対普及度を作成するかどうか
を指定します。
デフォルト: 真 (True)
例
例 1:
サマリーインデックスの結果に対して「rare foo bar」を実⾏するために必要な情報を算出します。
... | sirare foo bar
関連項⽬
collect、overlap、sichart、sistats、sitimechart、sitop
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sirare コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
sistats
サマリーインデックス は、レポートコマンドの前に⾮ストリーミングコマンドが使われているサーチなどの、レ
ポート⾼速化に適さない、処理に時間がかかるサーチの⾼速化に利⽤できます。詳細は、『ナレッジ管理』マニュ
アルの「レポート効率を向上するサマリーインデックスの使⽤」を参照してください。
説明
コマンドはサマリーインデックス版の stats コマンドで、データセットの集計統計情報を算出しま
す。sistats コマンドは、サマリーインデックスに stats レポートの⽣成に必要な統計情報を設定します。サマ
リーインデックスを設定したら、通常の stats コマンドと、sistats コマンドと完全に⼀致するサーチ⽂字列を使
⽤して、そのレポートを⽣成します。
sistats
構⽂
sistats [allnum=<bool>] [delim=<string>] ( <stats-agg-term> | <sparkline-agg-term> ) [<by clause>]
stats コマンド の構⽂と 統計およびグラフ関数 を参照してください。
例
例 1:
サマリーインデックスの結果に対して「stats avg(foo) by bar」を実⾏するために必要な情報を算出します。
... | sistats avg(foo) by bar
関連項⽬
collect、overlap、sichart、sirare、sitop、sitimechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sistats コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
sitimechart
サマリーインデックス は、レポートコマンドの前に⾮ストリーミングコマンドが使われているサーチなどの、レ
ポート⾼速化に適さない、処理に時間がかかるサーチの⾼速化に利⽤できます。詳細は、『ナレッジ管理』マニュ
アルの「レポート効率を向上するサマリーインデックスの使⽤」を参照してください。
説明
192
コマンドはサマリーインデックス版の timechart コマンドで、対応する統計情報テーブルから時系列グ
ラフを可視化します。sitimechart コマンドは、サマリーインデックスに timechart レポートの⽣成に必要な統計
情報を設定します。サマリーインデックスを設定したら、通常の timechart コマンドと、sitimechart コマンドと完
全に⼀致するサーチ⽂字列を使⽤して、そのレポートを⽣成します。
sitimechart
構⽂
sitimechart [sep=<string>] [partial=<bool>] [cont=<t|f>] [limit=<int>] [agg=<stats-agg-term>] [<bucketingoption> ]* (<single-agg> [by <split-by-clause>] ) | ( (<eval-expression>) by <split-by-clause> )
timechart コマンドの構⽂と 統計およびグラフ関数 を参照してください。
例
例 1:
サマリーインデックスの結果に対して「timechart avg(foo) by bar」を実⾏するために必要な情報を算出します。
... | sitimechart avg(foo) by bar
関連項⽬
collect、overlap、sichart、sirare、sistats、sitop
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sitimechart コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
sitop
サマリーインデックス は、レポートコマンドの前に⾮ストリーミングコマンドが使われているサーチなどの、レ
ポート⾼速化に適さない、処理に時間がかかるサーチの⾼速化に利⽤できます。詳細は、『ナレッジ管理』マニュ
アルの「レポート効率を向上するサマリーインデックスの使⽤」を参照してください。
説明
コマンドはサマリーインデックス版の top コマンドで、フィールドまたはフィールドの組み合わせで最も頻
出する値を返します。sitop コマンドは、サマリーインデックスに top レポートの⽣成に必要な統計情報を設定し
ます。サマリーインデックスを設定したら、通常の top コマンドと、sitop コマンドと完全に⼀致するサーチ⽂字
列を使⽤して、そのレポートを⽣成します。
sitop
構⽂
sitop <top-opt>* <field-list> [<by-clause>]
注意: この構⽂は
top
コマンドの構⽂とまったく同じです。
必要な引数
<field-list>
構⽂: <field>, ...
説明: フィールド名のコンマ区切り形式のリスト。
<top-opt>
構⽂: countfield=<string> | limit=<int> | otherstr=<string> | percentfield=<string> |
showcount=<bool> | showperc=<bool> | useother=<bool>
説明: top コマンドのオプション
オプション引数
<by-clause>
構⽂: by <field-list>
説明: グループに分類する⼀つまたは複数のフィールドの名前です。
Top のオプション
countfield
構⽂: countfield=<string>
説明: タプルの数の値を書き込む新しいフィールドの名前です。
デフォルト: count
limit
構⽂: limit=<int>
説明: 返すタプルの数を設定します。0 を指定するとすべてのタプルを返します。
デフォルト: 「10」
193
otherstr
構⽂: otherstr=<string>
説明: useother が真 (True) の場合、その他のすべての値を表す⾏に書き込む値すべてを指定します。
デフォルト: 「OTHER」
percentfield
構⽂: percentfield=<string>
説明: パーセントの値を書き込む新しいフィールドの名前です。
デフォルト: 「percent」
showcount
構⽂: showcount=<bool>
説明: タプルの数を⽰す「count」フィールドを作成するかどうか。countfield オプションを参照してくだ
さい。
デフォルト: 真 (True)
showperc
構⽂: showperc=<bool>
説明: タプルの相対的な出現の割合を⽰す「percent」フィールドを作成するかどうか。percentfield オプ
ションを参照してください。
デフォルト: 真 (True)
useother
構⽂: useother=<bool>
説明: 制限により含まれなかった⾏を代表する⾏を追加するかどうかを設定します。
デフォルト: 偽 (False)
例
例 1:
サマリーインデックスの結果に対して「top foo bar」を実⾏するために必要な情報を算出します。
... | sitop foo bar
例 2:
サマリーインデックスに、毎⽇実⾏されるスケジュール済みサーチのトップソース IP アドレスを設定します。
eventtype=firewall | sitop src_ip
サーチを「Summary - firewall top src_ip」として保存します。
後でこの情報を取得してレポートを作成したい場合は、過去 1 年に対してこのサーチを実⾏します。
index=summary search_name="summary - firewall top src_ip" |top src_ip
また、このサーチはサーチ名を指定しているため、他のサマリーインデックス追加サーチを使って保管された他の
データはフィルタリングされます。
関連項⽬
collect、overlap、sichart、sirare、sistats、sitimechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sitop コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
sort
説明
コマンドは指定したフィールドで結果をソートします。指定フィールドが存在していない結果に対しては、当
該フィールドで可能な最⼤値または最⼩値 (値の並び順が降順か昇順かによる) を持つフィールドを仮定して処理
が⾏われます。
sort
コマンドの最初の引数が数値の場合、最⾼でその値までの結果が順番に返されます。数字を指定しない場合、
デフォルトでは上限 10000 件が仮定されます。0 を指定した場合は、すべての結果が返されます。
sort
デフォルトで sort は、何をソートしているのかを⾃動的に判断します。フィールドが数値を取る場合、照合順序
は数値順になります。フィールドが IP アドレスを取る場合、照合順序は IP 順になります。それ以外の場合は、
照合順序は辞書式順序になります。以下に例を⽰します。
アルファベット⽂字列は辞書的順序にソートされます。
句読点⽂字列は辞書的順序にソートされます。
数値データは数字順に、指定されたソート順序 (昇順または降順) でソートされます。
英数字⽂字列は、最初の⽂字のデータタイプに基づいてソートされます。数字で始まる⽂字列は、数字に基
づいて数値的にソートされます。それ以外の場合は、辞書的順序でソートされます。
英数字と句読点の組み合わせとなる⽂字列は、英数字⽂字列と同様にソートされます。
194
デフォルトの⾃動モードでは、各値のペアが⽐較されてソート順序が決定されます。この場合、⼀部の値のペアは
辞書的に、別のペアは数値的にソートされる可能性があります。たとえば、降順にソートする場合に 10.1 > 9.1
と判断されますが、10.1.a < 9.1.a と判断されます。
構⽂
sort [<count>] (<sort-by-clause>)+ [desc]
必要な引数
<count>
構⽂: <int>
説明: ソートする結果数を指定します。値を指定しない場合、デフォルトの 10000 件が使⽤されます。0 を
指定した場合は、すべての結果が返されます。
<sort-by-clause>
構⽂: ( - | + ) <sort-field>
説明: 並べ替えるフィールドのリストと、その並べ替え順序 (昇順 ( - ) または降順 ( + ))
オプション引数
desc
構⽂: d | desc
説明: 結果を逆順にする、最後に付ける⽂字列
sort-field のオプション
<sort-field>
構⽂: <field> | auto(<field>) | str(<field>) | ip(<field>) | num(<field>)
説明: sort-field ⽤のオプション
<field>
構⽂: <string>
説明: ソートするフィールドの名前
auto
構⽂: auto(<field>)
説明: フィールド値のソート⽅法を⾃動で決定します。
ip
構⽂: ip(<field>)
説明: フィールド値を IP アドレスとして解釈します。
num
構⽂: num(<field>)
説明: フィールド値を数として解釈します。
str
構⽂: str(<field>)
説明: フィールド値を辞書的順序で並べます。
例
例 1:
結果を ip 値の昇順、次に url 値の降順に並べ替えます。
... | sort num(ip), -str(url)
例 2:
結果を _time フィールドの昇順、次に host 値の降順に並べ替えます。
... | sort 100 -num(size), +str(source)
例 3:
結果を _time フィールドの昇順、次に host 値の降順に並べ替えます。
... | sort _time, -host
例 4:
イベントの時間のフォーマットを変更し、その結果を新たな時間の降順にソートします。
... | bucket _time span=60m | eval Time=strftime(_time, "%m/%d %H:%M %Z") | stats avg(time_taken) AS
AverageResponseTime BY Time | sort - Time
(この例を提供した Ayn さんに感謝の意を表明します。)
195
例 5:
結果テーブルを、曜⽇や⽉など辞書的または数値的ではない特定の順序でソートします。たとえば、以下のテーブ
ルを⽣成するサーチを考えてみましょう。
Day
Total
Friday
120
Monday
93
Tuesday
124
Thursday
356
Weekend
1022
Wednesday 248
曜⽇フィールド (Day) をソートすると、テーブルはアルファベット順にソートされてしまい、実際の曜⽇順には
なりません。ここでは、⽉曜⽇から⾦曜⽇まで曜⽇順にテーブルをソートする必要があります。そのためには、ま
ず順序を決定するためのフィールド (sort_field) を作成する必要があります。次に、そのフィールドに対してソー
トを⾏います。
... | eval wd=lower(Day) | eval sort_field=case(wd=="monday",1, wd=="tuesday",2, wd=="wednesday",3,
wd=="thursday",4, wd=="friday",5, wd=="weekend",6) | sort sort_field | fields - sort_field
このサーチは、 eval コマンドを使って sort_field を作成し、fields コマンドを使って最終結果テーブルから
sort_field を削除しています。
(この例を提供した Ant1D および Ziegfried さんに感謝の意を表明します。)
例 6:
最新のイベントを返します。
... | sort 1 -_time
関連項⽬
reverse
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、sort コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
spath
説明
コマンドの「s」は Splunk (または構造化 (structured)) を意味しています。このコマンドは、XML や
JSON などの構造化データフォーマットから情報を抽出する⼿段を提供しています。コマンドはこの情報を 1 つ
以上のフォルダに保存します。また、表⽰されるイベントリストで構⽂を強調表⽰します。
spath
eval spath()
関数も使⽤できます。詳細については「評価関数」を参照してください。
構⽂
spath [input=<field>] [output=<field>] [path=<datapath> | <datapath>]
オプション引数
⼊⼒
構⽂: input=<field>
説明: 読み込んで値を抽出するフィールド。
デフォルト: _raw
output
構⽂: output=<field>
説明: 指定した場合、パスから抽出された値は、このフィールド名で書き込まれます。
path
構⽂: path=<datapath> | <datapath>
説明: 抽出する値の場所を⽰すパス。path 引数を使⽤しない場合、最初のラベルがない引数がパスとして使
⽤されます。場所を⽰すパスは、1 つまたは複数のステップをピリオドで区切って指定します。たとえば
「foo.bar.baz」などです。場所ステップは、フィールド名とオプションの中括弧で囲んだインデックスから
成り⽴っています。配列内の位置 (JSON と XML では異なります) を表すために、インデックスに数字を使
⽤できます。また、⽂字列を使⽤する場合は XML 属性を指定できます。インデックスに XML 属性を指定
196
する場合は、@ 記号を付けて属性名を指定します。出⼒引数を指定しない場合は、このパスが抽出した値の
フィールド名となります。
使⽤⽅法
path 引数を指定せずに呼び出した場合、 spath は「auto-extract」モードで実⾏され、⼊⼒フィールドの最初
5000 ⽂字からすべてのフィールドを抽出します。別の⼊⼒ソースが指定されていなければ、これらのフィールド
はデフォルトの _raw となります。パスが指定された場合は、パスの値が、パスの名前のフィールド、または、
output 引数が指定されている場合、output 引数に指定されたフィールドに抽出されます。
場所を⽰すパスは、1 つまたは複数の場所ステップを含み、それぞれのステップにはその前の場所ステップ
が指定したコンテキストがあります。 トップレベルの場所ステップのコンテキストは、暗黙的に XML または
JSON ドキュメント全体のトップレベルノードとなります。
場所ステップは、フィールド名および中括弧で囲んだ整数または⽂字列で表される配列インデックス (オプ
ション) から成り⽴っています。 XML と JSON では、配列インデックスの意味が異なります。たとえば JSON
で foo.bar{3} は、foo エレメントの⼦の bar の 3 番⽬のエレメントを表します。XML では、同じパスが foo の⼦
の 3 番⽬の bar を表しています。
コマンドではワイルドカードを使⽤して、JSON 内の配列インデックスの位置を取ることができま
す。 すべてのハッシュタグのためのテキストを取得するには、entities.hashtags{0}.text や
entities.hashtags{1}.text などを指定するのではなく、場所を⽰すパスの entities.hashtags{}.text を使⽤できま
す。参照されたバスの entities.hashtags がこの配列を指していなければ意味が通りません。そうでない場合は、通
常の配置インデックスを使⽤したときと同様にエラーが発⽣します。
spath
これは XML のみで使⽤できます。たとえば、
カタログのすべてのブックを取得します。
catalog.book
と
catalog.book{}
は同じ意味を持ちます。両⽅とも、
例
例 1:GitHub
多数の⼤きな git リポジトリの管理者として、私は以下のことを実現したいと考えています。
誰がどのリポジトリに対して多数の変更をコミットしているかを確認する。
各ユーザーが送信したコミットのリストを作成する。
サーチがすべての post-commit JSON 情報を追跡するように設定し、
commit_id フィールドを抽出しました。
spath
を使って commit_author および
... | spath output=repository path=repository.url
... | spath output=commit_author path=commits.author.name
... | spath output=commit_id path=commits.id
誰がリポジトリへの変更をコミットしたかを確認したい場合は、以下のサーチを実⾏します。
... | top commit_author by repository
また、各ユーザーによるコミットの⼀覧を表⽰する場合は、以下のように指定します。
... | stats values(commit_id) by commit_author
例 2:属性のサブセットの抽出
この例は、XML 属性および エレメントからの値の抽出⽅法を表しています。
<vendorProductSet vendorID="2">
<product productID="17" units="mm" >
<prodName nameGroup="custom">
<locName locale="all">APLI 01209</locName>
</prodName>
<desc descGroup="custom">
<locDesc locale="es">Precios</locDesc>
<locDesc locale="fr">Prix</locDesc>
<locDesc locale="de">Preise</locDesc>
<locDesc locale="ca">Preus</locDesc>
<locDesc locale="pt">Preços</locDesc>
</desc>
</product>
locDesc
エレメントの値 (Precios、Prix、Preise など) を抽出するには、以下のように指定します。
... | spath output=locDesc path=vendorProductSet.product.desc.locDesc
197
locale
属性の値 (es、fr、de など) を抽出するには、以下のように指定します。
... | spath output=locDesc.locale path=vendorProductSet.product.desc.locDesc{@locale}
4 番⽬の locDesc の値 (ca) を抽出するには、以下のように指定します。
... | spath path=vendorProductSet.product.desc.locDesc{4}{@locale}
例3: 複数値フィールドを使った JSON イベントの抽出と展開
コマンドは 1 つの複数値フィールドのみを処理できます。この例では、複数の複数値フィールドを持つ
JSON イベントを、各フィールドの値に対応する個別のイベントに拡張する⽅法を説明していきます。たとえば、
sourcetype=json の以下のイベントを考えてみましょう。
mvexpand
{"widget": {
"text": {
"data": "Click here",
"size": 36,
"data": "Learn more",
"size": 37,
"data": "Help",
"size": 38,
}}
まず、JSON からフィールドを抽出して、その名前を変更するサーチを⾏います。
sourcetype=json | spath | rename widget.text.size AS size, widget.text.data AS data | table _time,size,data
_time
size
data
--------------------------- ---- ----------2012-10-18 14:45:46.000 BST
36 Click here
37 Learn more
38 Help
次に eval 関数と mvzip() を使⽤して、新しい複数値フィールド x を作成します。このフィールドには size と
data の値が含まれます。
sourcetype=json | spath | rename widget.text.size AS size, widget.text.data AS data | eval x=mvzip(data,size) |
table _time,data,size,x
_time
data
size
x
--------------------------- ----------- ----- -------------2012-10-18 14:45:46.000 BST Click here
36
Click here,36
Learn more
37
Learn more,37
Help
38
Help,38
次に mvexpand コマンドを使って、x に基づく個別のイベントを作成し、eval 関数 mvindex() で data と size
の値を再定義します。
sourcetype=json | spath | rename widget.text.size AS size, widget.text.data AS data | eval x=mvzip(data,size)|
mvexpand x | eval x = split(x,",") | eval data=mvindex(x,0) | eval size=mvindex(x,1) | table _time,data, size
_time
data
size
--------------------------- ---------- ---2012-10-18 14:45:46.000 BST Click here
36
2012-10-18 14:45:46.000 BST Learn more
37
2012-10-18 14:45:46.000 BST Help
38
(この例を提供した G. Zaimi さんに感謝の意を表明します。)
その他の例
例 1:
... | spath output=myfield path=foo.bar
... | spath output=myfield path=foo{1}
... | spath output=myfield path=foo.bar{7}.baz
例 2:
... | spath output=author path=book{@author}
関連項⽬
198
extract、kvform、multikv、regex、rex、xmlkv、xpath
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、spath コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
stats
説明
平均、計数、合計など、結果セットの集計統計を計算します。これは SQL の集計と類似しています。stats を by
句なしで使⽤すると、1 つの⾏が⽣成されます。この⾏は到着した結果セット全体の集計を表します。by 句を使
うと、 by 句に指定されたそれぞれの⼀意の値に 1 つの⾏が返されます。
eval コマンドと stat コマンドの違い
コマンドはイベントのフィールドに基づく統計を⾏います。eval コマンドは、既存のフィールドと任意の式
を使って、イベントに新しいフィールドを作成します。
stats
構⽂
シンプル: stats (stats-function(field) [as field])+ [by field-list]
完全: stats [partitions=<num>] [allnum=<bool>] [delim=<string>] ( <stats-agg-term> | <sparkline-aggterm> ) [<by clause>]
必要な引数
stats-agg-term
構⽂: <stats-func>( <evaled-field> | <wc-field> ) [AS <wc-field>]
説明: オプションとして新しいフィールド名に名前を変更できる統計指定⼦。指定⼦には、フィールドに
aggregation 関数を適⽤、または⼀連のフィールドセット、または任意の eval 式に aggregation 関数を適
⽤したものを利⽤できます。
sparkline-agg-term
構⽂: <sparkline-agg> [AS <wc-field>]
説明: 必要に応じて新しいフィールドに変更される、スパークライン指定⼦
オプション引数
allnum
構⽂: allnum=<bool>
説明: true の場合、各フィールドについて、フィールドのすべての値が数値である場合に限り統計計算を⾏
います。(デフォルトは偽 (False))
delim
199
構⽂: delim=<string>
説明: list() または values() 集合内の値の区切り⽅を指定します。(デフォルトは 1 つのスペースです。)
by 句
構⽂: by <field-list>
説明: グループに分類する⼀つまたは複数のフィールドの名前です。
partitions
構⽂: partitions=<num>
説明: 指定した場合、マルチスレッド削減のための split-by フィールドに基づいて、⼊⼒データをパーティ
ション分割します。デフォルトは、1 です。
Stats 関数のオプション
stats-function
構⽂: avg() | c() | count() | dc() | distinct_count() | earliest() | estdc() | estdc_error() | exactperc<int>()
| first() | last() | latest() | list() | max() | median() | min() | mode() | p<in>() | perc<int>() | range() |
stdev() | stdevp() | sum() | sumsq() | upperperc<int>() | values() | var() | varp()
説明: stats で使⽤される関数です。stats コマンドの起動時に複数の関数を使⽤できます。ただし、by 句は
1 つだけ使⽤できます。
統計関数のほか、その説明と例を含む⼀覧については、「統計およびグラフ関数」を参照してください。
Sparkline 関数のオプション
スパークラインはテーブルのセル内に表⽰されるインライングラフで、各⾏のプライマリキーに関連する時間ベー
スの傾向を表⽰します。詳細は、『サーチ』マニュアルの「サーチ結果へのスパークラインの追加」を参照してく
ださい。
sparkline-agg
構⽂: sparkline (count(<wc-field>), <span-length>) | sparkline (<sparkline-func>(<wc-field>),
<span-length>)
説明: フィールドの aggregation 関数の最初の引数、および必要に応じて、オプションの期間 (timespan)
指定⼦を取る、スパークライン (sparkline) 指定⼦です。timespan 指定⼦を使⽤しない場合は、サーチの時
間範囲に基づいて適切な期間が選択されます。スパークラインの対象外フィールドについては、count のみ
使⽤できます。
sparkline-func
構⽂: c() | count() | dc() | mean() | avg() | stdev() | stdevp() | var() | varp() | sum() | sumsq() | min() |
max() | range()
説明: スパークラインに必要な値を返す集計関数です。各スパークラインの値は、特定の時間バケツに該当
するイベントにこの集計を適⽤することにより⽣成されます。
基本的な例
1.各ホストの平均転送レートを返します。
sourcetype=access* | stats avg(kbps) by host
2.アクセスログをサーチして、「referer_domain」の上位 100 件の値から合計ヒット数を返します
アクセスログをサーチして、「referer_domain」の上位 100 件の値から合計ヒット数を返します。top コマンド
は、カウントと各 referer_domain の割合 (パーセント) を返します。
sourcetype=access_combined | top limit=100 referer_domain | stats sum(count) AS total
=== 3. Calculate the average time for each hour for similar fields using wildcard characters ===
⽂字列「lay」で終わる任意の⼀意のフィールドに対して、各時間の平均を返します。例:delay、xdelay、relay
... | stats avg(*lay) BY date_hour
4.結果の重複を削除して、⼀意の結果の合計数を返します
同じ「host」値を持つ結果の重複項⽬を削除して、残り結果の合計カウントを返します。
... | stats dc(host)
使⽤事例
1.HTTP ステータスとホストでイベント数をカウントします
この例では、サーチチュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ
形式の任意のデータを利⽤できます。「Splunk へのチュートリアルデータの取り込み 」からデータセット
をダウンロードして、説明に従って作業を⾏ってください。次に、時間範囲に [その他] > [昨⽇] を指定して
サーチを実⾏します。
HTTP ステータスコードの値とホストの組み合わせで、イベント数をカウントします。
200
sourcetype=access_* | chart count by status, host
これによって、以下のテーブルが作成されます。
2.各 Web サーバーに対する異なる種類の要求を eval 式を使ってカウントします
この例では、サーチチュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ
形式の任意のデータを利⽤できます。「Splunk へのチュートリアルデータの取り込み 」からデータセット
をダウンロードして、説明に従って作業を⾏ってください。次に、時間範囲に [その他] > [昨⽇] を指定して
サーチを実⾏します。
各 Web サーバーに対して⾏われた要求の種類別に数をカウントします。
sourcetype=access_* | stats count(eval(method="GET")) as GET, count(eval(method="POST")) as POST by host
この例では、eval 式を使って stats コマンドのカウント対象となるフィールド値を指定しています。サーチは、2
種類のリクエストメソッド GET または POST にのみ注⽬しています。最初の句は、method=GET フィールド値を持
ち、Web アクセスイベント数をカウントし、結果「GET」を取得することを指定しています。次に 2 番⽬の句で
は、method=POST イベントに対して同様の処理を⾏います。次に by 句 by host で、host 値に対応する各要求数を区
別します。
これによって、以下のテーブルが返されます。
3.特定のフィールドごとにさまざまな統計を⾏います。
これらのサーチは、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤していま
す。データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード
(mag)、座標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それを Splunk への⼊⼒として
追加できます。
3a. それぞれのマグニチュード範囲で発⽣した地震数をカウントします。(このデータセットは、期間が 30 ⽇間の
イベントで成り⽴っています。)
source=usgs | chart count AS "Number of Earthquakes" by mag span=1 | rename mag AS "Magnitude Range"
201
このサーチは span=1 を使って、各範囲のマグニチュードフィールド (mag) を定義しています。次に rename コマ
ンドを使って、フィールド名を「Magnitude Range」に変更しています。
3b. カリフォルニア周辺の地震をサーチして、記録されている地震数をカウントします。次に、これらの地震のマ
グニチュードの最低値、最⼤値、範囲 (最⼩値と最⼤値の差)、および平均値を算出して、マグニチュードタイプ別
に記載します。
source=usgs place=*California* | stats count, max(mag), min(mag), range(mag), avg(mag) by magType
次の計算には、stats 関数
が返されます。
count(), max(), min(), range(), and avg()
を使⽤します。これによって、以下のテーブル
3c. また、これらの最近の地震のマグニチュードの平均、標準偏差、分散を算出することもできます。
source=usgs place=*California* | stats count mean(mag), stdev(mag), var(mag) by magType
次の計算には、stats 関数
す。
mean
mean(), stdev(), and var()
を使⽤します。これによって、以下のテーブルが返されま
の値は、avg() を使って算出された値と完全に⼀致しています。
4.販売した商品のID、種類、名前をテーブルに表⽰し、それぞれの商品の収益を算出します
この例では、『サーチチュートリアル』のサンプルデータセットとフィールドのルックアップを使⽤して、イ
ベントデータにさまざまな情報を追加します。
「データの追加 」チュートリアルからデータセットをダウンロードして、それを Splunk に取り込んで
ください。
「フィールドルックアップの使⽤ 」チュートリアルから CSV をダウンロードした後、ルックアップ定
義の設定の説明に従ってイベントに price と productName を追加します。
フィールドルックアップを設定したら、時間範囲 [全時間] でサーチを実⾏します。
Buttercup Games オンラインストアで販売された商品を ID 、種類、および名前別に表⽰するテーブルを作成し
ます。また、各商品の収益も算出します。
sourcetype=access_* status=200 action=purchase | stats values(categoryId) AS Type, values(productName) AS Name,
202
sum(price) AS "Revenue" by productId | rename productId AS "Product ID" | eval Revenue="$
".tostring(Revenue,"commas")
この例は、values() 関数を使って、各 productId に対応する categoryId と
sum() 関数を使って、price フィールドの値の合計を算出しています。
productName
値を表⽰しています。次に
また、分かりやすくするために各種フィールド名も変更します。stats 関数では、AS 句を使って名前を変更する
ことができます。構⽂により split-by フィールドの名前を変更できないため、product_id フィールドの名前を変更
するために rename コマンドを使⽤しています。
最後に、結果を eval 式に渡して、ドル記号とカンマを追加し、通貨として表⽰されるように、Revenue フィールド
値の書式を再設定して、
これによって、以下のテーブルが返されます。
5.それぞれのドメインからメールを受信する⽅法を決定します。
この例は、⽣成されたメールデータ (sourcetype=cisco_esa) を使⽤しています。この例の sourcetype=cisco_esa を
ご⾃分のデータの sourcetype 値に、そして mailfrom フィールドをご⾃分のメールアドレスフィールド名
(例:To, From, or Cc) に変更すれば、任意のメールデータに対して利⽤できます。
メールが com/net/org ドメインから来ているのか、または他のトップレベルドメインから来ているのかを判断し
ます。
sourcetype="cisco_esa" mailfrom=* | eval accountname=split(mailfrom,"@") | eval from_domain=mvindex(accountname,-1)
| stats count(eval(match(from_domain, "[^\n\r\s]+\.com"))) AS ".com", count(eval(match(from_domain,
"[^\n\r\s]+\.net"))) AS ".net", count(eval(match(from_domain, "[^\n\r\s]+\.org"))) AS ".org", count(eval(NOT
match(from_domain, "[^\n\r\s]+\.(com|net|org)"))) AS "other"
このサーチの前半部では、eval を使って mailfrom フィールドのメールアドレスを分割し、from_domain を
フィールド内の @ 記号の後にある部分として定義します。
mailfrom
次に結果を stats コマンドに渡します。eval 式の結果数のカウントには、count() 関数を使⽤しています。ここ
で、eval は match() 関数を使って、from_domain とドメインのサフィックスを識別する正規表現を⽐較していま
す。from_domain の値が正規表現と⼀致する場合、各 サフィックス (.com, .net, and .org) の count が更新されま
す。その他のドメインサフィックス数は、other としてカウントされます。
これによって、以下の結果テーブルが作成されます。
6.Web アクセスログをサーチして、ドメインを参照する上位 10 件のヒット数の合計を取得します
この例では、サーチチュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ
形式の任意のデータを利⽤できます。[this topic in the tutorial] からデータ セットをダウンロードした
後、指⽰に従って Splunk にアップロードしてください。次に、時間範囲に [その他] > [昨⽇] を指定して
サーチを実⾏します。
Web アクセスログをサーチして、上位 10 件の参照ドメインのヒット数合計を返します。(top コマンドは、カウ
ントと各 referer の割合 (パーセント) を返します。)
sourcetype=access_* | top limit=10 referer | stats sum(count) AS total
203
このサーチでは、top コマンドを使って参照数が上位 10 件の参照ドメイン (referer フィールドの値) を検索して
います(これは、referer_domain として表⽰されることもあります)。top コマンドの結果は、stats コマンドに渡さ
れます。この例では、sum() 関数を使って各 referer による Web サイトへのアクセス回数を追加しています。この
合計は、total フィールドに保存されます。これにより、単⼀の数値が⽣成されます。
関連項⽬
eventstats、rare、sistats、streamstats、top
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、stats コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
strcat
説明
⽂字列値を連結します。
フィールドや⽂字列を結合して新しいフィールドを作成します。引⽤符で囲んだトークンはリテラルおよび残り
フィールド名とみなされます。宛先フィールド名は、常に最後になります。
構⽂
strcat [allrequired=<bool>] <srcfields>* <destfield>
必要な引数
<destfield>
構⽂: <string>
説明: srcfields が定義している連結⽂字列値を保存する宛先フィールドです。destfield は常に、⼀連の
srcfields の最後に指定します。
<srcfields>
構⽂: (<field>|<quoted-str>)
説明: キー名または引⽤符で囲んだリテラルを指定します。
quoted-str
構⽂: "<string>"
説明: 引⽤符で囲んだリテラル
オプション引数
allrequired
構⽂: allrequired=<bool>
説明: 値を宛先フィールドに書き込むために、各イベント内にすべてのソースフィールドが存在している必
要があるかどうかを⽰します。デフォルトが allrequired=f の場合、宛先フィールドは常に書き込まれ、存在
しないソースフィールドは空⽂字列として処理されます。allrequired=t の場合は、すべてのソースフィール
ドが存在している場合にのみ、宛先フィールドに値が書き込まれます。
例
例 1:
ソース IP と宛先 IP アドレスをスラッシュで区切った、comboIP フィールドを追加します。
... | strcat sourceIP "/" destIP comboIP
例 2:
comboIP フィールドを追加して、次にフィールド値の発⽣回数をグラフに表⽰します。
host="mailserver" | strcat sourceIP "/" destIP comboIP | chart count by comboIP
例 3:
204
ホストおよびポートの値を組み合わせた address フィールドを「<ホスト>::<ポート>」の形式で追加します。
... | strcat host "::" port address
関連項⽬
eval
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、strcat コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
streamstats
説明
ストリーミングを利⽤して、サマリー統計情報をすべてのサーチ結果に追加します。
コマンドは eventstats コマンドと似ていますが、与えられたイベントの前のイベントを使⽤して各イ
ベントに適⽤する総統計を算出する点が異なっています。当該イベントを計算に含める場合は、current=true (デ
フォルト) を使⽤します。
streamstats
コマンドのように、streamstats コマンドでは streamstats によってサーチ結果のサマリー統計が計算されま
す。結果全体を処理する stats とは違い、 streamstats はイベントが特定された時点でそれぞれのイベントの統計
を計算します。
stats
構⽂
streamstats [current=<bool>] [window=<int>] [global=<bool>] [allnum=<bool>] <stats-agg-term>* [<by
clause>]
必要な引数
stats-agg-term
構⽂: <stats-func>( <evaled-field> | <wc-field> ) [AS <wc-field>]
説明: オプションとして新しいフィールド名に名前を変更できる統計指定⼦。指定⼦には、フィールドに
aggregation 関数を適⽤、または⼀連のフィールドセット、または任意の eval 式に aggregation 関数を適
⽤したものを利⽤できます。
オプション引数
current
構⽂: current=<bool>
説明: 真 (True) の場合、与えられた (現在の) イベントをサマリー計算に含めます。偽 (False) の場合、前
のイベントからのフィールド値が使⽤されます。
デフォルト: 真 (True)
window
構⽂: window=<int>
説明: 「window」オプションは、統計を計算する際に使⽤するイベント数を⽰します。
デフォルト: 0。 前のすべてのイベント (と現在のイベント) が使⽤されます。
global
構⽂: global=<bool>
説明: window がグローバル、または by 句の各フィールドを対象とするかを定義します。global が偽
(False) の場合に window を 0 以外の値に設定すると、group by フィールドの各グループ値に対して別個
のウィンドウが使⽤されます。
デフォルト: 真 (True)
allnum
構⽂: allnum=<bool>
説明: true の場合、各フィールドについて、フィールドのすべての値が数値である場合に限り統計計算を⾏
います。
デフォルト : 偽 (False)
by 句
構⽂: by <field-list>
説明: グループに分類する⼀つまたは複数のフィールドの名前です。
Stats 関数のオプション
stats-function
構⽂: avg() | c() | count() | dc() | distinct_count() | first() | last() | list() | max() | median() | min() |
mode() | p<in>() | perc<int>() | per_day() | per_hour() | per_minute() | per_second() | range() | stdev() |
stdevp() | sum() | sumsq() | values() | var() | varp()
説明: stats コマンドで使⽤される関数です。stats コマンドの起動時に、複数の関数を使⽤できます。⼀⽅
で、by clause は 1 つのみ利⽤できます。stats 関数のほか、その説明と例を含む⼀覧については、「統計お
よびグラフ関数 」を参照してください。
205
例
例 1
あなたは毎⽇⼀意のユーザー数を追跡しており、⼀意のユーザーの累積カウントを追跡したいと考えています。こ
の例では、⼀意のユーザー数の現時点での合計の推移を計算します。
eventtype="download" | bin _time span=1d as day | stats values(clientip) as ips dc(clientip) by day | streamstats
dc(ips) as "Cumulative total"
コマンドは、時間を⽇数に分割します。stats コマンドは、⼀意のユーザー数 (clientip) と⽇当たりのユー
ザーカウントを計算します。streamstats コマンドは、その時点までの⼀意のユーザーカウントを検索します。
bin
このサーチから返されるテーブルには
day、ips、dc(clientip)、Cumulative total
が含まれます。
例 2
streamstats
を使い、category 値の時間ごとの累積合計を⽣成します。
... | timechart span=1h sum(value) as total by category | streamstats global=f sum(total) as accu_total
コマンドは、イベントを 1 時間のスパンに区分して、各カテゴリの合計値をカウントしています。ま
た、timechart コマンドは、⽋損値がないように NULL 値も記⼊します。次に streamstats コマンドを使って、累
積合計を算出しています。
timechart
例 3
streamstatsを使い、MAC
アドレス 54:00:00:00:00:00 の DHCP IP リースアドレスの変更時期を確認します。
source=dhcp MAC=54:00:00:00:00:00 | head 10 | streamstats current=f last(DHCP_IP) as new_dhcp_ip last(_time) as
time_of_change by MAC
DHCP IP アドレス変更およびその発⽣時刻を表⽰するテーブルを表⽰するために、プレゼンテーションをクリー
ンアップすることもできます。
source=dhcp MAC=54:00:00:00:00:00 | head 10 | streamstats current=f last(DHCP_IP) as new_dhcp_ip last(_time) as
time_of_change by MAC | where DHCP_IP!=new_dhcp_ip | convert ctime(time_of_change) as time_of_change | rename
DHCP_IP as old_dhcp_ip | table time_of_change, MAC, old_dhcp_ip, new_dhcp_ip
詳細は、この例に関する Splunk プログを参照してください。
その他の例
例 1:
バーの値を持つ 5 件のイベント (ウィンドウサイズで指定) のみを含めて、各バーの値に対して、foo の平均値を
算出します。
... | streamstats avg(foo) by bar window=5 global=f
例 2:
各イベントに対して、過去 5 件のイベントに対する foo フィールドの平均を算出します (現在のイベントを含
む)。trendline sma5(foo) を実⾏するのと同じです。
... | streamstats avg(foo) window=5
例 3:
現在までに発⾒されているイベント数 (当該イベントも含む) を表す count フィールドを各イベントに追加しま
す。たとえば、最初のイベントには 1 が、2 番⽬のイベントには 2 が追加されます。
... | streamstats count
現在のイベントを含めない場合は、以下のように指定します。
... | streamstats count current=f
関連項⽬
accum、autoregress、delta、fillnull、eventstats、stats、streamstats、trendline
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、streamstats コマンド
206
の使⽤⽅法に関する質問と回答をご覧いただけます。
table
説明
結果を保持するフィールドを指定できる点で、table コマンドは
を保持したい場合は table コマンドを使います。
fields
コマンドと似ています。表の形式でデータ
コマンドは、データの離散値間の関係の傾向を表す、散布図の作成に利⽤できます。それ以外の場合は、こ
れをグラフ (chart や timechart など) には使⽤しないでください。グラフを⽣成表⽰するためには内部フィールド
(アンダースコア「_」で始まるフィールド*) が必要ですが、table コマンドのデフォルトでは、これらのフィール
ドが結果から削除されます。代わりに、すべての内部フィールドを常に保持する fields コマンドを使⽤してくだ
さい。
table
構⽂
table <wc-field-list>
引数
<wc-field-list>
構⽂: <wc-field> <wc-field> ...
説明: ワイルドカードを含めることのできるフィールド名のリスト
使⽤⽅法
コマンドは、引数に指定されたフィールドのみで作成されたテーブルを返します。列は、フィールドの指定
順序と同じ順番で表⽰されます。列の⾒出しはフィールド名になります。⾏はフィールドの値になります。各⾏が
イベントを表しています。
table
フィールドの名前変更。 table コマンドではフィールド名を変更できません。テーブルに表⽰したいフィールド
のみを指定してください。フィールド名を変更したい場合は、結果を table に渡す前に⾏ってください。
結果の切り詰め。 table コマンドは、limits.conf [search] パラメータの truncate_report が 1 の場合に、返される
結果数を切り詰めます。結果数は [search] max_count の制限で制御されます。truncate_report が 0 の場合、この
max_count は適⽤されません。
例
例 1
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それを Splunk への⼊⼒として
追加できます。
カリフォルニア周辺の最近の地震データをサーチして、地震の発⽣時刻 (Datetime)、発⽣場所 (Region)、マグニ
チュード (Magnitude)、および深度 (Depth) のみを表⽰します。
index=usgs_* source=usgs place=*California | table time, place, mag, depth
これは、単純にイベントを表形式のテーブルに変換して、引数として指定したフィールドのみを表⽰します。
例 2
207
この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使⽤しています。
データはカンマ区切り形式の ASCII テキストファイルで、記録されている各地震のマグニチュード (mag)、座
標 (latitude、longitude)、地域 (place) が含まれています。
最新の CSV ファイルを USGS Earthquake Feeds からダウンロードして、それを Splunk への⼊⼒として
追加できます。
北カリフォルニアで発⽣した地震の⽇付、時刻、緯度/経度、およびマグニチュードを表⽰します。
index=usgs_* source=usgs place=*California | rename lat as latitude lon as longitude | table time, place, lat*,
lon*, mag
以下の例では、北カリフォルニア (Region="Northern
California")
で最近発⽣したすべての地震をサーチします。
次にそれらのイベントを rename コマンドに渡して緯度/経度フィールド (coordinate) の名前を lat および lon から
latitude と longitude に変更します(table コマンドではフィールド名を変更または再フォーマットできません。表
形式の結果に表⽰したいフィールドのみを指定してください)。
最後に結果を table コマンドに渡して、lat* と
を、time で⽇時を指定します。
lon*
で緯度/経度の両⽅のフィールドを、mag でマグニチュード
この例は、table コマンドの構⽂では、ワイルドカード * を使った複数のフィールドの指定⽅法を表しています。
例 3
この例では、チュートリアルのサンプルデータセットを使⽤していますが、Apache Web アクセスログ形式の
任意のデータを利⽤できます。「データの追加 」チュートリアルからデータセットをダウンロードして、それ
を Splunk に取り込んでください。次に、時間範囲に [全時間] を指定してこのサーチを実⾏します。
IP アドレスをサーチして、所属しているネットワークを分類します。
sourcetype=access_* | dedup clientip | eval network=if(cidrmatch("192.0.0.0/16", clientip), "local", "other") |
table clientip, network
この例では、Web アクセスデータをサーチして、dedup コマンドでサーバーにアクセスしている IP アドレス
(clientip) の重複値を削除します。結果は eval コマンドに渡されて、cidrmatch() 関数を使って IP アドレスとサブ
ネット範囲 (192.0.0.0/16) が⽐較されます。また、このサーチは if() 関数を使⽤して、clientip の値がサブネッ
ト範囲内に該当する場合、network に対して値 local を割り当てています。それ以外の場合は、network=other にな
ります。
次に結果が
れます。
table
コマンドに渡されて、⼀意の IP アドレス (clientip) とネットワーク分類 (network) のみが表⽰さ
208
その他の例
例1: フィールド foo、bar と、「baz」から始まるすべてのフィールドのテーブルを作成します。
... | table foo bar baz*
関連項⽬
フィールド
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、table コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
tags
説明
サーチ結果の指定フィールドに、タグを使って注釈を付けます。フィールドが指定されている場合、それらの
フィールドに対してのみタグで注釈を付けます。それ以外の場合はすべてのフィールドでタグを検索します。
outputfield を指定した場合、すべてのフィールドのタグがこのフィールドに書き込まれます。outputfield を指定
した場合、inclname および inclvalue で、出⼒フィールドにフィールド名およびフィールド値を追加するかどう
かを制御します。デフォルトでは、タグ ((<フィールド>::)?(<値>::)?tag) のみが outputfield に書き込まれま
す。
構⽂
tags [outputfield=<field>] [inclname=<bool>] [inclvalue=<bool>] <field-list>
必要な引数
<field-list>
構⽂: <field> <field> ...
説明: タグで注釈を付けるフィールドを指定します。
オプション引数
outputfield
構⽂: outputfield=<field>
説明: 指定した場合、すべてのフィールドのタグがこのフィールドに書き込まれます。そうでない場合は、
各フィールドのタグは「tag::<field>」という名前のフィールドに書き込まれます。
inclname
構⽂: inclname=T|F
説明: outputfield を指定した場合に、出⼒フィールドにフィールド名を追加するかどうかを指定します。
デフォルト : F
inclvalue
構⽂: inclvalue=T|F
説明: outputfield を指定した場合に、出⼒フィールドにフィールド値を追加するかどうかを指定します。
デフォルト : F
例
例 1:
host および eventtype フィールドのタグを、tag::host および tag::eventtype に書き込みます
... | tags host eventtype
例 2:
新しい test フィールドに、すべてのフィールドのタグを書き込みます
... | tags outputfield=test
例 3:
host および sourcetype のタグを、test フィールドに「host::<タグ>」または「sourcetype::<タグ>」の形式で
書き込みます。
... | tags outputfield=test inclname=t host sourcetype
関連項⽬
eval
209
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、tags コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
tail
説明
指定した結果の最後の N 件をサーチ順序に返します。整数の指定がない場合は 10 件を返します。イベントは、
結果セットの最後から逆順で返されます。
構⽂
tail [<N>]
必要な引数
<N>
構⽂: <int>
説明: 返す結果数。指定しない場合は、デフォルトの 10 が使⽤されます。
例
例 1:
最後の 20 件の結果を逆順番で返します。
... | tail 20
関連項⽬
head、reverse
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、tail コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
timechart
説明
対応する統計情報テーブルで、タイムライングラフを作成します。時間グラフは X 軸を時間とするフィールドに
適⽤される統計的集計です。split-by フィールドを指定し、それぞれの異なる値をシリーズにできます。eval 式を
使⽤する場合は split-by 句が必要となります。limit と agg オプションでは、シリーズのフィルタリングを指定で
きます。where 句が明⽰的に指定されている場合、これらのオプションは無視されます。limit=0 と設定した場合
はシリーズのフィルタリングが⾏われません。
構⽂
timechart [sep=<string>] [format=<string>] [partial=<bool>] [cont=<t|f>] [limit=<int>] [agg=<stats-aggterm>] [<bins-option> ]* ( (<single-agg> [by <split-by-clause>] ) | (<eval-expression>) by <split-byclause> )
必要な引数
timechart 引数を指定する場合は、single-agg または eval-expression が必要になります。
eval-expression
構⽂: <math-exp> | <concat-exp> | <compare-exp> | bool-exp> | <function-call>
Description: 宛先フィールドの値を表す、リテラル、フィールド、演算⼦、および関数の組み合わせ。こ
れらの評価が正常に機能するためには、操作の種類に応じて有効な値を使⽤する必要があります。たとえ
ば、追加の例外処理では、値が数値でないと算術操作で有効な結果を得ることはできません。また、サーチ
では 2 つのオペランドが両⽅とも⽂字列の場合、それを連結することができます。ピリオドが値を連結する
場合は、実際のデータ種類に関係なく両⽅の値が⽂字列として処理されます。
single-agg
構⽂: count|<stats-func>(<field>)
説明: 評価フィールドなど、単⼀フィールドに適⽤される単⼀の集計ワイルドカードは使⽤できません。イ
ベントにまとめて適⽤する集計⼦「 count」を使⽤する場合を除き、フィールドを指定する必要がありま
す。
split-by-clause
構⽂: <field> (<tc-option>)* [<where-clause>]
説明: 分割するフィールドフィールドが数値の場合、デフォルトの離散化が適⽤されます。離散化は、tc-
210
option
で定義されます。
オプション引数
agg=<stats-agg-term>
構⽂: <stats-agg-term>
説明: 以下の Stats 関数のセクションを参照してください。統計関数のほか、その説明と例を含む⼀覧につ
いては、「統計およびグラフ関数」を参照してください。
bins-option
構⽂: bins | minspan | span | <start-end>
説明: 情報をまとめるために、離散化のビンまたはグループを指定できるオプションです。このbins オプ
ションでは、対象とするビンの数ではなく、ビンの最⼤数を設定します。
デフォルト: bins=100
cont
構⽂: cont=<bool>
説明: グラフが連続かどうかを指定します。true の場合、サーチアプリケーションによって時間のギャッ
プが解消されます。
デフォルト: 真 (True)
fixedrange
構⽂: fixedrange=<bool>
説明: (4.2 では無効) サーチのもっとも早い/もっとも遅い時刻を使⽤するかどうかを⽰します。偽 (False)
を設定すると、時間グラフが有効なデータの時間範囲のみに制限されます。
デフォルト: 真 (True)
format
構⽂: format=<string>
説明: 複数のデータシリーズを split-by フィールドと共に使⽤する場合に適した出⼒フィールドの名前を作
成します。format は sep に優先し、stats 集計⼦および関数 ($AGG$) および split-by フィールドの値
($VALUE$) を使って、パラメータ化した式を指定することができます。
limit
構⽂: limit=<int>
説明: シリーズフィルタリングの限度を指定します。limit=0 の場合、フィルタリングされません。デフォ
ルトでは limit=N の設定によって、各シリーズの合計に基づく上位 N 件の値がフィルタリングされます。
partial
構⽂: partial=<bool>
説明: 部分時間ビンを保持するかどうかを⽰します。部分時間ビンになり得るのは最初と最後のビンだけで
す。
デフォルト: 真 (True)部分時間ビンが保持されます。
sep
構⽂: sep=<string>
説明: 複数のデータシリーズを split-by フィールドと共に使⽤する場合に適した出⼒フィールドの名前を作
成します。これは、format に $AGG$<sep>$VALUE$ を設定したのと同等の意味を持ちます。
Stats 関数
stats-agg-term
構⽂: <stats-func>( <evaled-field> | <wc-field> ) [AS <wc-field>]
説明: オプションとして新しいフィールド名に名前を変更できる統計指定⼦。指定⼦には、フィールドに
aggregation 関数を適⽤、または⼀連のフィールドセット、または任意の eval 式に aggregation 関数を適
⽤したものを利⽤できます。
stats-function
構⽂: avg() | c() | count() | dc() | distinct_count() | earliest() | estdc() | estdc_error() | exactperc<int>()
| first() | last() | latest() | list() | max() | median() | min() | mode() | p<in>() | perc<int>() | per_day() |
per_hour() | per_minute() | per_second() |range() | stdev() | stdevp() | sum() | sumsq() |
upperperc<int>() | values() | var() | varp()
説明: time chart コマンドで使⽤される関数です。time chart コマンドの起動時に複数の関数を指定できま
す。ただし、by 句は 1 つだけ指定できます。これらの関数の解説と例については、「統計およびグラフ関
数」を参照してください。
bins のオプション
bins
構⽂: bins=<int>
説明: 離散化に使⽤するビンの最⼤数。ターゲットビン数を設定する訳ではありません。(100 以下の⼀意の
ビンとなる、最⼩のビンが探されます。100 または 300 を指定しても、結果となるビン数は⼤幅に低くな
ります。)
デフォルト: 100
minspan
構⽂: minspan=<span-length>
説明: 計算で使⽤するスパンをデータの時間範囲から⾃動的に推測する際、スパンが取ることのできる最低
値を指定します。
span
構⽂: span=<log-span> | span=<span-length>
211
説明: 時間に基づくスパンまたは対数 (log) に基づくスパンを使って、各ビンのサイズを設定します。
<start-end>
構⽂: end=<num> | start=<num>
説明: 数値ビンの最⼩/最⼤範囲を設定します。[start, end] の範囲外のデータは破棄されます。
L og-sp a n 構⽂
<log-span>
構⽂: [<num>]log[<num>]
説明: 対数に基づくスパンを設定します。最初の数値は係数です。2 番⽬の数値が底です。最初の数値を指
定する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなけれ
ばなりません (厳密に 1 より⼤きい)。
sp a n-length 構⽂
span-length
構⽂: <int>[<timescale>]
説明: 時間に基づく各ビンのスパンタイムスケールを使⽤した場合、これは時間範囲として使⽤されます。
そうでない場合、これは絶対バケツ⻑になります。
<timescale>
構⽂: <sec> | <min> | <hr> | <day> | <week> | <month> | <subseconds>
説明: タイムスケールの単位
<sec>
構⽂: s | sec | secs | second | seconds
説明: タイムスケール (秒)
<min>
構⽂: m | min | mins | minute | minutes
説明: タイムスケール (分)
<hr>
構⽂: h | hr | hrs | hour | hours
説明: タイムスケール (時)
<day>
構⽂: d | day | days
説明: タイムスケール (⽇)
<week>
構⽂: w | week | weeks
説明: タイムスケール (週)
<month>
構⽂: mon | month | months
説明: タイムスケール (⽉)
<subseconds>
構⽂: us | ms | cs | ds
説明: タイムスケール(マイクロ秒 (us)、 ミリ秒 (ms)、 10ミリ秒 (cs)、 100ミリ秒 (ds) )
tc options
tc-option
構⽂: <bins-option> | usenull=<bool> | useother=<bool> | nullstr=<string> | otherstr=<string>
説明: フィールドによる分割の⽅法を指定するオプション
usenull
構⽂: usenull=<bool>
説明: シリーズが分割フィールドを持たないイベント向けに作成されるかどうか指定します。
nullstr
構⽂: nullstr=<string>
説明: usenull が真 (True) の場合、このシリーズには nullstr オプションの値でラベルが付けられます。
デフォルト: NULL
useother
構⽂: useother=<bool>
説明: <where-clause> の基準を満たさないためグラフに含まれていないデータシリーズに対して、シリーズ
を追加するかどうかを指定します。
デフォルト: 真 (True)
otherstr
構⽂: otherstr=<string>
説明: useother が真 (True) の場合、このシリーズには otherstr オプションの値でラベルが付けられます。
デフォルト: OTHER
where 句
where 句
構⽂: <single-agg> <where-comp>
212
説明: tc-by-clause にフィールドが指定されている場合に、特定のデータシリーズを含めるかどうかの基準
を指定します。⼀般的にこのオプションは、シリーズ内の質量分布を選択するのではなく、スパイクを選択
するために⽤いられます。デフォルトでは、濃度曲線下⾯積別上位 10 件のシリーズを探します。sum を
max に変更して、スパイクが⾼い上位 10 件のシリーズを探すこともできます。これに、where コマンドと
の関係はありません。
<where-comp>
構⽂: <wherein-comp> | <wherethresh-comp>
説明: where 句に設定する条件。
<wherein-comp>
構⽂: (in|notin) (top | bottom)<int>
説明: ある分類の上位または下位を集計するため、 where 句に指定する条件。
<wherethresh-comp>
Syntax: (<|>)( )?<num>
説明: 集計値の閾値として、 where 句に指定する条件。
ビンのタイムスパンと per_* 関数
per_day()、per_hour()、per_minute()、および per_second()
関数は集計関数で、結果となるグラフのタイムスパンの
設定は⾏いません。これらの関数は、スパンが明⽰的に指定されていない場合に、データの⼀貫したスケールを取
得するために利⽤されます。結果となるスパンは、サーチの時間範囲によって異なります。
たとえば、per_hour() は時間当たりのレート、または sum()/<スパン内の時間数> となるようにフィールド値を変
換します。グラフの終了スパンが 30m の場合は、sum()*2 になります。
スパンを 1h にする場合は、サーチに引数
span=1h
を指定する必要があります。
注意: 1 つのフィールドでは per_hour() を、同じサーチの別のフィールドでは
る組み合わせ)を実⾏できます。
per_minute()
(または関数のあらゆ
split-by フィールドに関する注意
または timechart を使⽤する場合、関数内に指定したフィールドを split-by フィールドとして使⽤すること
はできません。たとえば、以下のコマンドを実⾏することはできません。
chart
... | chart sum(A) by A span=log2
ただし、eval 式を使ってこの問題に対処することができます。以下に例を⽰します。
... | eval A1=A | chart sum(A) by A1 span=log2
例
例 1
この例では、『サーチチュートリアル』のサンプルデータセットとフィールドのルックアップを使⽤して、イ
ベントデータにさまざまな情報を追加します。この例を実⾏する前に:
サーチチュートリアルのこのトピック からデータ セットをダウンロードした後、指⽰に従って Splunk
にアップロードしてください。
『サーチチュートリアル』のこのトピック から CSV ファイルをダウンロードした後、指⽰に従って
フィールドルックアップを設定してください。
元のデータセットには、Buttercup Games オンラインストア で販売された商品のカタログ番号を表す
productId フィールドが含まれています。フィールドルックアップでは、項⽬の記述名である product_name とア
イテムの価格である price という新しいフィールドがイベントに追加されます。
昨⽇購⼊された各商品の収益をグラフ化します。
sourcetype=access_* action=purchase | timechart per_hour(price) by productName usenull=f useother=f
この例では、すべての購⼊イベント (action=purchase で定義) をサーチして、その結果を timechart コマンドに渡し
ます。per_hour() 関数は、それぞれの項⽬ (product_name) の price フィールドの値を合計し、 合計値をその⽇の各
時間にビン化します。
これは、[統計] タブに次の結果テーブルを⽣成します。
213
[視覚エフェクト] タブでのレポートを表⽰、フォーマットします。ここでは、スタック縦棒グラフとしてフォー
マットしています。
グラフを作成した後は、各セクションにカーソルを合わせることで、その時間帯に購⼊された商品のその他の測定
基準を表⽰できます。グラフには、データが時間ごとのスパンでは表⽰されないことにお気づきでしょうか。スパ
ンが指定されていないため (span=1hr など)、per_hour() 関数は値を、時間範囲 (ここでは 24 時間) 内の時間当
たりの合計となるように変換します。
例 2
この例では、『サーチチュートリアル』のサンプルデータセットとフィールドのルックアップを使⽤して、イ
ベントデータにさまざまな情報を追加します。この例を実⾏する前に、サーチチュートリアルのこのトピック
からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。
各商品タイプの⽇次購⼊数をグラフ化します。
sourcetype=access_* action=purchase | timechart span=1d count by categoryId usenull=f
この例では、すべての購⼊イベント (action=purchase で定義) をサーチして、その結果を timechart コマンドに渡し
ます。span=1day 引数は、その週の購⼊カウントを⽇単位にバケツ化します。usenull=f 引数により、categoryId に
NULL 値を含む任意のイベントが無視されます。
これは、[統計] タブに次の結果テーブルを⽣成します。
[視覚エフェクト] タブでのレポートを表⽰、フォーマットします。ここでは、縦棒グラフとしてフォーマットして
います。
214
各⽇およびその週の、異なる商品購⼊数を⽐較します。⽇単位で各商品の購⼊数はさほど変わらないようです。
例 3
この例では、『サーチチュートリアル』のサンプルデータセットとフィールドのルックアップを使⽤して、イ
ベントデータにさまざまな情報を追加します。この例を実⾏する前に:
サーチチュートリアルのこのトピック からデータ セットをダウンロードした後、指⽰に従って Splunk
にアップロードしてください。
『サーチチュートリアル』のこのトピック から CSV ファイルをダウンロードした後、指⽰に従って
フィールドルックアップを設定してください。
元のデータセットには、Buttercup Games オンラインストア で販売された商品のカタログ番号を表す
productId フィールドが含まれています。フィールドルックアップはイベントに新しいフィールド product_name
を追加します。これらのフィールドは、アイテムを説明する名前とアイテムのコスト (price ) です。
週における、各商品販売に対して得られた合計収益をカウントします。ここでは、そのための 2 種類の⽅法を記
載しています。
1. 最初のサーチは span 引数を使って、サーチ結果を 1 ⽇の単位でバケツ化しています。次に
て、各 product_name の price を追加します。
sum()
関数を使っ
sourcetype=access_* action=purchase | timechart span=1d sum(price) by product_name usenull=f
2. 2 番⽬のサーチでは、per_day() 関数を使って各⽇の
price
値の合計を計算しています。
sourcetype=access_* action=purchase | timechart per_day(price) by product_name usenull=f
いずれのサーチも [統計] タブに以下の結果テーブルを⽣成します。
[視覚エフェクト] タブでのレポートを表⽰、フォーマットします。ここでは、縦棒グラフとしてフォーマットして
います。
215
これで、各⽇およびその週の、商品購⼊による収益合計を⽐較することができます。
例 4
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。サーチチュートリアルのこのト
ピック からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次
に、事前設定されている時間範囲の [昨⽇] または [過去 24 時間] を使って、このサーチを実⾏します。
Buttercup Games オンラインストアでの 1 ⽇の参照/購⼊数をグラフ化します。
sourcetype=access_* | timechart per_hour(eval(method="GET")) AS Views, per_hour(eval(action="purchase")) AS
Purchases
このサーチは per_hour() 関数と eval 式を使ってページビュー (method=GET) 数と購⼊数 (action=purchase) をサーチし
ます。eval 式の結果は、それぞれ Views および Purchases に名前を変更します。
これは、[統計] タブに以下の結果テーブルを⽣成します。
[視覚エフェクト] タブでのレポートを表⽰、フォーマットします。ここでは、⾯グラフとして設定されています。
2 つの領域の差は、すべてのページ参照が購⼊につながっている訳ではないことを表しています。すべてのページ
参照が購⼊につながっていれば、両⽅の領域のオーバーレイが相互に完全に重なり 2 つの領域の差がなくなりま
す。
where 句の使⽤
これらの例は、where 句を使って、時系列グラフに返されるシリーズ値の数を制御しています。
例1: 最⼩カウント値に基づいて、5 つのまれなシリーズを表⽰します。その他のシリーズ値には「other」 (その
他) のラベルを設定します。
216
index=_internal | timechart span=1h count by source WHERE min in bottom5
例2: 最⼩値に基づいて、5 つのもっとも多いシリーズを表⽰します。その他のシリーズ値には「other」 (その他)
のラベルを設定します。
index=_internal | timechart span=1h count by source WHERE max in top5
これらの 2 つのサーチは、6 つのデータシリーズを返します。指定された 5 つの top または bottom シリーズ
と、other のラベルが設定されているシリーズです。「other」シリーズを⾮表⽰にするには、引数 useother=f を指
定します。
例3: INFO イベントのソースシリーズカウントを表⽰しますが、合計イベント数が 100 を超えるもののみを表⽰
します。その他のシリーズ値には「other」 (その他) のラベルを設定します。
index=_internal | timechart span=1h sum(eval(if(log_level=="INFO",1,0))) by source WHERE sum > 100
例4: where 句と count 関数を使って、期間の合計イベント数を測定します。これにより、sum 関数を使⽤する
場合と同様の結果が⽣成されます。
以下の 2 つのサーチは、合計イベント数が 100 件を超えるソースシリーズを返します。その他のシリーズ値には
「other」 (その他) のラベルを設定します。
index=_internal | timechart span=1h count by source WHERE count > 100
index=_internal | timechart span=1h count by source WHERE sum > 100
その他の例
例1: 各ホスト (host) に対して、毎分の平均「CPU」および平均「MEM」を算出します。
... | timechart span=1m eval(avg(CPU) * avg(MEM)) by host
例2: processor 別の cpu_seconds の平均を⼩数第 2 位で丸めた時間グラフを作成します。
... | timechart eval(round(avg(cpu_seconds),2)) by processor
例3: 各ホスト (host) に対して、CPU の毎分の平均値を算出します。
... | timechart span=1m avg(CPU) by host
例4: ホスト (host) 別の平均「cpu_seconds」の時間グラフを作成し、時間グラフの軸を歪める可能性があるデー
タ (範囲外の値) を削除します。
... | timechart avg(cpu_seconds) by host | outlier action=tf
例5: ホストの平均スループット (thruput) の推移をグラフ化します。
... | timechart span=5m avg(thruput) by host
例6: 使⽤例
sshd failed OR failure | timechart span=1m count(eventtype) by source_ip usenull=f where count>10
関連項⽬
bin, chart, sitimechart
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、timechart コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
top
説明
フィールドで⼀番多い値を表⽰します。
フィールドリスト内のすべてのフィールドの値の組から、もっとも頻繁に登場する組と、その数と割合を検索しま
す。オプションの by-clause を指定すると、group-by フィールドの各⼀意の値の組に対して最頻値が検索されま
す。
構⽂
top <top-opt>* <field-list> [<by-clause>]
必要な引数
<field-list>
217
構⽂: <field>, ...
説明: フィールド名のコンマ区切り形式のリスト。
<top-opt>
構⽂: countfield=<string> | limit=<int> | otherstr=<string> | percentfield=<string> |
showcount=<bool> | showperc=<bool> | useother=<bool>
説明: top のオプション
オプション引数
<by-clause>
構⽂: by <field-list>
説明: グループに分類する⼀つまたは複数のフィールドの名前です。
Top のオプション
countfield
構⽂: countfield=<string>
説明: タプルの数の値を書き込む新しいフィールドの名前です。
デフォルト: 「count」
limit
構⽂: limit=<int>
説明: 返すタプルの数を設定します。0 を指定するとすべてのタプルを返します。
デフォルト: .10
otherstr
構⽂: otherstr=<string>
説明: useother が true の時、すべての他の値を代表する⾏に書き込まれる値を設定します。
デフォルト: 「OTHER」
percentfield
構⽂: percentfield=<string>
説明: パーセントの値を書き込む新しいフィールドの名前です。
デフォルト: 「percent」
showcount
構⽂: showcount=<bool>
説明: count フィールド (countfield オプションを参照)およびその組のカウントを作成するかどうかを指
定します。
デフォルト: 真 (True)
showperc
構⽂: showperc=<bool>
説明: percent フィールド (percentfield オプションを参照) およびその組の相対普及度を作成するかどうか
を指定します。
デフォルト: 真 (True)
useother
構⽂: useother=<bool>
説明: 制限カットオフのために含まれない、すべての値を表す⾏を追加するかどうかを指定します。
デフォルト : false
例
例 1:
referer フィールドの、もっとも共通な値上位 20 件を返します。
sourcetype=access_* | top limit=20 referer
例 2:
各 referer_domain に対して、件数が上位の action 値を返します。
218
sourcetype=access_* | top action by referer_domain
制限が指定されているため、これは「action」と「referer_domain」のすべての値の組み合わせ、およびカウン
トとパーセンテージを返します。
例 3:
各カテゴリで購⼊件数が上位の製品を返しますが、パーセント (percent) フィールドは表⽰しません。また、カウ
ント (count) フィールドの名前を「total」に変更します。
sourcetype=access_* status=200 action=purchase | top 1 productName by categoryId showperc=f countfield=total
関連項⽬
rare、sitop、stats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、top コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
transaction
説明
transaction コマンドはさまざまな制約に対応するイベントに基づいて、トランザクションを特定します。トラン
ザクションは、各メンバーの raw テキスト (_raw フィールド)、もっとも古いメンバーの時刻/⽇付フィールド、お
よび各メンバーのその他すべてのフィールドの集合で構成されています。
また、transaction コマンドは raw イベントに 2 つのフィールド duration および eventcount を⽣成しま
す。duration の値は、トランザクション内の最初のイベントと最後のイベントのタイムスタンプの差で
す。eventcount の値は、トランザクション内のイベント数です。
トランザクションの詳細は、『サーチ』マニュアルを参照してください。
構⽂
transaction [<field-list>] [name=<transaction-name>] [<txn_definition-opt>]* [<memcontrol-opt>]*
[<rendering-opt>]*
オプション引数
field-list
構⽂: <field>+
219
説明: 1 つのフィールドまたはフィールド名のリストイベントは、このフィールドの値に基づいてトランザ
クションにグループ化されます。引⽤符で囲んだフィールドのリストを指定すると、各フィールドの値が同
じ場合にグループ化されます。
memcontrol-opt
構⽂: <maxopentxn> | <maxopenevents> | <keepevicted>
説明: これらのオプションでトランザクションによるメモリ消費を制御します。必須ではありませんが、0
個以上のオプションを使ってトランザクションを定義することができます。
name
構⽂: name=<transaction-name>
説明: transactiontypes.conf で設定されているトランザクションのスタンザ名を指定します。設定ファイル
のスタンザに定義されている設定を使⽤してサーチを実⾏します。このサーチにトランザクションの他の定
義オプション(maxspan など) を指定すると、設定ファイルの設定が上書きされます。
rendering-opt
構⽂: <delim> | <mvlist> | <mvraw> | <nullstr>
説明: これらのオプションはトランザクションの複数値表⽰を制御します。必須ではありませんが、0 個以
上のオプションを使ってトランザクションを定義することができます。
txn_definition-opt
構⽂: <maxspan> | <maxpause> | <maxevents> | <startswith> | <endswith> | <connected> |
<unifyends> | <keeporphans>
説明: これらのオプションを使ってトランザクションを定義します。必須ではありませんが、0 個以上のオ
プションを使ってトランザクションを定義することができます。
トランザクション定義オプション
connected=<bool>
説明: フィールドまたはフィールドのリストが指定されている場合にのみ関係します。transaction が必要と
するフィールドをイベントが保有しているけれども、トランザクション内でこれらのフィールドがどれもイ
ンスタンス化されていない場合 (前のイベントで追加)、新しいトランザクションを開始 (connected=t) また
はイベントをトランザクションに追加 (connected=f) します。
endswith=<filter-string>
説明: サーチまたは eval フィルタリング式。あるイベントがこの条件を満たすと、新しいトランザクション
の終了としてマークされます。
keeporphans= true | false
説明: トランザクションの⼀部ではない結果を出⼒するかどうかを指定します。「孤⽴」として渡される結
果は、孤⽴結果に対して 1 の値を持つ _txn_orphan フィールドがあるトランザクションイベントとは区別さ
れます。
デフォルト: false
maxspan=<int>[s|m|h|d]
説明: maxspan 制約は、トランザクションのイベントの期間を maxspan 未満に制限します。負の値を指定
した場合、maxspan 制約は無効になります。
デフォルト: -1 (無制限)
maxpause=<int>[s|m|h|d]
説明: maxpause 制約は、トランザクションの各イベント間の停⽌時間を maxpause 以下に制限します。負
の値を指定した場合、maxpause 制約は無効になります。
デフォルト: -1 (無制限)
maxevents=<int>
説明: 1 つのトランザクション内の最⼤イベント数です。負の値を指定した場合、この制約は無効になりま
す。
デフォルト: 1000
startswith=<filter-string>
説明: サーチまたは eval フィルタリング式。あるイベントがこの条件を満たすと、新しいトランザクション
の開始としてマークされます。
unifyends= true | false
説明: startswith/endswith 制約に⼀致するイベントが、イベントをトランザクションにまとめるために⽤い
られるフィールドにも、1 つ以上⼀致しなければならないかどうかを指定します。
デフォルト: false
⽂字列フィルタリングオプション
<filter-string>
構⽂: <search-expression> | (<quoted-search-expression>) | eval(<eval-expression>)
説明: サーチまたは eval フィルタリング式。あるイベントがこの条件を満たすと、新しいトランザクション
の終了としてマークされます。
<search-expression>
説明: 引⽤符を含まない有効なサーチ式
<quoted-search-expression>
説明: 引⽤符を含む有効なサーチ式
<Eval 式>
説明: 論理演算式を評価する有効な eval 式
220
メモリー制約オプション
keepevicted=<bool>
説明: 削除したトランザクションを出⼒するかどうかを指定します。closed_txn フィールドの値を確認すれ
ば、削除されたトランザクションと削除されていないトランザクションを判別することができます。削除さ
れた場合フィールドの値は 0 が、終了された場合は 1 が設定されます。maxevents、maxpause、
maxspan、startswith のいずれかの条件 (最後の条件については、トランザクションは時間の逆順にイベン
トを⾒るため、開始条件を満たしたらトランザクションを終了します) を満たす場合、「closed_txn」には
1 が設定されます。これらの条件がどれも指定されていない場合は、すべてのトランザクションの
「closed_txn」に 0 が設定されている場合でも、すべてのトランザクションが出⼒されます。メモリー制限
に達すると、トランザクションを 1 つ削除することもできます。
maxopenevents=<int>
説明: LRU ポリシーを使って、トランザクションの削除を開始する前に、開かれているトランザクションの
⼀部となるイベントの最⼤数を指定します。このフィールドのデフォルト値は、limits.conf の transactions
スタンザから読み込まれます。
maxopentxn=<int>
説明: LRU ポリシーを使って、トランザクションの削除を開始する前に、開いているプール内に保持する未
終了トランザクションの最⼤数を指定します。このフィールドのデフォルト値は、limits.conf の
transactions スタンザから読み込まれます。
複数値表⽰オプション
delim=<string>
説明: 複数の値を区切る⽂字を指定します。mvraw=t と連携使⽤した場合、_raw の値を区切るために使わ
れる⽂字列を表します。
デフォルト: " " (空⽩)
mvlist= true | false | <field-list>
説明: トランザクションの複数値フィールドを、元のイベントのリストの到着順に並べるか (mvlist=t)、ま
たは⼀連の⼀意のフィールド値を辞書式に並べるか (mvlist=f) を指定します。フィールドのカンマ/スペー
ス区切りリストを指定した場合、それらのフィールドのみをリストとして表⽰します。
デフォルト: 偽 (False)
mvraw=<bool>
Description: トランザクションサーチ結果の
ます。
デフォルト: 偽 (False)
_raw
フィールドを複数値フィールドとするかどうかを指定し
nullstr=<string>
説明: ⽋損フィールド値を、トランザクション内の複数値フィールドの⼀部として表⽰する際に使⽤する⽂
字列値。このオプションは、リストとして表⽰されるフィールドにのみ適⽤されます。
デフォルト: NULL
使⽤⽅法
複数値フィールドで定義されているトランザクションが、必ずしも論理積 (field1 AND field2 AND field3) または論
理和 (field1 OR field2 OR field3) と解釈されるわけではありません。フィールドリストのフィールドの間に過渡的
関係があり、関連するイベントが正しい順番で(それぞれに異なるタイムスタンプあり)発⽣している場
合、transaction コマンドはそれを使⽤しようとします。たとえば、次のサーチを実⾏すると:
... | transaction host cookie
以下のイベントがトランザクションにグループ化されます。
event=1 host=a
event=2 host=a cookie=b
event=3 cookie=b
例
例 1
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial]
からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範
囲に [その他] > [昨⽇] を指定してサーチを実⾏します。
同じ IP アドレスを共有する、Web アクセスイベントに基づくトランザクションを定義します。トランザクション
内の最初のイベントと最後のイベントの差は 30 秒以下でなければなりません。また、トランザクション内の各イ
ベントの間隔は 5 秒以内でなければなりません。
sourcetype=access_* | transaction clientip maxspan=30s maxpause=5s
これによって、以下のイベントリストが作成されます。
221
このサーチは、サーバーにアクセスした IP アドレスと時間制約に基づいて、イベントをグループ化します。host
や source などの、サーチ結果の⼀部のフィールドは、複数値フィールドになることもあります。たとえば、同じ
オフィス内から複数の⼈々が買い物した場合など、単⼀の IP からの要求が複数のホストから来る場合がありま
す。詳細は、『ナレッジ管理』マニュアルの「トランザクションについて」を参照してください。
例 2
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial]
からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範
囲に [その他] > [昨⽇] を指定してサーチを実⾏します。
と clientip の値の⼀意の組み合わせを持つ Web アクセスイベントに基づいて、トランザクションを定義しま
す。トランザクション内の最初のイベントと最後のイベントの差は 30 秒以下でなければなりません。また、トラ
ンザクション内の各イベントの間隔は 5 秒以内でなければなりません。
host
sourcetype=access_* | transaction clientip host maxspan=30s maxpause=5s
これによって、以下のイベントリストが作成されます。
例 1 のトランザクションとは対照的に、これらの各イベントは時間制約の制限内で、IP アドレス (clientip) と
host 値の、⼀意の組み合わせを保有しています。そのため、単⼀トランザクションのイベント内に、異なる host
または clientip アドレスの値は登場しないはずです。
例 3
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial]
からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範
囲に [その他] > [昨⽇] を指定してサーチを実⾏します。
単⼀の IP アドレスからの 10 分間の期間内に発⽣した 3 件のイベントを、購⼊トランザクションとして定義しま
す。
sourcetype=access_* action=purchase | transaction clientip maxspan=10m maxevents=3
このサーチは、action=purchase 値を持つ Web アクセスイベントに基づいて、購⼊イベントを定義します。これら
の結果は transaction コマンドに渡されます。このサーチは、同じ clientip を共有するイベントに基づいて、トラ
ンザクション (セッションが 10 分以内で 3 件以下のイベントを含む) を識別します。
これによって、以下のイベントリストが作成されます。
222
上記の結果では、異なるホストドメインから同じ IP アドレスが表⽰されています。
例 4
この例は、⽣成されたメールデータ (sourcetype=cisco_esa) を使⽤しています。この例のサーチ
は、sourcetype=cisco_esa をご⾃分のデータの sourcetype 値に変更することで、任意のメールデータに対して実
⾏できます。
(メッセージ ID)、icid (着信接続 ID)、および dcid (配信接続 ID) の値が同じである最⾼ 10 件までのイベン
ト、および「Message done」⽂字列を含むトランザクション内の最後のイベントのグループとして、メールトラ
ンザクションを定義します。
mid
sourcetype="cisco_esa" | transaction mid dcid icid maxevents=10 endswith="Message done"
これによって、以下のイベントリストが作成されます。
ここでは、各トランザクションには 10 件以下のイベントが存在していることが分かります。また、最後のイベン
トのイベント⾏には⽂字列「Message done」が含まれています。
例 5
この例は、⽣成されたメールデータ (sourcetype=cisco_esa) を使⽤しています。この例のサーチ
は、sourcetype=cisco_esa をご⾃分のデータの sourcetype 値に変更することで、任意のメールデータに対して実
⾏できます。
(メッセージ ID)、icid (着信接続 ID)、および dcid (配信接続 ID) の値が同じ、最⾼ 10 件のイベントのグルー
プを、メールトランザクションとして定義します。トランザクション内の最初のイベントと最後のイベントの差は
5 秒以下でなければなりません。また、各トランザクション内のイベント数は 10 件以下でなければなりません。
mid
223
sourcetype="cisco_esa" | transaction mid dcid icid maxevents=10 maxspan=5s mvlist=t
デフォルトで、サーチ結果内の複数値フィールドの値は抑制されています (mvlist=f)。このサーチで mvlist=t を指
定することにより、選択フィールドのすべての値を表⽰できます。これによって、以下のイベントリストが作成さ
れます。
ここでは、期間が 5 秒未満のトランザクションを参照できます。また、フィールドに複数の値が存在する場合
は、それぞれの値が表⽰されます。
例 6
この例は、サーチチュートリアルのサンプルデータセットを使⽤しています。[this topic in the tutorial]
からデータ セットをダウンロードした後、指⽰に従って Splunk にアップロードしてください。次に、時間範
囲に [全時間] を指定してこのサーチを実⾏します。
同じセッション ID (JSESSIONID)を持ち、同じ IP アドレス (clientip) からで、最初のイベントに⽂字列「signon」
が、最後のイベントに⽂字列「purchase」がある、⼀連のイベントグループをトランザクションとして定義しま
す。
sourcetype=access_* | transaction JSESSIONID clientip startswith="*signon*" endswith="purchase" | where duration>0
このサーチは startswith="*signon*" 引数を使って、トランザクション内の最初のイベントを⽂字列「signon」を含
むイベントとして定義しています。endswith="purchase" 引数は、トランザクション内の最後のイベントに対して同
様の処理を⾏います。
次に、トランザクションは where コマンドに渡され、完了までに 1 秒未満しかかかっていないすべてのトランザク
ションを、duration フィールドでフィルタリングしています。
トランザクションの処理に⻑時間がかかる理由を知りたい場合もあるでしょう。そのような場合にこれらのイベン
トを確認すると、トラブルシューティングに役⽴ちます。このデータでは確認できませんが、ユーザーが購⼊を完
了するまでの間に商品の追加、更新、削除などの操作を⾏っているために、トランザクションの完了まで時間がか
かっていることもあります。
その他の例
例1: 30 秒の期間内に発⽣し、各イベントが 5 秒以内に発⽣している、同じホストと cookie 値を持つサーチ結果
をグループ化します。
... | transaction host cookie maxspan=30s maxpause=5s
例2: 同じ「from」値を持ち、最⼤期間が 30 秒で、イベント間の停⽌が 5 秒以下のサーチ結果をトランザクショ
ンにグループ化します。
224
... | transaction from maxspan=30s maxpause=5s
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、transaction コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
transpose
説明
各サーチ⾏が列になるように、指定した⾏ (サーチ結果) 数を列 (フィールド値のリスト) として返します。
構⽂
transpose [int]
必要な引数
int
構⽂: <int>
説明: 転置する⾏数を制限します。
デフォルト: 5
例
例1: 各列がイベントを、各⾏がフィールド値を表すように、最初の 5 件のサーチ結果を転置します。
... | transpose
関連項⽬
fields、stats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、transpose コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
trendline
説明
フィールドの移動平均を算出します。単純移動平均 (sma)、指数移動平均 (ema)、および加重移動平均 (wma) を
使⽤できます。出⼒は指定した新規フィールドに書き込まれます。
SMA と WMA はともに period の最新の値の合計を計算します。WMA は古い値より最近の値を重視します。
EMA は次の公式を使って計算されます。
EMA(t) = alpha * EMA(t-1) + (1 - alpha) * field(t)
alpha = 2/(period + 1)
と
field(t)
がフィールドの現在値となるところ
構⽂
trendline <trendtype><period>(<field>) [AS <newfield>]
必要な引数
trendtype
構⽂: syntax = sma | ema | wma
説明: 計算する傾向のタイプです。現在サポートされている傾向のタイプは、単純移動平均 (sma)、指数移
動平均 (ema)、および加重移動平均 (wma) です。
period
構⽂: <num>
説明: 傾向の計算を⾏う期間を 2 から 10000 の整数で指定します。
<field>
構⽂: <field>
説明: 傾向を計算するフィールドの名前です。
オプション引数
<newfield>
構⽂: <field>
225
説明: 出⼒の書き込み先フィールド名を指定します。
デフォルト: <trendtype><period>(<field>)
例
例1: foo フィールドの 5 件のイベントの単純移動平均を算出し、新しいフィールド「smoothed_foo」に書き込み
ます。また、同じ⾏で bar フィールドの 10 件の指数移動平均を算出し、フィールド「ema10(bar)」に書き込み
ます。
... | trendline sma5(foo) as smoothed_foo ema10(bar)
例2: ⽉ごとのイベントのグラフに、trendline をオーバーレイします。
index="bar" | stats count by date_month | trendline sma2(count) as trend | fields * trend
関連項⽬
accum、autoregress、delta、streamstats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、trendline コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
tscollect
説明
コマンドはインデックスフィールドを使って、指定した名前空間内に時系列インデックス (tsidx)
ファイル を作成します。これらのファイルの結果テーブルは、すでにインデックスを作成したデータのサブセッ
トになります。tstats コマンドを利⽤して、raw データの代わりにこれらの tsidx ファイルをサーチして、レポー
トを作成することができます。インデックス全体のサブセットをサーチするため、サーチ処理を素早く完了するこ
とができます。
tscollect
では、同じ名前空間内に複数の tsidx ファイルを作成することができます。現在の tsidx ファイルが⼤き
くなりすぎたと判断されたら、新しい tsidx ファイルの作成が開始されます。
tscollect
注意: Splunk Enterprise 5.x からアップグレードする際に、そのリリースで実験版の tscollect コマンドを使⽤し
ていた場合、Splunk Enterprise 6.x での tsidx ファイルのフォーマットは、前のバージョンと互換性がありませ
ん。
重要: このコマンドの実⾏には「indexes_edit」権限が必要です。
構⽂
...| tscollect [namespace=<string>] [squashcase=<bool>] [keepresults=<bool>]
オプション引数
keepresults
構⽂: keepresults = true | false
説明: 真 (True) の場合、tscollect は⼊⼒として受け取った結果と同じ結果を出⼒します。偽 (False) の場
合、処理した結果数を返します (結果を保管する必要がないため効率的です)。
デフォルト: false
namespace
構⽂: namespace=<string>
説明: tsidx ファイルの場所を定義します。namespace が指定されている場合、tsidx ファイルはメイン
tsidxstats ディレクトリ ($SPLUNK_DB/tsidxstats) 下のその名前のディレクトリに書き込まれます。これらの名
前空間は、新たなデータを追加するために、複数回書き込めます。
デフォルト: 名前空間が指定されていない場合、ファイルはそのサーチのジョブディレクトリ内に書き込ま
れ、ジョブと同じだけ持続します。名前空間の場所は、indexes.conf の tsidxStatsHomePath 属性で設定するこ
ともできます。
squashcase
構⽂: squashcase = true | false
説明: field::value トークンを⽤語⽬録に配置する際に、⼤⽂字と⼩⽂字を区別するかどうかを指定しま
す。インデックスフィールド tsidx ファイルを Splunk と同様に作成するには、結果をすべて⼩⽂字に変換
するように squashcase=true を設定します。
デフォルト: false
例
例1: 結果テーブルを名前空間 foo の tsidx ファイルに書き込みます。
... | tscollect namespace=foo
例2: メインインデックスからイベントを取得して、foo フィールドの値を job ディレクトリの tsidx ファイルに
226
書き込みます。
index=main | fields foo | tscollect
関連項⽬
collect、stats、tstats
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、tscollect コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
tstats
説明
tstats コマンドは、tsidx ファイル内のインデックス作成されたフィールドに対して、統計クエリを実⾏する場合
に使⽤します。これらのフィールドは、標準のインデックスデータ、tscollect データ、または⾼速化されたデー
タモデルから取得される可能性があります。
構⽂
tstats [prestats=<bool>] [local=<bool>] [append=<bool>] [summariesonly=<bool>]
[allow_old_summaries=<bool>] [chunk_size=<unsigned int>] <stats-func> [ FROM ( <namespace> |
sid=<tscollect-job-id> | datamodel=<datamodel-name> )] [WHERE <search-query>] [( by | GROUPBY )
<field-list> [span=<timespan>] ]
必要な引数
<stats-func>
構⽂: count(<field>) | ( avg | dc | earliest | estdc | exactperc | first | last | latest | median | max | min |
mode | perc | p | range | stdev | stdevp | sum | sumsq | upperperc | values | var | varp )(<field>) [AS
<string>]
説明: フィールドに対して基本的なカウント操作を⾏うか、または関数を実⾏します。実⾏する任意の数の
集計操作を指定できます。prestats モードではない限り、「AS」を使って結果名を変更することも可能で
す。統計関数のほか、その説明と例を含む⼀覧については、「統計およびグラフ関数」を参照してくださ
い。
namespace
構⽂: <string>
説明: $SPLUNK_DB/tsidxstats で、tsidx ファイルの場所を定義します。名前空間の場所は、indexes.conf の
tsidxStatsHomePath 属性で設定することもできます。
sid
構⽂: sid=<tscollect-job-id>
説明: tscollect サーチ (tsidx ファイルを⽣成) のジョブ ID ⽂字列
datamodel
構⽂: datamodel=<datamodel-name>
説明: ⾼速化データモデルの名前
オプション引数
append
構⽂: append=<bool>
説明: prestats モード (prestats=t) の場合、prestats の結果を既存の結果に追加する (結果を⽣成するのでは
ない) append=t を有効にします。
allow_old_summaries
構⽂: allow_old_summaries=true | false
説明: ⾼速化されたデータモデルから選択する場合にのみ適⽤されます。偽 (False) を設定した場合、要約
されたディレクトリが最新の場合、それらのディレクトリからの結果のみを提供します。つまり、データモ
デル定義が変更された場合、tstats から出⼒を⽣成する際に、新しい定義よりも古いサマリーディレクトリ
は使⽤されません。このデフォルト動作により、tstats からの出⼒は常に現在の設定を反映することになり
ます。真 (True) を設定すると、tstats は現在のサマリーデータと、定義変更前に⽣成されたサマリーデータ
の両⽅を使⽤します。基本的にこれは⾼度なパフォーマンス機能で、古いサマリーが「⼗分に良好」である
ことが分かっている場合に使⽤します。
デフォルト: false
chunk_size
構⽂: chunk_size=<unsigned_int>
説明: 詳細オプション。この引数は、クエリーへの回答時に単⼀の TSIDX ファイルから 1 回に取得するイ
ベント数を制御します。クエリーが⼤量のメモリーを消費している場合にのみ、この値を⼩さくすることを
検討してください。このような事態としては、⼤量の⼀意の値を持つ複数のフィールドをグループ化するな
どの、過度の⾼濃度 split-by などが 挙げられます。この値が⼩さすぎると、クエリーの総合的な実⾏時間に
悪影響を及ぼす可能性があります。
デフォルト: 10000000
local
227
構⽂: local=true | false
説明: 真 (True) の場合、サーチヘッドでのみプロセッサを実⾏するように強制します。
デフォルト: false
prestats
構⽂: prestats=true | false
説明: 回答を prestats 形式で出⼒する場合に使⽤します。これにより、prestats の出⼒を取るchart や
timechart などの異なるタイプのプロセッサに、パイプを使って結果を渡すことができます。これはグラフ
視覚エフェクトを作成する場合にとても役⽴ちます。
デフォルト: false
summariesonly
構⽂: summariesonly=<bool>
説明: ⾼速化されたデータモデルから選択する場合にのみ適⽤されます。偽 (False) の場合、要約された
データと要約されていないデータの両⽅から結果を⽣成します。TSIDX データとして要約されていないデー
タの場合、オリジナルのインデックスデータに対して完全サーチ動作が使⽤されます。真 (True) を設定す
ると、「tstats」は⾼速化により⾃動⽣成された TSIDX データからのみ結果を⽣成し、要約されていない
データは提供されません。
デフォルト: false
<field-list>
構⽂: <field>, <field>, ...
説明: 1 つ以上のフィールドを指定して結果をグループ化します。
使⽤法
は⽣成コマンドなので、append モード (append=t) の場合を除き、サーチパイプライン内の最初のコマンド
でなければなりません。
tstats
選択されたデータ
tsidx フィールド内のインデックスされたフィールドに対して統計クエリーを実⾏するには、tstats コマンドを使
⽤します。データは 3 つの⽅法で選択できます。
1. 通常のインデックスデータ:FROM 句を指定しない場合 (名前空間、サーチジョブ ID、またはデータモデルを
指定する)、サーチと同じ⽅法でインデックスデータから選択されます。ロールで許可されているインデックスか
らの選択に限定されており、WHERE 句で選択するインデックスを厳密に制御することができます。WHERE 句
サーチにインデックスが指定されていない場合は、デフォルトのインデックスが使⽤されます。デフォルトでは、
ロールベースのサーチフィルタが適⽤されますが、limits.conf でこれをオフにすることができます。
2. tscollect を使った⼿動で収集されたデータ:FROM <namespace> で名前空間から 選択します。tscollect に名前
空間を指定しない場合、データはそのジョブの dispatch ディレクトリに収集されます。この場合、FROM
sid=<tscollect-job-id> を使ってそのデータから選択します。
3. ⾼速化データモデルのハイパフォーマンス分析ストア ( .tsidx データサマリーのコレクション) :FROM
datamodel=<datamodel-name> で⾼速化データモデルから選択します。
tsidx ファイルのサーチ時には、取得されたイベント内のカウントに不整合が⽣じることがあります。これは、
tsidx ファイル内のインデックスされたフィールドのトークンと raw トークンを区別することができないためで
す。⼀⽅、⾼速化データモデルに対して、または tscollect から tstats を実⾏すると、フィールドと値のみが保管
されており、raw トークンがないため、より明確な結果が得られます。
where によるフィルタリング
実⾏する任意の数の集合 (aggregate-opt) を指定できます。また、WHERE キーワードを使ってクエリーをフィル
タリングすることができます。このクエリーは、サーチプロセッサ内で使⽤する標準のクエリーと似ています。こ
れは、search とすべて同⼀のサーチ引数をサポートしています (earliest=-1y など)。
_time によるグループ化
任意の数の GROUPBY フィールドを指定できます。_time でグループ化する場合は、時間バケツでグループ化す
るための期間を span で指定する必要があります。この期間は、「span='1hr'」や「'3d'」のような、Splunk で通
常使⽤される期間と似ています。また、「auto」もサポートしています。
例
例1:
mydata
名前空間内のすべてのイベント数を取得します。
| tstats count FROM mydata
例2:
mydata
の
foo
フィールドの平均を返します。
bar
は
value2
で、
baz
は 5 より⼤きい値になります。
| tstats avg(foo) FROM mydata WHERE bar=value2 baz>5
例3: host=x のイベントに対して、ソース別カウントを与えます。
| tstats count where host=x by source
例4: デフォルトのインデックス内のすべてのデータのタイムチャートを⽇単位の粒度で与えます。
228
| tstats prestats=t count by _time span=1d | timechart span=1d count
例5: prestats モードと append モードを使って、異なる名前空間内に存在する foo と bar の中央値を算出しま
す。
| tstats prestats=t median(foo) from mydata | tstats prestats=t append=t median(bar) from otherdata | stats
median(foo) median(bar)
例6:
summariesonly
引数を使って、⾼速化されたデータモデル
mydm
のサマリーの時間範囲を取得しています。
| tstats summariesonly=t min(_time) as min, max(_time) as max from datamodel=mydm | eval prettymin=strftime(min,
"%c") | eval prettymax=strftime(max, "%c")
例7: summariesonly と timechart を使⽤して、⾼速化されたデータモデル
のサマリーが作成されたかを表します。
mydm
の、過去 1 時間にどのようなデータ
| tstats summariesonly=t prestats=t count from datamodel=mydm by _time span=1h | timechart span=1h count
関連項⽬
stats、tscollect
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、tstats コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
typeahead
説明
指定されたプレフィックスで最⼤ count 件の結果を返します。typeahead コマンドはインデックスをターゲットとし
て使⽤します。その動作を時間で制限できます。
構⽂
typeahead prefix=<string> count=<int> [max_time=<int>] [<index-specifier>] [<starttimeu>] [<endtimeu>]
[collapse]
必要な引数
prefix
構⽂: prefix=<string>
説明: typeahead 情報を返すための、完全なサーチ⽂字列。
count
構⽂: count=<int>
説明: 返す結果の最⼤数。
オプション引数
index-specifier
構⽂: index=<string>
説明: デフォルトインデックスではなく、指定されたインデックスをサーチします。
max_time
構⽂: max_time=<int>
説明: typeahead を実⾏できる最⼤時間 (秒)。max_time=0 の場合、制限はありません。
startimeu
構⽂: starttimeu=<int>
説明: 開始時間を UNIX時で、エポック時から N 秒後にします。
デフォルト: 0
endtimeu
構⽂: endtimeu=<int>
説明: 終了時間を UNIX時で、エポック時から N 秒後にします。
デフォルト : now
collapse
構⽂: collapse=<bool>
説明: 他の単語のプレフィックスでイベントカウントが同じ単語を表⽰しないかどうかを指定します。
デフォルト: 真 (True)
Typeahead および sourcetype の名前変更
props.conf の sourcetype の名前を変更した後、キャッシュのデータが消去されるまで 5 分ほどかかります (正確
な時間はサーバーの性能によります)。この間の typeahead サーチでは、依然としてキャッシュされているソースタ
イプが返されます。これは想定されている動作です。
229
キャッシュされたデータを削除するには、ターミナルで以下のコマンドを実⾏します。
rm $SPLUNK_HOME/var/run/splunk/typeahead/*, then re-run the typeahead search.
typeahead
を再度実⾏すると、名前が変更されたソースタイプが表⽰されます。
詳細は、『データの取り込み』マニュアルの「ソースタイプ名の変更」を参照してください。
例
例 1:
インデックス「_internal」内のソースの先⾏⼊⼒情報を返します。
| typeahead prefix=source count=10 index=_internal
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、typeahead コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
typelearner
説明
以前のサーチの結果から、推奨するイベントタイプを⽣成し、イベントタイプとして使⽤できるサーチのリストを
作成します。デフォルトで、typelearner コマンドは grouping-field の値に従って、最初にイベントをグループに
分類します。そして、含まれているキーワードに沿って分類されたグループをひとつに結合します。
構⽂
typelearner [grouping-field] [grouping-maxlen]
オプション引数
grouping-field
構⽂: <field>
Description: 最初にイベントをグループ化するときに使⽤する
す。
デフォルト: punct, 以下で⾒られる符号: _raw
typelearner
のための値をもつフィールドで
grouping-maxlen
構⽂: maxlen=<int>
説明: grouping-field 内で注⽬する⽂字数を指定します。負の値を設定すると、grouping-field の値全体が
イベントのグループ化に使⽤されます。
デフォルト: 15
例
例 1:
サーチはイベントタイプを⾃動的に発⾒し、サーチ結果に適⽤します。
... | typelearner
関連項⽬
typer
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、typelearner コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
typer
説明
既知のイベントタイプをもつサーチ結果の「eventtype」フィールドを計算します。
構⽂
typer
230
例
例 1:
サーチが設定されているイベントタイプを強制的に適⽤するようにします (「eventtype」フィールドを参照した
時に、Splunk Web は⾃動的にこれを⾏います)。
... | typer
関連項⽬
typelearner
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、typer コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
uniq
説明
コマンドはサーチ結果のフィルターです。このコマンドは、渡すサーチ結果のフィルタとして機能します。こ
のコマンドは引数を取りません。
uniq
注意: ⼤きなデータセットに対してこのコマンドを実⾏することはお勧めしません。
構⽂
uniq
例
例 1:
過去 1 時間のすべての Web トラフィックから⼀意の結果のみを保持します。
eventtype=webtraffic earliest=-1h@s | uniq
関連項⽬
dedup
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、uniq コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
untable
説明
結果を、表形式から stats 出⼒に似た形式に変換します。このコマンドは xyseries と逆の処理を⾏います。
構⽂
untable <x-field> <y-name-field> <y-data-field>
必要な引数
<x-field>
構⽂: <field>
説明: X 軸として使⽤するフィールド
<y-name-field>
構⽂: <field>
説明: データシリーズのラベルとして使⽤する値を含むフィールド
<y-data-field>
構⽂: <field>
説明: グラフ化するデータを持つフィールド
例
231
例1: サーチ結果を再フォーマットします。
... | timechart avg(delay) by host | untable _time host avg_delay
関連項⽬
xyseries
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、untable コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
where
説明
コマンドは eval 式を使ってサーチ結果をフィルタリングします。サーチには、評価に成功した (論理結果が
真(true)) 結果のみが維持されます。
where
コマンドは、eval と同じ式構⽂を使⽤します。また、両⽅のコマンドが、引⽤符で囲まれた⽂字列をリテラ
ルと解釈します。引⽤符で囲まれていない⽂字列はフィールドとして取り扱われます。このため、where を使っ
て、search ではできない 2 つの異なるフィールドを⽐較することができます。
where
構⽂
where <eval-expression>
必要な引数
Eval 式
構⽂: <string>
説明: 宛先フィールドの値を表す、値、変数、演算⼦、および関数の組み合わせ。
サーチの実⾏前に eval 式の構⽂がチェックされ、無効な式の場合には例外が⽣成されます。
eval ステートメントの結果が、論理値になることは禁⽌されています。指定されたイベントに対して式を正
常に評価できなかった場合、結果フィールドの値は消去されます。
英数字以外の⽂字を含むフィールド名を式が参照する場合は、それを単⼀引⽤符 で囲む必要があります
(例:new=count+'server-1')。
英数字以外の⽂字を含むリテラル⽂字列 を式が参照する場合は、それを⼆重引⽤符 で囲む必要があります
(例:new="server-"+count)。
関数
where コマンドには以下の関数が⽤意されています。
abs, case, ceil, ceiling, cidrmatch, coalesce, commands,
exact, exp, floor, if, ifnull, isbool, isint, isnotnull, isnull, isnum, isstr, len, like, ln, log, lower, ltrim,
match, max, md5, min, mvappend, mvcount, mvindex, mvfilter, mvjoin, mvrange, mvzip, now, null, nullif, pi, pow,
random, relative_time, replace, round, rtrim, searchmatch, sha1, sha256, sha512, sigfig, spath, split, sqrt,
strftime, strptime, substr, time, tonumber, tostring, trim, typeof, upper, urldecode, validate.
これらの関数の説明と例 については「評価関数」を参照してください。
例
例1: IP が⼀致するか、または指定したサブネット内に存在する「CheckPoint」イベントを返します。
host="CheckPoint" | where like(src, "10.9.165.%") OR cidrmatch("10.9.165.0/25", dst)
例2: 速度が 100 より⼤きい「physicjobs」イベントを返します。
sourcetype=physicsjobs | where distance/time > 100
関連項⽬
eval、search、regex
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、where コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
x11
232
説明
コマンドは、時間ベースのデータシリーズのシーズン的パターンを調査し、それを除外して実際の傾向を確認
するために役⽴ちます。このコマンドの⽬的は、trendline コマンドと似ていますが、より洗練されて業界に普及
している X11 ⼿法を採⽤しています。
x11
時系列データのシーズンコンポーネントは、加法的または乗法的にすることができます。Splunk では、x11 で計
算を⾏うための 2 種類のシーズナリティとして定義されています。加法的な場合は、add() を、乗法的な場合は
mult() を使⽤します。『サーチ』マニュアルの「予測分析について」を参照してください。
構⽂
x11 [<type>] [<period>=<int>] (<fieldname>) [as <newname>]
必要な引数
<fieldname>
構⽂: <field>
説明: シーズン的な傾向を計算するフィールド名
オプション引数
<type>
構⽂: add() | mult()
説明: 計算する x11 のタイプを指定します (加法的または乗法的)。
デフォルト: mult()
<period>
構⽂: <int>
説明: データポイント数と相対的なデータの期間で、5〜10000 の範囲の整数として表されます。period が
7 の場合、コマンドはデータの周期を 7 データポイントと想定します。指定しない場合は、⾃動的に周期が
算出されます。周期が 5 未満の場合このアルゴリズムは機能しません。また、10000 を超えると、処理が
極端に遅くなります。
<newname>
構⽂: <string>
説明: x11 出⼒のフィールド名を指定します。指定しない場合、デフォルトは「<タイプ><期間>(<フィー
ルド名>)」になります。
例
例1: 処理⽅法はデフォルトの「mult」、周期は 15 に設定します。
index=download | timechart span=1d count(file) as count | x11 mult15(count)
注意: この例では span が 1d なため、各データポイントが 1 ⽇に相当します。そのため、この例で周期は 15 ⽇
になります。
例2: ここでは、タイプに「add」を、周期に 20 を指定します。
iindex=download | timechart span=1d count(file) as count | x11 add20(count)
関連項⽬
233
predict、trendline
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、x11 コマンドの使⽤⽅
法に関する質問と回答をご覧いただけます。
xmlkv
説明
xmlkv
コマンドは、XML 形式のデータから⾃動的にフィールドを抽出します。たとえば、XML の
が含まれている場合、foo がキーで bar が値になります。
_raw
データに
<foo>bar</foo>
JSON 形式データの場合、spath コマンドを使⽤します。
構⽂
xmlkv maxinputs=<int>
必要な引数
maxinputs
構⽂: maxinputs=<int>
説明: ⼊⼒の最⼤数
例
例1: XML タグから⾃動的にフィールドを抽出します。
... | xmlkv
例2: 使⽤例
... | xmlkv maxinputs=10000
関連項⽬
extract、kvform、multikv、rex、spath、xpath
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、xmlkv コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
xmlunescape
説明
&、<、> といったエンティティへ参照など、xml ⽂字を解除し、対応する元の⽂字に戻します。たとえば、
は & になります。
&amp;
構⽂
xmlunescape maxinputs=<int>
必要な引数
maxinputs
構⽂: maxinputs=<int>
説明: ⼊⼒の最⼤数。
例
例1: すべての XML ⽂字のエスケープを解除します。
... | xmlunescape
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、xmlunescape コマンド
の使⽤⽅法に関する質問と回答をご覧いただけます。
234
xpath
説明
から xpath の値を抽出して、outfield 属性を設定します。
field
構⽂
xpath [outfield=<field>] <string:xpath> [field=<field>] [default=<string>]
必要な引数
xpath
構⽂: <string>
説明: XPath 参照を指定します。
オプション引数
field
構⽂: field=<field>
説明: 参照する xpath の値を検索し、抽出するフィールド
デフォルト: _raw
outfield
構⽂: outfield=<field>
説明: xpath の値を書き込むフィールド
デフォルト: xpath
default
構⽂: default=<string>
説明: xpath で参照されている属性が存在しない場合に、outfield に書き込む値を指定します。これが指定さ
れていない場合、デフォルト値はありません。
例
例1: m _raw XML イベントから
name
の値を抽出します。値はこのようになります:
<foo>
<bar name="spock">
</bar>
</foo>
sourcetype="xml" | xpath outfield=name "//bar/@name"
例2:
identity_id
と
instrument_id
を
_raw
XML イベントから抽出します。
<DataSet xmlns="">
<identity_id>3017669</identity_id>
<instrument_id>912383KM1</instrument_id>
<transaction_code>SEL</transaction_code>
<sname>BARC</sname>
<currency_code>USA</currency_code>
</DataSet>
<DataSet xmlns="">
<identity_id>1037669</identity_id>
<instrument_id>219383KM1</instrument_id>
<transaction_code>SEL</transaction_code>
<sname>TARC</sname>
<currency_code>USA</currency_code>
</DataSet>
... | xpath outfield=identity_id "//DataSet/identity_id"
このサーチは
identity_id=3017669
と
identity_id=1037669
の 2 つの結果を返します。
... | xpath outfield=instrument_id "//DataSet[sname=\"BARC\"]/instrument_id"
sname="BARC"
を指定したため、このサーチは次の 1 件の結果を返します:instrument_id=912383KM1
関連項⽬
extract、kvform、multikv、rex、spath、xmlkv
235
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、xpath コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
xyseries
説明
結果をグラフ化に適した形式に変換します。
構⽂
xyseries [grouped=<bool>] <x-field> <y-name-field> <y-data-field>...[sep=<string>] [format=<string>]
必要な引数
<x-field>
構⽂: <field>
説明: x-軸のフィールド。
<y-name-field>
構⽂: <field>
説明: データシリーズのラベルとして使⽤する値を含むフィールド
<y-data-field>
構⽂: <field> | <field>, <field>, ...
説明: グラフ化するデータを持つフィールド
オプション引数
format
構⽂: format=<string>
説明: 複数のデータシリーズと split-by 句が⼀緒に使⽤されている場合に、出⼒フィールド名の構築に⽤い
られます。format は sep に優先し、stats 集計⼦および関数 ($AGG$) および split-by フィールドの値
($VALUE$) を使って、パラメータ化した式を指定することができます。
grouped
構⽂: grouped= true | false
説明: 真 (True) の場合、⼊⼒は<x-field>の値でソートされ、複数ファイル⼊⼒が可能です。
デフォルト: false
sep
構⽂: sep=<string>
説明: 複数のデータシリーズを split-by フィールドと共に使⽤する場合に適した出⼒フィールドの名前を作
成します。これは、format に $AGG$<sep>$VALUE$ を設定したのと同等の意味を持ちます。
例
例1: 現在のサーチ結果のフォーマットを変更します。
... | xyseries delay host_type host
例2: stats と eval を xyseries コマンドを組み合わせ、複数のデータシリーズのレポートを作成する⽅法について
は、この⼿順を参照してください。
関連項⽬
untable
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、xyseries コマンドの使
⽤⽅法に関する質問と回答をご覧いただけます。
内部サーチコマンド
内部コマンドについて
内部サーチコマンドは、試験的なサーチコマンドです。今後のバージョンで削除されたり、更新されたり、別の機
能で再実装されたりする可能性があります。このようなコマンドは、サポート対象外となっています。
collapse
collapse コマンドは実験的なコマンドで、Splunk はサポートしていません。
236
説明
collapse コマンドは、複数ファイルの結果を chunksize で許可されているファイル数にまとめます。
outputlookup コマンドと outputcsv コマンドを使⽤すると、このコマンドが⾃動的に実⾏されます。
構⽂
...| collapse [chunksize=<num>] [force=<bool>]
オプション引数
chunksize
構⽂: chunksize=<num>
説明: 結果ファイル数を制限します。
デフォルト: 50000
force
構⽂: force=<bool>
説明: orce=true の場合、結果全体がメモリー内に残され、結果が適切なチャンクファイルに再分割されま
す。
デフォルト: false
例
例1: 結果を簡略化します。
... | collapse
dispatch
dispatch コマンドは不要になりました。すべての Splunk サーチがこのコマンドを使ったサーチとして実⾏され
ます。詳細は、「search コマンド」を参照してください。
dump
説明
dump コマンドは指定されたサーチクエリを実⾏し、イベントをローカルディスク上の⼀連のチャンクファイルに
エクスポートします。
コマンドはサーチ結果をエクスポートする 1 つの⽅法です。その他のエクスポート⽅法については、『サー
チ』マニュアルの「サーチ結果のエクスポート」を参照してください。
dump
構⽂
dump basefilename=<string> [rollsize=<number>] [maxlocal=<number>] [compress=<number>]
[format=<string>] [fields=<comma-delimited-string>]
必要な引数
basefilename
構⽂: basefilename=<string>
説明: エクスポートするファイル名のプリフィックス
オプション引数
compress
構⽂: compress=<number>
説明: gzip 圧縮レベル0〜9の値を指定します。0 は圧縮しないことを表しており、値を⼤きくするほど⾼圧
縮になりますが、書き込み速度は低下します。
デフォルト: 2
フィールド
構⽂: fields=<comma-delimited-string>
説明: データをエクスポートするためにエクスポートされた、Splunk イベントフィールドのリスト無効な
フィールドは無視されます。
format
構⽂: format= raw | csv | tsv | json | xml
説明: 出⼒データフォーマット
maxlocal
構⽂: maxlocal=<number>
説明: 許容できる最⼤ローカルディスク使⽤量 (MB)。この値に達すると、メモリー内データとローカルファ
イルがフラッシュされ、HDFS にエクスポートされます。
デフォルト: 1000
rollsize
237
構⽂: rollsize=<number>
説明: 最⼩ファイルサイズ (MB)。この値に達すると、ファイルにそれ以上のイベントは書き込まれず、
HDFS 転送の候補となります。
デフォルト: 64
使⽤⽅法
このコマンドは指定したサーチクエリを実⾏し、サーチ結果をローカルディスク上の
"$SPLUNK_HOME/var/run/splunk/dispatch/<sid>/dump" に 1 回エクスポートします。これは⼊⼒イベント
内の特別なフィールド _dstpath を認識します。このフィールドが設定されている場合、最終的な宛先パスを算出
するために、dst に追加するパスとしてそれが使⽤されます。
例
例1: すべてのイベントをインデックス「bigdata」から、ローカルディスク上の
「$SPLUNK_HOME/var/run/splunk/dispatch/<sid>/dump/」ディレクトリにある場所
「YYYYmmdd/HH/host」に、エクスポートファイル名のプリフィックスとして「MyExport」を付けてエクス
ポートします。エクスポートデータのパーティション分割は、dump コマンドの前に eval を使って⾏います。
index=bigdata | eval _dstpath=strftime(_time, "%Y%m%d/%H") + "/" + host | dump basefilename=MyExport
例2: すべてのイベントをインデックス「bigdata」からローカルディスクに、エクスポートファイル名のプリ
フィックスとして「MyExport」を付けてエクスポートします。
index=bigdata | dump basefilename=MyExport
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、dump コマンドの使⽤
⽅法に関する質問と回答をご覧いただけます。
geomfilter
このページは現在作業中で、まもなく更新される予定です。
説明
構⽂
必要な引数
オプション引数
例
関連項⽬
geom
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、geomfilter コマンドの
使⽤⽅法に関する質問と回答をご覧いただけます。
runshellscript
説明
runshellscript コマンドは、スクリプト化したアラートを実⾏する内部コマンドです。サーチコマンドとしてはサ
ポートされていません。
構⽂
runshellscript <script-filename> <result-count> <search-terms> <search-string> <savedsearch-name>
<description> <results-url> <deprecated-arg> <results_file>
使⽤法
スクリプトファイルは、$SPLUNK_HOME/etc/system/bin/scripts または $SPLUNK_HOME/etc/apps/<app-name>/bin/scripts に
保管する必要があります。次の表にはスクリプトに渡す引数が記載されています。これらの引数は検証されていま
せん。
引数
$0
説明
スクリプトのファイル名。
238
$1
返す結果またはイベント数。
$2
サーチ単語。
$3
完全修飾クエリー⽂字列。
$4
Splunk の保存済みサーチ名。
$5
説明または⽣成理由。例:「イベント数が 1 を超えた」。
$6
保存済みサーチ結果へのリンク。
$7
廃⽌ - 空の⽂字列引数。
$8
結果ファイル
results.csv
へのパス。結果ファイルには raw 結果が含まれています。
詳細は、Splunk Community Wiki のアラートスクリプトに関するトラブルシューティングの記事と、『アラー
ト』マニュアルの「アラートアクションのスクリプトの設定」を参照してください。
関連項⽬
script
Answers
何か質問がありますか?「Splunk Answers」では、Splunk コミュニティに寄せられた、runshellscript コマン
ドの使⽤⽅法に関する質問と回答をご覧いただけます。
sendalert
説明
コマンドを使ってカスタムアラートアクションを起動します。このコマンドは、alert_actions.conf、保
存済みサーチ、コマンドの引数で渡されたカスタムパラメーターからアラートアクションの構成を収集し、トーク
ンの置換を⾏います。次に、実⾏するアラートアクションスのクリプトと引数を決定し、アラートアクションペイ
ロードを作成してスクリプトを実⾏します。ペイロードは、STDIN を経由してスクリプトプロセスに渡されま
す。
sendalert
alert_actions.conf の maxtime 設定に従って、 sendalert コマンドはカスタムスクリプトの実⾏時間が設定されてい
る値に到達した時点でプロセスを終了します (デフォルトは 5 分)。
『Splunk Web ⽤のビューと App の開発』マニュアルの「カスタムアラートアクションの⾼度なオプション」を
参照してください。
構⽂
sendalert <alert_action_name> [results_link=<url>] [results_path=<path>] [param.<name>=<value>]*
必要な引数
alert_action_name
構⽂: <alert_action_name>
説明: alert_actions.conf に設定されているアラートアクションの名前
オプション引数
results_link
構⽂: results_link=<url>
説明: サーチ結果への URL のリンクを設定します。
results_path
構⽂: results_path=<path>
Description: サーチ結果を含むファイルの場所を設定します。
例
例1: 引数なしでアラートアクションを起動します。アラートアクションスクリプトは、必要なパラメーターが⽋
けている場合に適切なエラーが報告されているかどうかを確認します。
... | sendalert myaction
例2: hipchat カスタムアラートアクションを起動し、カスタムパラメーターとしてスペースとメッセージを渡し
ます。
... | sendalert hipchat param.room="SecOps" param.message="There is a security problem!"
例3: servicenow アラートオプションを起動します。
... | sendalert servicenow param.severity="3" param.assigned_to="DevOps" param.short_description="Splunk Alert: this
is a potential security issue"
239
CLI でのサーチ
CLI でのサーチについて
Splunk の CLI を使って、Splunk サーバーでサーチをモニター、設定、実⾏することができます。ここでは、
CLI からのサーチ⽅法について説明していきます。
CLI へのアクセス⽅法とヘルプの参照⽅法については、『管理』マニュアルの「CLI について」を参照して
ください。
サーチの CLI ヘルプ
Splunk の CLI からは、履歴サーチとリアルタイムサーチの両⽅を実⾏できます。それぞれ、search または
rtsearch コマンドを使⽤してください。役に⽴つサーチ関連の CLI ヘルプ項⽬を以下の表に⽰します。各項⽬の
ヘルプを表⽰するには、CLI に以下のように⼊⼒します。
./splunk help <object>
オブジェクト
説明
rtsearch
リアルタイムサーチのパラメータと構⽂が表⽰されます。
search
履歴サーチのパラメータと構⽂が表⽰されます。
searchcommands
CLI で利⽤できるサーチコマンドのリストが表⽰されます。
search-fields
デフォルトフィールドのリストが表⽰されます。
search-modifiers
サーチ結果を絞り込むための、サーチおよび時間ベースの修飾⼦のリストが表⽰されま
す。
CLI でのサーチ
CLI での履歴サーチやリアルタイムサーチは、Splunk Web を使ったサーチと同様に機能しますが、サーチ結果
にタイムラインは表⽰されず、デフォルトの時間範囲もありません。その代わりサーチの種類に応じて、raw イベ
ントのリストまたはテーブルとして表⽰されます。
詳細は、『サーチ』マニュアルの「サーチの種類」を参照してください。
CLI サーチの構⽂は、Splunk Web から実⾏するサーチの構⽂と似ていますが、クエリー外からパラメータを渡
して、サーチの時間制限、サーチ実⾏対象サーバー、結果の表⽰⽅法などを指定することができます。
CLI サーチオプションの詳細は、この章の「CLI サーチ構⽂」を参照してください。
ローカルサーバーからの、リモート Splunk サーバーのサーチ⽅法については、『管理』マニュアルの「リ
モートサーバーへのアクセスと CLI の利⽤」を参照してください。
CLI のサーチ構⽂
ここでは、CLI で search および
説明していきます。
rtsearch
コマンドを使⽤する際の、構⽂と利⽤できるオプションについて簡単に
CLI サーチの構⽂は、Splunk Web から実⾏するサーチの構⽂と似ていますが、サーチオブジェクト外からパラ
メータを渡して、サーチの時間制限、サーチ実⾏対象サーバー、結果の表⽰⽅法などを指定することができます。
search | rtsearch [object][-parameter <value>]
サーチオブジェクト
サーチオブジェクトは単⼀引⽤符 (' ') で囲まれており、キーワード、式、または⼀連のサーチコマンドを使⽤でき
ます。Windows の場合は、⼆重引⽤符 (" ") でサーチオブジェクトを囲んでください。
サーチの詳細は、『サーチチュートリアル』の「サーチの開始」を参照してください。
サーチコマンドの簡単な説明は、『サーチリファレンス』の「コマンドクイックレファレンス」を参照して
ください。
Splunk プラットフォームのコンセプト、機能、サーチコマンド、関数については、『サーチリファレン
ス』の「Splunk Enterprise クイックリファレンスガイド」を参照してください。
サーチオブジェクトには、キーワードやサーチコマンドだけでなく、取得するイベントや⽣成する結果を指定する
フィールドや修飾⼦も使⽤できます。
フィールドの詳細は、『サーチチュートリアル』の「フィールドを使⽤したサーチ」を参照してください。
デフォルトのフィールドとその使⽤⽅法については、『ナレッジ管理』マニュアルの「デフォルトフィール
ドと内部フィールドの使⽤」を参照してください。
時間修飾⼦の詳細は、『サーチリファレンス』マニュアルの「サーチの時間修飾⼦」を参照してください。
サーチパラメータ
240
サーチパラメータは、サーチの実⾏⽅法やサーチ結果の表⽰⽅法を⽰します。これらのパラメータは省略すること
ができます。論理値を取るパラメータには、否定 (偽) として {0, false, f, no} を、肯定 (真) として {1, true, t,
yes} を使⽤できます。
パラメータ
値
デフォ
ルト
説明
app
<app_name>
search
サーチを実⾏する App 名を指定
します。
batch
<bool>
F
プレビューモードでの更新の処理
⽅法を⽰します。
detach
<bool>
F
⾮同期サーチを実⾏し、サーチの
ジョブ ID と TTL を表⽰します。
earliest_time
<time-modifier>
­
サーチの開始時間の相対時間修飾
⼦。search では任意ですが、
rtsearch では必須となります。
header
<bool>
T
テーブル出⼒モードでヘッダーを
表⽰するかどうかを指定します。
index_earliest
<time-modifer>
サーチの開始時刻。これはエポッ
ク時または相対時間修飾⼦として
指定でき、サーチ⾔語の
「earliest」および「latest」時間
修飾⼦と同じ構⽂を使⽤します。
このオプションは、search と
rtsearch の両⽅に使⽤できます。
index_latest
<time-modifer>
サーチの終了時刻。これはエポッ
ク時または相対時間修飾⼦として
指定でき、サーチ⾔語の
「earliest」および「latest」時間
修飾⼦と同じ構⽂を使⽤します。
このオプションは、search と
rtsearch の両⽅に使⽤できます。
latest_time
<time-modifer>
­
サーチの終了時間の相対時間修飾
⼦。search の場合、これを指定
しないと、デフォルトの最後の時
間 (またはデータ内の最後のイベ
ントの時間) が使⽤されるため、
「将来の」イベントも含まれま
す。rtsearch の場合このパラ
メータは必須です 。指定しない
場合、リアルタイムサーチを実⾏
できません。
max_time
<数値>
0
サーチジョブを終了するまでの、
サーチジョブの実⾏時間 (秒)。0
を指定すると、無期限になりま
す。
maxout
<数値>
search
の場合
100
エクスポート時に stdout に返す、
または送信するイベントの最⼤数
0 を指定すると、イベント数の出
⼒制限はありません。
rtsearch
の場合
0
output
rawdata、table、csv、auto
⾮変換
サーチ
では
ジョブの表⽰⽅法を⽰します。
rawdata
を使⽤
しま
す。
変換
サーチ
では
table を
使⽤し
ます。
preview
<bool>
T
レポートサーチをプレビューする
必要があることを⽰します (計算
された結果として出⼒)。
timeout
<数値>
0
サーチ実⾏後の存続時間。0 を指
定すると、実⾏後すぐにジョブが
キャンセルされます。
241
uri
[http|https]://name_of_server:management_port
サーバー名と管理⽤ポートを指定
します。name_of_server には、
Splunk サーバーの完全解決ドメ
イン名または IP アドレスを使⽤
することも可能です。
デフォルトの URI 値は、Splunk
サーバーの web.conf に定義してい
る mgmtHostPort の値になります。
詳細は、『管理』マニュアルのリ
モート Splunk サーバーへのアク
セスと CLI の使⽤に関する記事
を参照してください。
wrap
<bool>
T
端末幅よりも⻑い⾏を折り返すか
どうかを指定します。
例
他にも、CLI ヘルプにはさまざまな例が記載されています。
例1: root セッションに⼀致する昨⽇のイベントを取得します。
./splunk search "session root daysago=1"
例2: web アクセスエラーに⼀致するイベントを取得し、サーチを削除します。
./splunk search 'eventtype=webaccess error' -detach true
例3: ウィンドウを指定して、リアルタイムサーチを実⾏します。
./splunk rtsearch 'index=_internal' -earliest_time 'rt-30s' -latest_time 'rt+30s'
詳細は、『管理』マニュアルの「CLI でのリアルタイムサーチとレポート 」を参照してください。
例4: ⼀意のホスト名のリストを返します。
このために、2 種類の推奨する⽅法が存在しています。最初の⽅法は stats コマンドを使⽤します。
./splunk search 'index=* | stats count by host | fields - count' -preview true
ホストフィールドのみに注⽬している場合は、metadata コマンドを使⽤します。
./splunk search '| metadata type=hosts | fields hosts' -preview true
ここで、-preview フラグは省略可能で、返された結果を表⽰するために使⽤されます。table コマンドは fields
と違い、⼀般的に⾮プレビュー出⼒を⽣成する前に、すべての出⼒が必要になります。この場合、サーチ結果を表
⽰するには、preview フラグを使⽤する必要があります。
例5: 昨⽇の内部イベントを返します。
./splunk search 'index=_internal' -index_earliest -1d@d -index_latest @d
242