Comments
Description
Transcript
Splunk 5.0.2 Search Reference
Splunk 5.0.2 Search Reference Generated: 3/13/2013 8:05 am Copyright (c) 2013 Splunk Inc. All Rights Reserved Table of Contents はじめに 25 サ ー チリファレンスマニュアルにようこそ PDF を作成 25 25 このマニュアルの使用方法 各トピックのレイアウト 構文を 明するために使われている表記規則 引 数 を 明するために使われている表記規則 25 25 25 25 サ ー チリファレンスの 概 要 25 サ ー チコマンド早見表とサ ー チ言語クイックリファレンスカ ー ド Answers administrative alerting fields formatting index reporting results search その他 26 26 26 26 26 28 28 28 30 31 31 よく使われるサ ー チコマンド Answers 31 32 SQL ユ ー ザ ー の方へ 概念 SQL から Splunk へ 32 33 33 サ ー チコマンドと 関数 36 すべてのサ ー チコマンド 36 eval と where の 関数 40 st at s、 chart 、および t imechart の 関数 47 共通の日付 /時間書式 数 時間 数 日付 数 例 49 49 50 50 サ ー チの時間修飾子 時間修飾子の一 覧 51 51 時間修飾子の一 覧 相 時間修飾子の指定方法 その他の時間修飾子 51 51 52 デ ー タタイプの一 覧 after-opt anovalue-action-option anovalue-pthresh-option associate-improv-option associate-option associate-supcnt-option associate-supfreq-option before-opt bucket-bins bucket-span bucket-start-end bucketing-option by-clause cmp collapse-opt collect-addinfo collect-addtime collect-arg collect-file collect-index collect-marker collect-spool collect-testmode comparison-expression connected-opt contingency-maxopts contingency-mincover contingency-option contingency-totalstr contingency-usetotal convert-auto convert-ctime convert-dur2sec convert-function convert-memk convert-mktime convert-mstime convert-none convert-num convert-rmcomma convert-rmunit copyresults-dest-option copyresults-sid-option correlate-type count-opt crawl-option daysago debug-method dedup-consecutive 52 53 53 53 53 53 53 53 53 53 53 53 54 54 54 54 54 54 54 54 54 54 54 55 55 55 55 55 55 55 55 55 55 56 56 56 56 56 56 56 56 56 56 57 57 57 57 57 57 57 dedup-keepempty dedup-keepevents default delim-opt email_address email_list end-opt enddaysago endhoursago endminutesago endmonthsago endtime endtimeu erex-examples eval-bool-exp eval-compare-exp eval-concat-exp Eval 式 eval-field eval-function eval-function-call eval-math-exp evaled-field event-id eventtype-specifier eventtypetag-specifier extract-opt extractor-name fields-opt grouping-field grouping-maxlen host-specifier hosttag-specifier hoursago increment index-expression index-specifier input-option join-options keepevicted-opt key-list kmeans-cnumfield kmeans-distype kmeans-iters kmeans-k kmeans-options kmeans-reps kmeans-showlabel kmeans-tol lit-value lmaxpause-opt log-span logical-expression 57 57 57 57 57 58 58 58 58 58 58 58 58 58 58 58 58 59 59 59 59 60 60 60 60 60 60 60 60 60 61 61 61 61 61 61 61 61 61 61 62 62 62 62 62 62 62 62 62 62 62 62 63 max-time-opt maxevents-opt maxinputs-opt maxopenevents-opt maxopentxn-opt maxpause-opt maxsearchesoption maxspan-opt memcontrol-opt metadata-delete-restrict metadata-type minutesago monthsago multikv-copyattrs multikv-fields multikv-filter multikv-forceheader multikv-multitable multikv-noheader multikv-option multikv-rmorig mvlist-opt outlier-action-opt outlier-option outlier-param-opt outlier-type-opt outlier-uselower-opt prefix-opt quoted-str readlevel-int regex-expression rendering-opt result-event-opt savedsearch-identifier savedsearch-macro-opt savedsearch-opt savedsearch-replacement-opt savedsplunk-specifier savedsplunkoption script-arg script-name-arg search-modifier searchoption searchtimespandays searchtimespanhours searchtimespanminutes searchtimespanmonths select-arg selfjoin-options server-list sid-opt single-agg slc-option 63 63 63 63 63 63 63 63 63 63 63 64 64 64 64 64 64 64 64 64 64 64 65 65 65 65 65 65 65 65 65 65 65 65 66 66 66 66 66 66 66 66 66 66 66 66 67 67 67 67 67 67 67 sort-by-clause sort-field source-specifier sourcetype-specifier span-length split-by-clause srcfields start-opt startdaysago starthoursago startminutesago startmonthsago starttime starttimeu stats-agg stats-agg-term stats-c stats-dc stats-first stats-func stats-last stats-list stats-max stats-mean stats-median stats-min stats-mode stats-perc stats-range stats-stdev stats-sum stats-values stats-var subsearch subsearch-options tc-option time-modifier time-opts timeformat timescale timestamp top-opt transaction-name transam-filter-string trend_type ts-day ts-hr ts-min ts-month ts-sec ts-subseconds txn_definition-opt value 68 68 68 68 68 68 68 68 69 69 69 69 69 69 69 69 69 69 69 70 70 70 70 70 70 70 70 70 70 70 70 70 71 71 71 71 71 71 71 71 71 71 72 72 72 72 72 72 72 72 72 72 73 where-clause where-comp wherein-comp wherethresh-comp x-field y-data-field y-name-field 73 73 73 73 73 73 73 サ ー チコマンドリファレンス 73 abst ract 概要 明 例 関 連項目 Answers 73 73 74 74 74 74 accum 概要 明 例 関 連項目 Answers 74 74 74 75 75 75 addcolt ot als 概要 明 例 関 連項目 Answers 75 75 75 75 75 75 addinfo 概要 明 例 関 連項目 Answers 75 75 76 76 76 76 addt ot als 概要 明 例 関 連項目 Answers 76 76 77 77 77 77 analyzefields 概要 明 例 関 連項目 Answers 77 77 77 78 78 78 anomalies 概要 明 例 その他の例 関 連項目 Answers 78 78 79 79 80 80 80 anomalousvalue 概要 明 例 関 連項目 Answers 80 81 81 81 82 82 append 概要 明 例 関 連項目 Answers 82 82 83 83 85 85 appendcols 概要 明 例 関 連項目 Answers 85 85 85 85 86 86 appendpipe 概要 例 関 連項目 Answers 86 86 86 86 86 associat e 概要 明 例 関 連項目 Answers 86 86 87 87 88 88 audit 概要 明 例 Answers 88 88 88 88 88 aut oregress 概要 明 88 88 89 例 関 連項目 Answers 89 89 89 bucket 概要 明 例 関 連項目 Answers 89 89 91 91 91 91 bucket dir 概要 明 例 関 連項目 Answers 91 91 92 92 92 92 chart 概要 明 例 関 連項目 Answers 92 92 95 96 101 101 clust er 概要 明 例 関 連項目 Answers 101 102 102 103 103 103 collect 概要 明 例 関 連項目 Answers 103 103 104 105 105 105 concurrency 概要 明 例 関 連項目 Answers 105 105 105 105 108 108 cont ingency 概要 明 例 関 連項目 108 109 109 109 111 Answers 111 convert 概要 明 例 関 連項目 Answers 111 111 112 112 114 114 correlat e 概要 例 関 連項目 Answers 114 115 115 115 116 crawl 概要 明 例 関 連項目 Answers 116 116 116 116 116 116 dbinspect 概要 明 例 Answers 116 117 117 118 118 dedup 概要 明 例 関 連項目 Answers 118 118 119 120 120 120 削除 概要 明 例 Answers 120 120 120 121 121 概要 明 例 関 連項目 Answers 121 121 121 121 124 124 概要 明 124 124 124 delt a diff erex eval 例 関 連項目 Answers 124 125 125 概要 明 例 関 連項目 Answers 125 125 125 126 126 126 概要 明 例 計算 みフィ ー ルド Answers 126 126 127 127 131 131 event count 概要 例 Answers 131 131 132 132 event st at s 概要 明 例 関 連項目 Answers 132 132 133 133 133 133 ext ract (kv) 概要 明 例 関 連項目 Answers 133 133 134 134 134 134 fieldformat 概要 例 関 連項目 Answers 135 135 135 135 135 fields 135 135 135 136 136 136 概要 明 例 関 連項目 Answers fieldsummary 136 概要 例 関 連項目 Answers 136 136 137 137 filldown 概要 明 例 関 連項目 Answers 137 137 137 137 137 137 fillnull 概要 明 例 関 連項目 Answers 137 137 138 138 138 138 findt ypes 概要 明 例 関 連項目 Answers 138 138 139 139 139 139 folderize 概要 明 例 Answers 139 139 140 140 140 format 概要 明 例 関 連項目 Answers 140 140 140 140 141 141 gauge 概要 明 例 関 連項目 Answers 141 141 141 141 142 142 gent imes 概要 例 関 連項目 Answers 142 142 142 143 143 head 概要 明 例 関 連項目 Answers 143 143 143 143 144 144 highlight 概要 明 例 Answers 144 144 144 144 144 hist ory 概要 例 関 連項目 Answers 144 144 145 145 145 iconify 概要 明 例 関 連項目 Answers 145 145 145 145 146 146 input 概要 明 例 関 連項目 Answers 146 146 146 146 147 147 input csv 概要 明 例 関 連項目 Answers 147 147 147 147 148 148 input lookup 概要 明 例 関 連項目 Answers 148 148 148 148 149 149 iplocat ion 概要 明 例 149 149 149 149 Answers 149 概要 明 例 関 連項目 Answers 149 150 150 150 151 151 kmeans 概要 明 例 関 連項目 Answers 151 151 151 152 152 152 kvform 概要 明 例 関 連項目 Answers 152 152 152 153 153 153 loadjob 概要 明 例 関 連項目 Answers 153 153 153 154 154 154 localize 概要 明 例 関 連項目 Answers 154 154 154 154 155 155 localop 概要 明 例 Answers 155 155 155 155 155 lookup 概要 明 例 ルックアップサ ー チの最適化 関 連項目 Answers 155 155 156 156 156 157 157 join makecont inuous 概要 明 例 関 連項目 Answers 157 157 158 158 158 158 makemv 概要 明 例 関 連項目 Answers 158 158 159 159 159 159 map 概要 明 例 関 連項目 Answers 159 159 160 160 160 160 met adat a 概要 明 例 関 連項目 Answers 160 161 161 161 161 161 met asearch 概要 明 例 関 連項目 Answers 162 162 163 163 163 163 mult ikv 概要 明 例 関 連項目 Answers 163 163 164 164 164 164 mult isearch 概要 明 例 関 連項目 Answers 164 164 164 165 165 165 mvcombine 概要 165 165 明 例 関 連項目 Answers 165 165 166 166 mvexpand 概要 明 例 関 連項目 Answers 166 166 166 166 167 167 nomv 概要 明 例 関 連項目 Answers 167 167 167 168 168 168 out lier 概要 明 例 関 連項目 Answers 168 168 168 169 169 169 out put csv 概要 例 関 連項目 Answers 169 169 170 170 170 out put lookup 概要 明 例 関 連項目 Answers 170 170 170 171 171 171 out put t ext 概要 明 例 関 連項目 Answers 171 171 171 171 171 171 overlap 概要 明 例 関 連項目 172 172 172 172 172 Answers 172 predict 概要 例 関 連項目 Answers 172 172 174 174 174 rangemap 概要 明 例 単一値パネルでの rangemap の使用 関 連項目 Answers 174 174 175 175 175 175 175 rare 概要 明 例 関 連項目 Answers 176 176 176 176 177 177 regex 概要 明 例 関 連項目 Answers 177 177 177 177 177 177 relevancy 概要 明 例 関 連項目 Answers 177 178 178 178 178 178 relt ime 概要 明 例 関 連項目 Answers 178 178 178 178 178 178 rename 概要 明 例 関 連項目 Answers 179 179 179 179 179 179 replace 概要 明 例 関 連項目 Answers 180 180 180 180 180 181 rest 概要 例 Answers 181 181 181 181 ret urn 概要 明 例 関 連項目 Answers 181 181 182 182 182 182 reverse 概要 例 関 連項目 Answers 182 183 183 183 183 rex 概要 明 例 関 連項目 183 183 183 184 184 rt order 概要 明 例 関 連項目 Answers 184 184 184 184 185 185 run 185 savedsearch 概要 明 例 関 連項目 Answers 185 185 185 185 186 186 script 概要 明 例 186 186 186 186 Answers 186 scrub 概要 明 例 Answers 186 186 187 187 187 search 概要 明 例 Answers 187 187 189 190 190 searcht xn 概要 明 例 関 連項目 Answers 190 190 191 191 191 191 selfjoin 概要 明 例 関 連項目 Answers 191 191 192 192 192 192 set 概要 明 例 関 連項目 Answers 192 192 192 192 193 193 set fields 概要 明 例 関 連項目 Answers 193 193 193 193 193 193 sendemail 概要 例 Answers 194 194 195 195 sichart 概要 明 例 195 195 195 195 関 連項目 Answers 195 195 sirare 概要 明 例 関 連項目 Answers 196 196 196 196 196 196 sist at s 概要 明 例 関 連項目 Answers 196 196 196 196 197 197 sit imechart 概要 明 例 関 連項目 Answers 197 197 197 197 197 197 sit op 概要 明 例 関 連項目 Answers 197 197 198 198 198 198 概要 明 例 関 連項目 Answers 198 198 199 199 200 200 spat h 概要 明 例 関 連項目 Answers 200 200 201 201 203 203 st at s 203 203 204 204 208 208 sort 概要 明 例 関 連項目 Answers st rcat 概要 明 例 関 連項目 Answers 208 208 208 208 209 209 st reamst at s 概要 明 例 1 例 2 その他の例 関 連項目 Answers 209 209 210 210 210 210 210 210 t able 概要 明 例 関 連項目 Answers 211 211 211 211 213 213 概要 明 例 関 連項目 Answers 213 213 214 214 214 214 概要 明 例 関 連項目 Answers 214 214 215 215 215 215 t ags t ail t imechart 概要 明 バケツのタイムスパンと per_* 関数 例 関 連項目 Answers 215 215 218 218 218 224 224 上 224 224 225 225 225 225 概要 明 例 関 連項目 Answers t ransact ion 概要 明 例 Answers 225 225 227 227 231 t ranspose 概要 例 関 連項目 Answers 231 231 232 232 232 t rendline 概要 明 例 関 連項目 Answers 232 232 232 232 233 233 t ypeahead 概要 明 例 Answers 233 233 233 233 234 t ypelearner 概要 明 例 関 連項目 Answers 234 234 234 234 234 234 t yper 概要 明 例 関 連項目 Answers 234 234 234 235 235 235 uniq 概要 明 例 関 連項目 Answers 235 235 235 235 235 235 unt able 概要 例 関 連項目 235 235 236 236 where 概要 明 例 関 連項目 Answers 236 236 236 236 237 237 x11 概要 例 関 連項目 Answers 237 237 237 238 238 xmlkv 概要 明 例 関 連項目 Answers 238 238 238 238 238 239 xmlunescape 概要 明 例 Answers 239 239 239 239 239 xpat h 概要 明 例 関 連項目 Answers 239 239 240 240 240 240 xyseries 概要 例 関 連項目 Answers 240 240 241 241 241 内 部サ ー チコマンド 241 内 部コマンドについて 241 collapse 概要 明 例 241 241 242 242 dispat ch 242 runshellscript 242 概要 明 関 連項目 Answers 242 242 243 243 t scollect 概要 例 関 連項目 Answers 243 243 243 244 244 t st at s 概要 例 関 連項目 Answers 244 244 245 245 245 CLI でのサ ー チ 245 CLI でのサ ー チについて サ ー チの CLI ヘルプ CLI でのサ ー チ 245 246 246 CLI のサ ー チ構文 サ ー チオブジェクト サ ー チパラメ ー タ 例 246 246 247 248 はじめに サ ー チリファレンスマニュアルにようこそ このマニュアルは、サーチコマンドの構文、 明、および使用例を探しているユーザーの方向けのリファレンスガ イドです。 Splunk でのサーチ方法の基本を学びたい場合は、『サーチマニュアル』をご覧ください。 「サーチの概要」の「サーチコマンド一覧」には、サーチコマンドの一覧とその機能の簡単な 明、および関連す るサーチコマンドが記載されています。各サーチコマンドからは、このマニュアルの「サーチコマンド」の章に移 動できるリンクがあります。概要を把握してすぐにサーチを開始したい方のために、「サーチコマンド早見表」に は簡単な 明と使用例が記載されています。 続行する前に、「このマニュアルの使用方法」でこのマニュアルの表記規則などをご確認ください。 PDF を 作 成 このマニュアルの PDF 版が欲しい場合は、このページの目次の左下にある赤い [Download the Search Reference as PDF] リンクをクリックしてください。PDF 版のマニュアルがその場で作成されます。作成された PDF は後で利用するために保存、印刷することができます。 このマニュアルの使用方法 このマニュアルは、サーチコマンドの構文、 明、および使用例を探しているユーザーの方向けのリファレンスガ イドです。 各トピックのレイアウト それぞれのサーチコマンドの記事には、見出しとして概要、 明、例、および関連項目が記載されています。 概要 概要には、サーチコマンドの簡単な 明、サーチコマンドの構文、および各引数の 明が記載されています。引 数にさらにオプションを指定できる場合は、引数の 明に続いてそれらのオプションが 明されています。 必要な引数 必要なパラメータとその構文の一覧です。 オプション引数 オプションで指定できるパラメータとその構文の一覧です。 明 明には、サーチコマンドの使用方法の詳細が記載されています。 例 サーチコマンドの使用例が記載されています。 関連項目 関連するサーチコマンドや類似のサーチコマンドへのリンクが記載されています。 構文を 明するために使われている表記規則 各サーチコマンドの構文は、「概要」に定義されています。引数は、構文の所に指定する順序で記載されていま す。 引 数 を 明するために使われている表記規則 必須の引数と省略できるオプション引数が存在しています。これらの引数は、アルファベット順に表示されていま す。各引数に して「構文」と「 明」が存在しています。 明には、使用情報とデフォルト値が記載されています。 サ ー チリファレンスの 概 要 25 サ ー チコマンド早見表とサ ー チ言語クイックリ ファレンスカ ー ド サーチコマンド早見表には、コマンドの 明と使用例が記載されており、簡単にコマンドの概要を把握することが できます。この早見表は、ダウンロードできる 8 ページの PDF ファイル版も用意されています。 サーチ言語クイックリファレンスカードは PDFファイルでのみ提供されています。このカードは 6 ページで、基 本的なサーチ概念、コマンド、機能、および例が 載されています。 注意:このページの例で、先頭の省略記号 (...) は、パイプ演算子の前にサーチが存在していることを表していま す。先頭のパイプ文字 ( | ) により、CLI や UI でサーチの先頭に「search」が付けられません。 Answers サーチコマンドに関する質問がありませんか?Splunk Answers をご覧ください。ここには、他の Splunk ユー ザーがサーチ言語に して行った、さまざまな質問と回答が 載されています。どうぞ早見表をご活用ください。 administrative 「audit」インデックスにある情報を表示します。 index=_audit | audit ルートおよびホームディレクトリをクロールして、見つかったす べての利用可能な入力を追加します (環境設定情報を 「inputs.conf」に追加します)。 | crawl root="/;/Users/" | input add グラフを期間 1 日で表示します。 | dbinspect index=_internal span=1d 「_internal」インデックス内のイベントの「host」の値を返しま す。 | metadata type=hosts index=_internal インデックス「_internal」内のソースの先行入力情報を返しま す。 | typeahead prefix=source count=10 index=_internal alerting サーチ結果を指定メールで送信します。 ... | sendemail to="[email protected]" fields add 「total_count」フィールド内の「count」の、現在の合計を保存し ます。 ... | accum count AS total_count サーチに関する情報を各イベントに追加します。 ... |addinfo 「404」イベントをサーチして、各イベントのフィールドを前の サーチ結果に追加します。 ... | appendcols [search 404] 「count」が存在する各イベントに して、count とその前の値の差 異を算出して、結果を「countdiff」に保存します。 ... | delta count AS countdiff 「7/01」のような値を抽出して、それを monthday 属性に保管しま ... | erex monthday examples="7/01" す。 速度 (velocity) に距離/時間を設定します。 ... | eval velocity=distance/time フィールド/値のペアを抽出して、ディスクからフィールド抽出設 定を再ロードします。 ... | extract reload=true 「=:」で区切られたフィールド/値のペア、および「=:」で区切ら れたフィールドの値を抽出します。 ... | extract pairdelim="|;", 場所情報を追加します (IP アドレスに基づく)。 ... | iplocation ファイルが存在する場合、「eventtype.form」から値を抽出しま 26 kvdelim="=:", auto=f ... | kvform field=eventtype ... | kvform field=eventtype す。 「splunkd」を含む行があった場合に、COMMAND フィールドを 抽出します。 ... | multikv fields COMMAND filter date_second が 1 30 の場合は range に「green」を、31 39の場合 は「blue」を、40 59の場合は「red」を、範 が一致しない (例: date_second=0) 場合は「gray」を設定します。 ... | rangemap field=date_second サーチの関連性を計算して、結果を降順に並べ替えます。 splunkd green=1-30 blue=31-39 red=40-59 default=gray disk error | relevancy | sort relevancy 正規表現を使って from および to フィールドを抽出します。raw イ ... | rex field=_raw "From: (?<from>.*) ベントに「From: Susan To: Bob」が含まれている場合、 To: (?<to>.*)" 「from=Susan」、「to=Bob」になります。 書籍に関する XML または JSON 形式のデータから、「author」 フィールドを抽出します。 ... | spath output=author フィールド「comboIP」を追加します。「comboIP」の値は、 「sourceIP」 + 「/」 + 「destIP」になります。 ... | strcat sourceIP "/" destIP XML 形式データからフィールド/値のペアを抽出します。 「xmlkv」を指定すると、XML タグ間の値を自動抽出します。 path=book{@author} comboIP ... | xmlkv convert foo フィールドの値を除いて、各フィールド値を数値に 換します (無視するフィールドの指定には、引数「none」を使用)。 ... | convert auto(*) none(foo) virt フィールドのすべてのメモリー値を KB に 換します。 ... | convert memk(virt) sendmail syslog の期間の形式 (D+HH:MM:SS) を秒に 更します。 たとえば、「delay="00:10:15"」の場合、結果の値は 「delay="615"」となります。 ... | convert dur2sec(delay) duration フィールドの値から、文字列値を削除して数値に 換しま す。たとえば、「duration="212 sec"」の場合、結果の値は 「duration="212"」となります。 ... | convert rmunit(duration) 「foo」の値を、複数の値に分離します。 ... | makemv delim=":" allowempty=t foo sendmail イベントに して、senders フィールドの値を単一値に結 合し、次に上位 10 件の値を表示します。 eventtype="sendmail" | nomv senders | top senders filter 「host」および「ip」フィールドのみを保持し、それを「host」、 「ip」の順序で表示します。 ... | fields + host, ip 「host」および「ip」フィールドを削除します。 ... | fields - host, ip modify Web イベントのホスト別タイムライングラフを作成します。空の フィールドには NULL を記入します。 sourcetype="web" | timechart count by _ip フィールドの名前を「IPAddress」に 更します。 ... | rename _ip as IPAddress 「localhost」で終わるホスト (host) 値を「localhost」に 更しま す。 ... | replace *localhost with localhost host | fillnull value=NULL in host read transforms.conf には、スタンザ名が「usertogroup」のルックアッ プテーブルが指定されています。このルックアップテーブルに は、最低でも 2 つのフィールド「user」および「group」が存在し ています。各イベントに して、テーブル内のフィールド 「local_user」の値をルックアップし、一致した任意の項目に し て、ルックアップテーブル内の group フィールドの値が、イベン ト内の user_group フィールドに書き込まれます。 27 ... | lookup usertogroup user as local_user OUTPUT group as user_group formatting 各サーチ結果に して、最高 5 行のサマリーを表示します。 ... |abstract maxlines=5 最初のサーチ結果と 3 番目のサーチ結果の「ip」値を比較しま す。 ... | diff pos1=1 pos2=3 attribute=ip 「login」および「logout」を強調表示します。 ... | highlight login,logout eventtype ごとに異なるアイコンを表示します。 ... | iconify eventtype 現在のサーチの _raw フィールドを、_xml に出力します。 ... | outputtext 現在のサーチ結果を匿名化します。 ... | scrub すべての XML 文字のエスケープを解除します。 ... | xmlunescape index add クロールで見つかった各ソースを、デフォルトのインデックスに 追加します。この時、ソースは自動的に分類されます (sourcetyping)。 | crawl | input add 削除 「invalid」を含むイベントを「imap」インデックスから削除しま す。 index=imap invalid | delete サマリー download イベントを、インデックス「downloadcount」に保管し ます。 eventtypetag="download" | collect 「summary」内の重複イベントを探します。 index=summary | overlap サマリーインデックスの結果に して「chart avg(foo) by bar」を実 行するために必要な情報を算出します。 ... | sichart avg(foo) by bar サマリーインデックスの結果に して「rare foo bar」を実行するた めに必要な情報を算出します。 ... | sirare foo bar サマリーインデックスの結果に して「stats avg(foo) by bar」を実 行するために必要な情報を算出します。 ... | sistats avg(foo) by bar サマリーインデックスの結果に して「timechart avg(foo) by bar」 を実行するために必要な情報を算出します。 ... | sitimechart avg(foo) by bar サマリーインデックスの結果に して「top foo bar」を実行するた めに必要な情報を算出します。 ... | sitop foo bar index=downloadcount reporting 各結果の数値フィールドの合計を算出し、合計を sum フィールド に保存します。 ... | addtotals fieldname=sum 「is_activated」の値を予測するために、数値フィールドを分析し ます。 ... | af classfield=is_activated ... | anomalousvalue action=filter 例外的 (異常) な値を持つイベントを返します。 pthresh=0.02 相互に関係している結果を返します (相互に 3 つ以上の参照が存在 ... | associate supcnt=3 している)。 各イベントに して、「count」フィールドの前の 2 5 番目の値を、 それぞれ するフィールド「count_p2」、「count_p3」、 「count_p4」、および「count_p5」にコピーします。 28 ... | autoregress count p=2-5 バケツサーチ結果に 10 個のビンを使用し、各バケツの raw イベン ... | bucket size bins=10 | stats ト数を返します。 count(_raw) by size 各 5 分間の期間の各「host」の平均スループット (thruput) を返し ます。 ... | bucket _time span=5m | stats 一意の各ホスト (host) に して、平均サイズ (size) を返します。 ... | chart avg(size) by host サイズ (size) による最大 延 (delay) を返します。ここで「size」 は、最大 10 個の同じサイズのバケツに分類されます。 ... | chart max(delay) by size bins=10 avg(thruput) by _time host 一意の各ホスト (host) ユーザー (user) のペアに して、最大 延 (delay) に する平均サイズ (size) の比率を返します。 ... | chart eval(avg(size)/max(delay)) bar の値による foo 分割の各値の max(delay) を返します。 ... | chart max(delay) over foo by bar foo の各値の max(delay) を返します。 ... | chart max(delay) over foo すべてのイベントから、「datafields」の分割表を作成します。 by host user ... | contingency datafield1 datafield2 maxrows=5 maxcols=5 usetotal=F すべてのフィールド間の共起相関関係を算出します。 ... | correlate type=cocur _internal インデックス内のイベント数を返します。 | eventcount index=_internal 総合的な平均期間を算出し、「avgdur」を duration フィールドが 存在する各イベントの新しいフィールドとして追加します。 ... | eventstats avg(duration) as 10 分の期間で、「_time」を連続にします。 ... | makecontinuous _time span=10m 範 外の数値をすべて削除します。 ... | outlier url フィールドの、一番頻度が少ない値を表示します。 ... | rare url 同じ「host」値を持つ結果の重複項目を削除して、残り結果の合 計カウントを返します。 ... | stats dc(host) 文字列「lay」で終わる (例:delay、xdelay、relay など) 任意の一 意のフィールドに して、各時間の平均を返します。 ... | stats avg(*lay) BY date_hour アクセスログをサーチして、「referer_domain」の上位 100 件の 値からヒット数を返します。 avgdur sourcetype=access_combined | top limit=100 referer_domain | stats sum(count) 各イベントに して、現在までに見えているイベント (当該イベント を含む) の番号を表す count フィールドを追加します。最初のイベ ... | streamstats count ントが 1、2番目が 2、3 番目が 3 のようになります。 ホストの平均スループット (thruput) の推移をグラフ化します。 ホスト (host) 別の平均「cpu_seconds」の時間グラフを作成し、 時間グラフの軸を歪める可能性があるデータ (範 外の値) を削除し ます。 各ホスト (host) に して、CPU の 分の平均値を算出します。 ホスト (host) 別「web」ソースからのカウントの時間グラフを作 成します。 ... | timechart span=5m avg(thruput) by host ... | timechart avg(cpu_seconds) by host | outlier action=tf ... | timechart span=1m avg(CPU) by host ... | timechart count by host 各ホスト (host) に して、 分の平均「CPU」および平均「MEM」 を算出します。 ... | timechart span=1m eval(avg(CPU) * url フィールドの、最多の値上位 20 件を返します。 ... | top limit=20 url avg(MEM)) by host foo フィールドの 5 件のイベントの単純移動平均を算出し、新しい フィールド「smoothed_foo」に書き込みます。 ... | trendline sma5(foo) as また、bar フィールドの N=10 の指数移動平均を算出し、フィール smoothed_foo ema10(bar) ド「ema10(bar)」に書き込みます。 ... | timechart avg(delay) by host | サーチ結果を再フォーマットします。 untable _time host avg_delay サーチ結果を再フォーマットします。 ... | xyseries delay host_type host 29 results append ... | chart count by bar | append 現在の結果を、「fubar」の表形式結果で追加します。 [search fubar | chart count by baz] 前の結果セットと「search foo」の結果の ID フィールドを結合し ます。 ... | join id [search foo] filter 則イベントのみを返します。 ... | anomalies 同じホスト (host) 値を持つ重複する結果を削除します。 ... | dedup host 「foo」の値を、区切り文字「:」で結合します。 ... | mvcombine delim=":" foo _raw フィールドに、ルーティング不可能クラス A (10.0.0.0/8) IP アドレスが含まれているサーチ結果のみを保持します。 ... | regex _raw="(? 結果の「id」フィールドを自身と結合します。 ... | selfjoin id 現在のサーチに して、一意の結果のみを保持します。 ... | uniq 速度が 100 より大きい「physicsobjs」イベントを返します。 sourcetype=physicsobjs | where <!\d)10.\d{1,3}\.\d{1,3}\.\d{1,3}(?!\d)" distance/time > 100 generate 10 月 25 日から今日までのすべての日次時間範 | gentimes start=10/25/07 ID が 1233886270.2 のサーチジョブが生成したイベントを読み込 みます。 | loadjob 1233886270.2 events=t 複数値フィールド「foo」の各値に する新しいイベントを作成し ます。 ... | mvexpand foo 保存 みサーチ「mysecurityquery」を実行します。 | savedsearch mysecurityquery グループ イベントをクラスタ化し、「cluster_count」の値で並べ替えてか ら、上位 20 件の大きなクラスタ (データサイズで) を返します。 「date_hour」および「date_minute」フィールドの値に基づい て、サーチ結果を 4 つのクラスタにグループ化します。 それぞれ30 秒の期間内に発生し、各イベント間に 5 秒を超える中 断がない、同じホスト (host) と cookie を持つサーチ結果をトラン ザクションにグループ化します。 設定したイベントタイプの適用を Splunk に強制します (Splunk Web では、eventtype フィールドの参照時に自動的にこの処理が 行われます)。 ... | cluster t=0.9 showcount=true | sort - cluster_count | head 20 ... | kmeans k=4 date_hour date_minute ... | transaction host cookie maxspan=30s maxpause=5s ... | typer order 最初の 20 件の結果を返します。 ... | head 20 結果セットの順序を逆にします。 ... | reverse 結果を ip 値の昇順、次に url 値の降順に並べ替えます。 ... | sort ip, -url 最後の 20 件の結果を返します (逆順で)。 ... | tail 20 read ファイル「messages.1」のイベントを、Splunk でイベントのイン | file /var/log/messages.1 デックスが作成されたかのように表示します。 30 CSV ファイル「$SPLUNK_HOME/var/run/splunk/all.csv」から結 果を読み込んで、文字列「error」を含む結果を保持し、それを | inputcsv all.csv | search error | ファイル「$SPLUNK_HOME/var/run/splunk/error.csv」に書き込み outputcsv errors.csv ます。 ルックアップファイル「users.csv」を読み込みます ($SPLUNK_HOME/etc/system/lookups または $SPLUNK_HOME/etc/apps/*/lookups 下)。 | inputlookup users.csv write サーチ結果を CSV ファイル「mysearch.csv」に出力します。 ... | outputcsv mysearch ルックアップファイル「users.csv」に書き込みます ($SPLUNK_HOME/etc/system/lookups または $SPLUNK_HOME/etc/apps/*/lookups 下)。 | outputlookup users.csv search external Python スクリプト「myscript」に引数 myarg1 および myarg2 を指 ... | script python myscript myarg1 定して実行し、結果をメールで送信します。 myarg2 | sendemail [email protected] search 指定された「src」または「dst」値を持つサーチ結果のみを保持し src="10.9.165.*" OR dst="10.9.165.8" ます。 subsearch 上位 2 件の結果を取得して、その host、source、および sourcetype からサーチを作成し、単一のサーチ結果 _query フィー ルドを生成します:_query=( ( "host::mylaptop" AND ... | head 2 | fields source, "source::syslog.log" AND "sourcetype::syslog" ) OR ( sourcetype, host | format "host::bobslaptop" AND "source::bob-syslog.log" AND "sourcetype::syslog" ) ) ... | localize maxpause=5m | map search="search failure 前の結果の時間範 に して「failure」をサーチします。 starttimeu=$starttime$ endtimeu=$endtime$" 「URL」の値に文字列「404」または「303」が含まれる値を返し ます (両方を含む値は返されません)。 | set diff [search 404 | fields url] [search 303 | fields url] その他 この場合、iplocation コマンドがリモートピア上で実行されること はありません。単語 FOO および BAR に する初期サーチによる、 リモートピアからのすべてのイベントがサーチヘッドに送信さ れ、そこで iplocation コマンドが実行されます。 FOO BAR | localop | iplocation よく使われるサ ー チコマンド 頻繁に使用されている Splunk サーチコマンドを以下の表に示します。これらのコマンドの一部は関数を共有して います。これらの関数の一覧と 明や例については、「eval と where の関数」および「stats、chart、および timechart の関数」を参照してください。 コマンド エイリア ス 明 bin、 31 関連項目 bucket bin、 連続した数値を離散集合に配置します。 discretize chart, timechart chart グラフ化するために、結果を表形式で出力します。「stats、 chart、および timechart の関数」も参照してください。 bucket, sichart, dedup 指定した基準に一致する後続の結果を削除します。 uniq eval 式を計算して、値をフィールドに保管します。「eval と where の関数」も参照してください。 where extract kv サーチ結果から、フィールドと値のペアを抽出します。 fields サーチ結果からフィールドを削除します。 head 指定した結果の最初の n 件を返します。 lookup 明示的にフィールド値のルックアップを起動します。 multikv を テーブルで書式設定された (table-formatted) イベントから フィールド値 (field-values) を抽出します。 rangemap RANGE フィールドに、一致する範 名を設定します。 rare フィールドの一番少ない値を表示します。 rename 指定フィールドの名前を 更します (ワイルドカードを使って複数 のフィールドを指定できます)。 replace 指定フィールドの値を、指定値に置換します。 rex 「groups」と言う名前の Perl 正規表現を指定し、サーチ時に フィールドを抽出します。 search Splunk インデックスから、一致するイベントを探します。 spath XML または JSON 形式から、キーと値のペアを抽出します。 timechart kvform, multikv, xmlkv, rex reverse, tail sirare, stats, top extract, kvform, multikv, xmlkv, regex extract, kvform, multikv, rex, xmlkv sort サーチ結果を指定フィールドで並べ替えます。 stats 統計情報を提供します。必要に じてフィールド別にグループ化し eventstats, top, ます。「stats、chart、および timechart の関数」も参照してくだ rare さい。 tail 指定した結果の最後の n 件を返します。 head, reverse timechart する統計情報テーブルで、タイムライングラフを作成します。 「stats、chart、および timechart の関数」も参照してください。 chart, bucket rare, stats top common フィールドで一番多い値を表示します。 transaction transam 各結果をトランザクションにグループ化します。 where データに任意のフィルタリングを実行します。「eval と where の関数」も参照してください。 xmlkv XML キーと値のペアを抽出します。 reverse eval extract, kvform, multikv, rex, spath Answers サーチコマンドに関する質問がありませんか?Splunk Answers をご覧ください。ここには、他の Splunk ユー ザーがサーチ言語に して行った、さまざまな質問と回答が 載されています。 SQL ユ ー ザ ー の方へ これは SQL と Splunk サーチコマンド間の完全な を表してはいませんが、SQL に慣れ親しんでいる方ならば、こ の簡単な比較を参考に手 に Splunk を使い始められることでしょう。 32 概念 データベース用語で表せば、Splunk は暗 の時間次元を持つ分散、非リレーショナル、半構造化データベースと言 えるでしょう。一般的な 点からすると Splunk はデータベースではありません。リレーショナルデータベースで は、すべてのテーブル列をあらかじめ定義しておく必要があり、また新しいハードウェアをつないでも自動的に 張されることはありません。ただし、Splunk はデータベースの世界の多くの概念と類似性があります。 DB の概念 Splunk の概念 メモ SQL クエリ Splunk サーチ Splunk のサーチは、インデックス作成されたデータを取得し、 換とレポート 作成操作を実行します。サーチ結果はパイプ文字を使用して、コマンドから コマンドに受け渡し、結果のフィルタリング、 更、順序 更、グループ化を行 えます。 テーブル/ ビュー サーチ結果 サーチ結果は、データベースで動的に行と列が生成されるテーブルのビュー と考えることができます。 index index Splunk では、すべての値とフィールドのインデックスが作成されます。手動 で追加、更新、破棄する必要はありません。インデックス列を考慮する必要 もありません。すべてを素早く自動的に取得することができます。 row Splunk で結果は、テーブルの行に するフィールド (列) 値のリストです。イ ベントは、タイムスタンプと raw テキストを持つ結果になります。一般的に イベントは、以下のようなログファイルからのレコードになります。 結果/イベント 173.26.34.223 - - [01/Jul/2009:12:05:27 -0700] "GET /trade/app? action=logout HTTP/1.1" 200 2953 棒 field Splunk でフィールドは、サーチによって動的に返されます。あるサーチでは 特定のフィールドセットが返され、また別のサーチでは別のセットが返され ます。Splunk に raw データからフィールドの抽出方法を指示し、その後もう 一度同じサーチを実行すると前回よりも多くのフィールドが返されることも あります。Splunk のフィールドは、データ型とは結びつけられていません。 データベース/ スキーマ インデック ス/App データベースがテーブルの集合から構成されているように、Splunk でイン デックスはデータの集合体です。そのデータの詳細な知識、抽出方法、実行 するレポートなどが、Splunk の App に保管されています。 SQL から Splunk へ 以下の例では、Splunk のフィールド「source」の値を、「table」の代理として使用しています。Splunk でソース (source) は、ファイル、ストリーム、または他のデータの取り込み元の入力を表しています (例:/var/log/messages or UDP:514)。 ある言語を他の言語に 換する場合、元の言語には独特の用語が含まれているため 換作業には時間がかかります。 以降のサーチ例はもっと簡潔にすることもできますが、並列性と明確性のために、テーブルとフィールド名は SQL と同じままにしています。また、サーチの場合は FIELDS コマンドを使って列をフィルタリングする必要は ほとんどありません。ユーザーインターフェイスにより手 な手段が用意されており、また論理演算サーチでも 「AND」が暗 的に仮定されるため、明示的に指定する必要はありません。 SQL コマンド SQL の例 Splunk の例 SELECT * SELECT * source=mytable FROM mytable SELECT * WHERE FROM mytable source=mytable mycolumn=5 WHERE mycolumn=5 SELECT mycolumn1, mycolumn2 SELECT source=mytable 33 SELECT AND/OR 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" SELECT mycolumn AS column_alias AS (エイリアス) AND mycolumn3="blue" source=mytable | RENAME mycolumn as column_alias FROM mytable | FIELDS column_alias SELECT * FROM mytable BETWEEN source=mytable mycolumn<=1 mycolumn>=5 WHERE mycolumn BETWEEN 1 AND 5 SELECT mycolumn, avg(mycolumn) FROM mytable GROUP BY source=mytable mycolumn=value | STATS avg(mycolumn) BY mycolumn WHERE mycolumn=value | FIELDS mycolumn, avg(mycolumn) GROUP BY mycolumn SELECT mycolumn, avg(mycolumn) FROM mytable HAVING source=mytable mycolumn=value | STATS avg(mycolumn) BY mycolumn WHERE mycolumn=value | SEARCH avg(mycolumn)=value GROUP BY mycolumn | FIELDS mycolumn, avg(mycolumn) HAVING avg(mycolumn)=value source=mytable mycolumn="*some text*" SELECT * LIKE FROM mytable WHERE mycolumn LIKE "%some text%" 注意:Splunk でもっとも一般的に使用され ているサーチの使用例 (すべてのフィールド に して一部の文字列をサーチする) は、 SQL ではほとんど不可能です。以下のサー チでは、どこかに「some text」を含むすべ ての行が返されます。 source=mytable "some text" SELECT * ORDER BY source=mytable FROM mytable | SORT -mycolumn ORDER BY mycolumn desc SELECT DISTINCT mycolumn1, mycolumn2 SELECT DISTINCT source=mytable | DEDUP mycolumn1 FROM mytable | FIELDS mycolumn1, mycolumn2 SELECT TOP SELECT TOP 5 mycolumn1, mycolumn2 source=mytable FROM mytable | TOP mycolumn1, mycolumn2 source=mytable1 | JOIN type=inner mycolumn [ SEARCH source=mytable2 ] 34 注意:結合を行うには、他にも 2 種類の方 法があります。 lookup コマンドを使用して、外部 テーブルからフィールドを追加: SELECT * FROM mytable1 INNER JOIN ... | LOOKUP myvaluelookup mycolumn INNER JOIN mytable2 OUTPUT myoutputcolumn サブサーチの使用: ON mytable1.mycolumn=mytable2.mycolumn source=mytable1 [ SEARCH source=mytable2 mycolumn2=myvalue | FIELDS mycolumn2 ] SELECT * source=mytable1 FROM mytable1 LEFT (OUTER) JOIN LEFT JOIN mytable2 | JOIN type=left mycolumn [ SEARCH source=mytable2 ] ON mytable1.mycolumn=mytable2.mycolumn source=old_mytable | EVAL source=new_mytable | COLLECT index=mydb2 SELECT * SELECT INTO 注意:一般的に COLLECT は、コストが高 い計算で算出されたフィールドを Splunk に 保管するために用いられます。そうするこ とにより、それ以降のアクセスが高速にな ります。この現在の例は特殊なものです が、SQL のコマンドと比較するために記載 しています。source は orig_source に名前 が 更されます。 INTO new_mytable IN mydb2 FROM old_mytable source=mytable TRUNCATE TABLE TRUNCATE TABLE mytable | DELETE INSERT INTO mytable INSERT INTO VALUES (value1, value2, value3,....) SELECT mycolumn source=mytable1 FROM mytable1 UNION 注意:SELECT INTO も参照してくださ い。サーチ言語で個別のレコードは追加さ れませんが、必要に じて API を使って追加 することができます。 | APPEND [ SEARCH source=mytable2] UNION | DEDUP mycolumn SELECT mycolumn FROM mytable2 SELECT * FROM mytable1 UNION ALL source=mytable1 UNION ALL | APPEND [ SEARCH source=mytable2] SELECT * FROM mytable2 DELETE DELETE FROM mytable source=mytable1 mycolumn=5 WHERE mycolumn=5 | DELETE 35 UPDATE mytable UPDATE SET column1=value, column2=value,... WHERE some_column=some_value 注意:Splunk でレコードを更新する際に は、いくつか考慮しておくことがありま す。まず、Splunk には単純に新しい値を追 加することができます (INSERT INTO を参 照)。Splunk では最新の結果が先に返され るため、古い値の削除を気にする必要はあ りません。次に、取得時には最新の値のみ が使われるように、常に結果から重複項目 を排除することができます (SELECT DISTINCT を参照)。最後に、実際に古いレ コードを削除できます (DELETE を参照)。 サ ー チコマンドと 関数 すべてのサ ー チコマンド 以下の表に、すべてのサーチコマンドと簡単な 明、および個別のコマンドの 明ページへのリンクを示します。こ れらのサーチコマンドの使用例を含めたクイックガイドについては、「サーチコマンド早見表」を参照してくださ い。 これらのコマンドの一部は関数を共有しています。これらの関数の一覧と 明や例については、「eval と where の 関数」および「stats、chart、および timechart の関数」を参照してください。 コマンド abstract エイリアス excerpt 関連項目 明 各サーチ結果のサマリーを生成します。 highlight autoregress, delta, accum 指定された数値フィールドの現在までの合計値を保持し trendline, ます。 streamstats addcoltotals 以前のイベントのすべての数値フィールドの合計を含む addtotals, stats イベントを算出します。 addinfo 現在のサーチについて、共通の情報を含むフィールドを search 追加します。 addtotals 各結果のすべての数値フィールドの合計を算出します。 addcoltotals, stats analyzefields 他の離散型フィールドを予測できるかどうか、数値 フィールドを分析します。 anomalies イベントの「unexpectedness」 (意外さ) スコアを算出 します。 anomalousvalue anomalousvalue, cluster, kmeans, outlier analyzefields, anomalousvalue 不正な、または異常なサーチ結果を探します。 anomalies, cluster, kmeans, outlier appendcols, append サブサーチの結果を現在の結果に追加します。 appendcsv, appendlookup, join, set appendcols サブサーチの結果フィールドを現在の結果に追加します append, appendcsv, (最初の結果を最初の結果に、2 番目の結果を 2 番目の join, set 結果に、以降同 )。 appendpipe 現在の結果セットに適用した、サブパイプラインの結果 append, appendcols, を追加します join, set associate フィールド間の相関関係を識別します。 audit ローカル監査インデックスに保管されている、監査証跡 情報を返します。 autoregress 移動平均を計算するためにデータを設定します。 correlate, contingency accum, autoregress, delta, trendline, streamstats 36 bin、 discretize 連続した数値を離散集合に配置します。 chart, timechart bucketdir フィールド値を上位レベルのグループに置換します (ファイル名をディレクトリで置換するなど)。 cluster, dedup chart グラフ化するために、結果を表形式で出力します。 「stats、chart、および timechart の関数」も参照してく ださい。 bucket bucket, sichart, timechart anomalies, cluster sic 類似イベントをクラスタ化します。 anomalousvalue, cluster, kmeans, outlier collect stash concurrency contingency サーチ結果をサマリーインデックスに保管します。 overlap 期間 (duration) フィールドを使って、各イベントの同時 (concurrent) イベント数をサーチします。 timechart counttable、 2 つのフィールドの分割表を作成します。 ctable convert フィールド値を数値に 換します。 correlate 異なるフィールドの相関関係を算出します。 crawl インデックスを作成する新たなソースのファイルシステ ムをクロールします。 dbinspect 指定したインデックスに関する情報を返します。 dedup 指定した基準に一致する後続の結果を削除します。 delete 特定のイベントまたはサーチ結果を削除します。 delta 隣接する結果間でフィールド値の差異を算出します。 associate, correlate eval associate, contingency uniq accum, autoregress, trendline, streamstats diff 2 つのサーチ結果の差異を返します。 dispatch 長期間稼働するストリーミングレポートをカプセル化し ます。 extract, kvform, 類似の値を持つフィールドを自動抽出するための、例ま multikv, regex, rex, たはカウンタ例の値を指定できます。 erex xmlkv eval 式を計算して、値をフィールドに保管します。「eval と where の関数」も参照してください。 where eventstats すべてのサーチ結果に、サマリー統計情報を追加しま す。 stats extract kv サーチ結果から、フィールドと値のペアを抽出します。 fieldformat 出力時に値を 更せずにフィールドを表示する方法を指 定します。 fields サーチ結果からフィールドを削除します。 file このコマンドは、もうサポートされていませ ん。inputcsv を参照してください。 filldown ヌル値を最後の非ヌル値で置換します。 fillnull ヌル値を指定値で置換します。 format サブサーチの結果を取得し、それを単一の結果にまとめ ます。 gauge 結果をゲージグラフでの表示に適した形式に 換しま す。 gentimes 時間範 結果を生成します。 37 kvform, multikv, xmlkv, rex eval, where fillnull head 指定した結果の最初の n 件を返します。 highlight Splunk Web で指定した単語を強調表示します。 history イベントリストまたはテーブル形式でサーチの履歴を返 search します。 iconify Splunk Web で、リストに表示する各フィールド値に し highlight て、独自のアイコンを作成します。 input Splunk が処理するソースを Splunk に追加または無効に します。 inputcsv 指定した CSV ファイルから、サーチ結果を読み込みま す。 inputlookup 指定した静的ルックアップテーブルからサーチ結果を読 inputcsv, join, lookup, み込みます。 outputlookup iplocation IP アドレスから場所情報を抽出します。 join メイン結果パイプラインの結果をサブパイプラインの結 selfjoin, appendcols 果と、SQL のように結合します。 kmeans 選 フィールドに して、K-Means クラスタリングを実施 します。 reverse, tail loadjob, outputcsv anomalies, anomalousvalue, cluster, outlier kvform フォームテンプレートを使ってサーチ結果から値を取得 extract, kvform, します。 multikv, xmlkv, rex loadjob 指定した CSV ファイルから、サーチ結果を読み込みま す。 inputcsv localize サーチ結果が見つかった時間範 のリストを返します。 map, transaction lookup 明示的にフィールド値のルックアップを起動します。 makecontinuous フィールドを X 軸連続にします (グラフ/時間グラフが開 chart, timechart 始)。 makemv サーチ時に、指定フィールドを複数値フィールドに 更 します。 map ループ演算子、各サーチ結果に してサーチを実行しま す。 metadata 指定したインデックスまたは分散サーチピアから、ソー dbinspect ス、ソースタイプ、またはホストのリストを返します。 metasearch 論理式内の単語に基づいて、インデックスからイベント metadata, search のメタデータを取得します。 multikv を テーブルで書式設定された (table-formatted) イベント からフィールド値 (field-values) を抽出します。 mvcombine サーチ結果内で 1 つのフィールド値が異なっている複数 mvexpand, makemv, のイベントを、複数値フィールドを持つ単一の結果にま nomv とめます。 mvexpand 複数値フィールドの値を、その各値を持つ個別のイベン mvcombine, makemv, トにデプロイします。 nomv nomv 指定した複数値フィールドを、サーチ時に単一値フィー makemv, mvcombine, ルドに 更します。 mvexpand mvcombine, mvexpand, nomv anomalies, outlier outlierfilter 範 外の数値を削除します。 anomalousvalue, cluster, kmeans outputcsv サーチ結果を指定した CSV ファイルに出力します。 outputlookup サーチ結果を、指定した静的ルックアップテーブルに書 outputcsv, き込みます。 inputcsv, outputtext inputlookup, lookup, outputlookup outputtext 結果の raw テキストフィールド (_raw) を _xml フィール ドに出力します。 38 outputtext overlap サマリーインデックス内で、時間が重なる、または見逃 collect したイベントをサーチします。 predict 時系列アルゴリズムを使って、フィールドの将来の値を x11 予測します。 rangemap RANGE フィールドに、一致する範 名を設定します。 rare フィールドの一番少ない値を表示します。 sirare, stats, top regex 指定した正規表現に一致しない結果を削除します。 rex, search relevancy イベントとクエリーの一致度を計算します。 reltime 「now」と「_time」間の差をユーザーが認識できる値 に 換し、その値をサーチ結果の reltime フィールドに追 加します。 rename 指定フィールドの名前を 更します (ワイルドカードを 使って複数のフィールドを指定できます)。 replace 指定フィールドの値を、指定値に置換します。 rest REST エンドポイントにアクセスして、返されたエン ティティをサーチ結果として表示します。 reverse 結果の並び順を逆にします。 head, sort, tail 「groups」と言う名前の Perl 正規表現を指定し、サー チ時にフィールドを抽出します。 extract, kvform, rex rtorder リアルタイムサーチからイベントをバッファに格納し て、可能な時にそれらを時間の昇順に生成します run scriptを参照してください。 savedsearch macro、 保存 みサーチのサーチ結果を返します。 savedsplunk script run convert multikv, xmlkv, regex サーチの一環として外部 Perl または Python スクリプト を実行します。 scrub サーチ結果を匿名化します。 search Splunk インデックスから、一致するイベントを探しま す。 searchtxn 指定したサーチ制約内のトランザクションイベントを 索します。 transaction selfjoin 結果を自身と結合します。 join sendemail サーチ結果を指定したメールアドレスに送信します。 set サブサーチで set 操作を実行します。 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 統計情報を提供します。必要に じてフィールド別にグ ループ化します。「stats、chart、および timechart の関 数」も参照してください。 39 eventstats, top, rare strcat 文字列値を連結します。 streamstats ストリーミングを利用して、サマリー統計情報をすべて eventstats、stats のサーチ結果に追加します。 table 指定フィールドを使ってテーブルを作成します。 tags サーチ結果の指定フィールドに、タグを使って注釈を付 eval けます。 tail 指定した結果の最後の n 件を返します。 head, reverse timechart する統計情報テーブルで、タイムライングラフを作成 します。「stats、chart、および timechart の関数」も参 照してください。 chart, bucket rare, stats top common フィールドで一番多い値を表示します。 transaction transam 各結果をトランザクションにグループ化します。 fields transpose サーチ結果の行を列として再フォーマットします。 trendline フィールドの移動平均を算出します。 typeahead 指定されたプリフィックスの先行入力情報を返します。 typelearner 提案するイベントタイプを生成します。 typer typer サーチ結果の eventtype を算出します typelearner uniq 前の結果と完全に重複する任意のサーチを削除します。 dedup untable 結果を、表形式から stats 出力に似た形式に 換しま す。xyseries および maketable と逆の処理を行いま す。 where データに任意のフィルタリングを実行します。「eval と where の関数」も参照してください。 eval x11 季節パターンを削除して、データの傾向を判断できま す。 predict xmlkv XML キーと値のペアを抽出します。 xmlunescape XML のエスケープを解除します。 xpath XML パスを再定義します。 xyseries 結果をグラフ化に適した形式に 換します。 timechart extract, kvform, multikv, rex eval と where の 関数 これらの関数は、eval および where コマンドと一緒に、および eval 式の一部として使用できます。 関数 abs(X) case(X,"Y",...) ceil(X), ceiling(X) 明 この関数は数値 X を取り、そ の絶 値を返します。 例 この例では、absnum を返します。absnum の値は、数値フィールド number の絶 値です。 ... | eval absnum=abs(number) この関数は引数ペア X と Y を 取り、X 引数の論理式の評価 この例は、 する HTTP ステータスコードの 明を返します。 が真 (True) の場合、 する Y 引数を返します。どれも真 ... | eval description=case(error == 404, "Not found", error == (True) でない場合は、デフォ 500, "Internal Server Error", error == 200, "OK") ルトでは NULL が返されま す。 この関数は、数値 X の天井値 を返します。 この例では、n=2 を返します。 ... | eval n=ceil(1.9) この関数は、特定のサブネッ 40 cidrmatch("X",Y) coalesce(X,...) トに所属する IP アドレスを識 別します。この関数は 2 つの この例では、サブネットに一致する IP アドレスが ip フィールドの値であ 引数を使用します。最初の引 る、addy フィールドが返されます。 数は引用符で んだ CIDR サブ ... | eval addy=cidrmatch("123.132.32.0/25",ip) ネット、2 番目の引数は照合 する IP アドレスでフィールド 値の場合もあります。 この関数は任意の数の引数を 取得して、ヌルではない最初 の値を返します。 IP アドレスが clientip または ipaddress に抽出されている、一連のイベ ントがある場合を考えてみましょう。この例は、新しいフィールド 定義しています。このフィールドは、どちらがヌル (当該イベントに) で ないかに じて、clientip または </code>ipaddress</code> の値を取りま す。 ... | eval ip=coalesce(clientip,ipaddress) commands(X) この関数はサーチ文字列 X ま たはサーチ文字列 X を含む フィールドを取り、X 内で使 ... | eval x=commands("search foo | stats count | sort count") 用されているコマンドのリス トを含む複数値フィールドを 「search」、「stats」、および「sort」を含む複数値フィールド x を返し 返します (ログイベントの監査 ます。 を分析する場合を除いて、一 般的にこれの使用はお勧めで きません)。 exact(X) この関数は式 X を倍精度浮動 小数点計算で評価します。 exp(X) ... | eval n=exact(3.14 * num) この例は y=e3 を返します。 この関数は数値 X を取り、eX を返します。 ... | eval y=exp(3) この例では、1 を返します。 floor(X) この関数は、数値 X の底値を 返します。 if(X,Y,Z) この関数は 3 つの引数を取り ます。最初の引数 X は論理演 error の値を評価して、error=200 の場合は err=OK を、そうでない場合は 算式です。X の評価が 真 (True) の場合、結果は 2 番目 err=Error を返します。 の引数 Y になります。オプ ... | eval err=if(error == 200, "OK", "Error") ションとして、X の評価が偽 (False) の場合、結果は 3 番目 の引数 Z を返します。 isbool(X) この関数は引数 X を取り、X がブールの場合は真 (True) を 返します。 ... | eval n=floor(1.9) ... | eval n=if(isbool(field),"yes","no") または ... | where isbool(field) ... | eval n=isint(field) isint(X) isnotnull(X) この関数は引数 X を取り、X が整数の場合は真 (True) を返 します。 この関数は引数 X を取り、X がヌルでない場合は真 (True) を返します。フィールド (X) に値が含まれているかどうか を確認する場合に役立ちま す。 または ... | where isint(field) ... | eval n=if(isnotnull(field),"yes","no") または ... | where isnotnull(field) ... | eval n=if(isnull(field),"yes","no") isnull(X) この関数は引数 X を取り、X がヌルの場合は真 (True) を返 します。 または ... | where isnull(field) 41 ... | eval n=if(isnum(field),"yes","no") isnum(X) この関数は引数 X を取り、X が数値の場合は真 (True) を返 します。 または ... | where isnum(field) ... | eval n=if(isstr(field),"yes","no") isstr() この関数は引数 X を取り、X が文字列の場合は真 (True) を 返します。 len(X) この関数は文字列 X の文字長 を返します。 like(X,"Y") この関数はフィールド X と引 用符で まれた文字列 Y の 2 つ の引数を取り、最初の引数が Y の SQLite パターンと似てい る場合にのみ真 (True) を返し ます。 または ... | where isstr(field) ... | eval n=len(field) この例では、フィールド値が foo で始まる場合に islike=TRUE を返しま す。 ... | eval islike=like(field, "foo%") または ... | where like(field, "foo%") この例は、bytes の値の自然 数を返します。 ln(X) この関数は数値 X を取り、そ の自然 数を返します。 log(X,Y) この関数は、1 つまたは 2 つ の数値引数を取り、2 番目の 引数を底とした最初の引数 X の 数を返します。2 番目の引 数 Y が省略されている場合、 この関数は 10 を底とした数 値 Xの 数を返します。 lower(X) この関数は文字列引数を取 り、小文字版の文字列を返し この例は、username フィールドの値を小文字で返します。 ます。大文字を返すための、 ... | eval username=lower(username) upper() 関数も用意されていま す。 ltrim(X,Y) この関数は 1 つまたは 2 つの 文字列引数 X および Y を取 り、Y 内の文字を左側からト リミングした X を返します。 Y が指定されていない場合、 スペースおよびタブがトリミ ングされます。 match(X,Y) この関数は正規表現文字列 Y を X の値と比較して、論理値 を返します。X が Y に定義さ れているパターンに一致する 場合に、T (真) が返されま す。 max(X,...) この関数は引数 X の任意数を 取り、最大値を返します。X は数値または文字列になりま す。文字列は数値よりも大き くなります。 md5(X) この関数は、文字列値 X の MD5 ハッシュを返します。 min(X,...) この関数は引数 X の任意数を 取り、最小値を返します。X は数値または文字列になりま す。文字列は数値よりも大き ... | eval lnBytes=ln(bytes) ... | eval num=log(number,2) この例は、x="abcZZ" を返します。 ... | eval x=ltrim(" ZZZZabcZZ ", " Z") この例は、フィールドが IP アドレスの基本パターンに一致している場合 にのみ真を返します。この例では完全一致のために、^ と $ を使用してい ることに注意してください。 ... | eval n=match(field, "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") この例では、field の値に じて「foo」またはフィールドが返されます。 ... | eval n=max(1, 3, 6, 7, "foo", field) ... | eval n=md5(field) この例では、1 を返します。 ... | eval n=min(1, 3, 6, 7, "foo", field) 42 くなります。 mvappend(X,"Y",Z) この関数はフィールド X およ び Z、および引用符で んだ文 字列 Y の 3 つの引数を取り、 複数値結果を返します。Y の 値とフィールド Z の値が フィールド X の値に追加され ます。Z は、複数値または単 一値フィールドになります。 mvcount(X) この関数はフィールド X を取 り、フィールドが複数値 フィールドの場合は値数を、 単一値フィールドの場合は 1 を、それ以外の場合は NULL を返します。 この関数は任意の論理演算式 X に基づいて、複数値フィー ルドをフィルタリングしま す。論理演算式 X は、一度に 1 つのフィールドのみを参照 できます。 mvfilter(X) 注意:フィールド x の NULL 値も返します。NULL 値が不 要な場合は、式 mvfilter(x!=NULL) を使用し てください。. mvfind(X,"Y") ... | eval n=mvcount(multifield) この例は、最後が .net または .org で終了する、すべての フィールドの値 を返します。 ... | eval n=mvfilter(match(email, "\.net$") OR match(email, "\.org$")) 4.2.2 に登場します。この関数 は、複数値フィールド X 内 の、正規表現 Y に一致する値 を 索します。一致する値が あった場合、最初に一致した ... | eval n=mvfind(mymvfield, "err\d+") 値のインデックスが返されま す (0 から開始)。一致する値 がない場合は、NULL が返さ れます。 この関数は 2 つまたは 3 つの 引数 (フィールド X、数値 Y および Z) を取り、提供された インデックスを使って複数値 フィールドのサブセットを返 します。 mvindex(mvfield, の インデックスは 0 から開始するため、この例では multifield 内の 3 番目の 場合、endindex は包括的で省 値が返されます (存在する場合)。 略することができます。 startindex と endindex の両方 ... | eval n=mvindex(multifield, 2) が負の値になることもありま す。この場合、-1 が最後のエ レメントになります。 endindex を指定しない場合 は、単純に startindex に する 値が返されます。インデック スが範 外または無効な場合、 結果は NULL になります。 startindex, [endindex]) mvindex(X,Y,Z) mvjoin(X,Y) この関数は、複数値フィール この例は、セミコロンを区切り文字に使って、「foo」の個別の値を結合 ド X と文字列区切り記号 Y の します。 2 つの引数を取り、Y を使っ ... | eval n=mvjoin(foo, ";") て X の各値を結合します。 この関数は、数値範 の複数値 フィールドを作成します。開 43 mvrange(X,Y,Z) 始番号 X、終了番号 Y (除 外)、およびオプションの 分 Z この例は、値 1、3、5、7、9 を持つ複数値フィールドを返します。 の、最高で 3 つの引数を取り ... | eval mv=mvrange(1,11,2) ます。 分が期間 ('7'd など) の 場合、開始番号と終了番号は エポック時として処理されま す。 mvzip(X,Y) この関数は 2 つの複数値 フィールド X と Y を取り、X の最初の値 を Y の最初の値 と、次に 2 番目の値同士を... のように結合していきます。 Python の zip コマンドと似て います。 now() この関数は引数を取らず、 サーチの開始時刻を返しま す。時刻は UNIX 時刻または エポックからの秒数で表され ます。 null() この関数は引数を取らず、 NULL を返します。評価エン ジンは NULL を使って「値な し」を表し、フィールドの値 を消去するために NULL を設 定します。 nullif(X,Y) この関数はフィールド X と Y の 2 つの引数を取り、引数が 異なる場合は X を返します。 そうでない場合は NULL を返 します。 pi() この関数は引数を取らず、精 度が 11 桁のパイ定数を返し ます。 ... | eval n=server=mvzip(hosts,ports) ... | eval n=nullif(fieldA,fieldB) この関数は 2 つの数値引数 X pow(X,Y) と Y を取り、XY を返しま す。 この関数は引数を取らず、0 random() 231-1 の範 の疑似乱数を返し ます。例: 0…2147483647 この関数はエポック時 X を最 初の引数、相 時間指定子 Y を relative_time(X,Y) 2 番目の引数として取り、Y ... | eval n=relative_time(now(), "-1d@d") を X に適用したエポック時値 を返します。 replace(X,Y,Z) round(X,Y) この関数は、文字列 X 内の正 規表現文字列 Y に一致する各 文字列を、代替文字列 Z で修 正した文字列を返します。3 番目の引数 Z も、正規表現に 一致するグループを参照する ことができます。 この関数は 1 つまたは 2 つの 数値引数 X と Y を取り、X を Y に指定されている小数位で 丸めた値を返します。デフォ ルトでは、整数に丸められま す。 この関数は 1 つまたは 2 つの 文字列引数 X および Y を取 り、Y 内の文字を右側からト この例では、月と日を入れ替えた日付を返します。たとえば、入力が 1/12/2009 の場合、12/1/2009 が返されます。 ... | eval n=replace(date, "^(\d{1,2})/(\d{1,2})/", "\2/\1/") この例では、n=4 を返します。 ... | eval n=round(3.5) この例では、n=2.56 を返します。 ... | eval n=round(2.555, 2) この例は、x="ZZZZabc" を返します。 44 rtrim(X,Y) リミングした X を返します。 Y が指定されていない場合、 スペースおよびタブがトリミ ングされます。 searchmatch(X) この関数は、サーチ文字列と なる 1 つの引数 X を取りま す。この関数は、イベントが サーチ文字列に一致した場合 にのみ、真 (True) を返しま す。 sigfig(X) この関数は 1 つの数値引数 X を取り、その数値を適切な有 効数字に丸めます。つ ... | eval n=rtrim(" ZZZZabcZZ ", " Z") ... | eval n=searchmatch("foo AND bar") 1.00*1111 = 1111、しかし spath(X,Y) 入力ソースフィールド X、お よび spath 式 Y (X から抽出す る値の場所を表した XML また は JSON 形式のパス) を取り ます。Y がリテラル文字列の 場合は、引用符で む必要があ ります (spath(X,"Y"))。Y が フィールド名 (パスの値を持 つ) の場合は、引用符は必要あ りません。結果が複数値 フィールドになることもあり ます。詳細は、spath サーチ コマンドを参照してくださ い。 split(X,"Y") この関数は、フィールド X お よび区切り文字 Y の 2 つの引 数を取り、X の値を区切り文 字 Y で分割した複数値フィー ルドを返します。 sqrt(X) この関数は 1 つの数値引数 X を取り、その平方根を返しま す。 strftime(X,Y) この引数はエポック時の値 X を最初の引数として取り、2 番目の引数 Y に指定されてい る書式で文字列として表示し ます。書式設定オプションの 詳細については、「共通の時 間書式設定 数」を参照してく ださい。 strptime(X,Y) この引数は文字列 X で表され る時刻を取り、Y に指定され ている書式を使ってそれを解 析します。書式設定オプショ ンの詳細については、「共通 の時間書式設定 数」を参照し てください。 substr(X,Y,Z) この関数は、2 つまたは 3 つ の引数を取ります。X は文字 列、Y と Z は数値となりま す。Y から始まり、Z に指定 されている文字数までの、X の文字列の一部を返します。 Z が指定されていない場合 は、残りの文字列を返しま す。 ... | eval n=sigfig(1.00*1111) は n=1110 を返します。 この例は、locDesc エレメントの値を返します。 ... | eval locDesc=spath(_raw, "vendorProductSet.product.desc.locDesc") この例は、twitter イベントから hashtags を返します。 index=twitter | eval output=spath(_raw, "entities.hashtags") ... | eval n=split(foo, ";") この例では、3 を返します。 ... | eval n=sqrt(9) この例では、_time フィールドから時間と分を返します。 ... | eval n=strftime(_time, "%H:%M") この例では、timeStr フィールドから時間と分を返します。 ... | eval n=strptime(timeStr, "%H:%M") この例では、「str」と「ing」を連結して「string」を返します。 ... | eval n=substr("string", 1, 3) + substr("string", -3) インデックスは SQLite セマン 45 ティクスに準じているため、1 から始まり、負のインデック スも使用できます。負のイン デックスは、文字列の最後か ら開始することを表していま す。 time() この関数は実時間をマイクロ 秒の単位まで返します。time() の値は、eval コマンドにより イベントが処理された時期に 基づいて、各イベントに して 異なります。 tonumber("X",Y) この関数は入力文字列 X を数 値に 換します。Y はオプショ ンで、 換する数値の基数を定 この例では、164 を返します。 義するために用いられます。 Y は 2 36 で、デフォルトは ... | eval n=tonumber("0A4",16) 10 です。入力を数値に解析で きなかった場合は、NULL が 返されます。 この関数は、入力値を文字列 に 換します。入力値が数値の 場合、それが文字列に 換され ます。入力値が論理値の場合 は、 する文字列値、真 (True) または偽 (False) が返されま す。 この関数には、最低 1 つの引 数 X が必要です。X が数値の 場合、2 番目の引数 Y は省略 可能で、また "hex" "commas" または "duration" になりま す。 tostring(X,Y) この例は、「True 0xF 12,345.68」を返します。 ... | eval n=tostring(1==1) + " " + tostring(15, "hex") + " " tostring(12345.6789, "commas") は、 この例は、foo=615 and foo2=00:10:15 を返します。 ... | eval foo=615 X を 16 進形式に 換しま | eval foo2 = tostring(foo, "duration") す。 tostring(X,"hex") tostring(X,"commas") はカンマを使って X に 書式を設定し、数値に小 数が含まれている場合 は、小数第 2 位に丸め ます。 tostring(X,"duration") は、秒の X を認識でき る時間形式 HH:MM:SS に 換します。 trim(X,Y) この関数は 1 つまたは 2 つの 文字列引数 X および Y を取 り、Y 内の文字を両側からト リミングした X を返します。 Y が指定されていない場合、 スペースおよびタブがトリミ ングされます。 typeof(X) この関数は 1 つの引数を取 り、そのタイプの文字列表記 を返します。 upper(X) この関数は文字列引数を取 り、大文字版の文字列を返し ます。小文字を返すための、 lower() 関数も用意されていま この例は、「abc」を返します。 ... | eval n=trim(" ZZZZabcZZ ", " Z") この例は、「NumberStringBoolInvalid」を返します。 ... | eval n=typeof(12) + typeof("string") + typeof(1==2) + typeof(badfield) この例は、username フィールドの値を大文字で返します。 ... | eval n=upper(username) 46 す。 urldecode(X) validate(X,Y,...) この関数は 1 つの URL 文字 列引数 X を取り、エスケープ されていない、または復号化 された URL 文字列を返しま す。 この関数は、論理式 X と文字 列 Y の 2 つの引数ペアを取 り、偽 (False) と判定された 最初の式 X に する文字列 Y を返します。すべてが真 (True) の場合はデフォルトの NULL が返されます。 この例では、「http://www.splunk.com/download?r=header」が返されま す。 ... | eval n=urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader") この例は、有効なポートを確認するための簡単なチェックを行います。 ... | eval n=validate(isint(port), "ERROR: Port is not an integer", port >= 1 AND port <= 65535, "ERROR: Port is out of range") stats、 chart、および timechart の 関数 これらは、chart、stats、および timechart コマンドで使用できる統計関数です。 stats に関連する関数は、eventstats および streamstats とも関連しています。 chart、stats、および timechart に関連する関数は、それぞれに するサマリーインデックス版の関数 sichart、sistats、および sitimechart にも関連しています。 スパークラインに関連する関数も同 です。スパークラインは、chart と stats にのみ適用されることに注意 してください。 関数 avg(X) 明 コマンド この関数は、フィールド X の平均値を返しま す。mean(X) も参照してください。 chart, stats, timechart, sparkline() 例 この例は、平均 答時間を返 します。 avg(responseTime) この例では、status の値が 404 のイベント数を返しま す。 count(eval(status="404")) c(X) | count(X) この関数は、フィールド X の登場回数を返し chart, stats, ます。一致する特定のフィールド値を示す場 timechart, 合は、X を eval(field="値")として指定してくだ sparkline() さい。 これらはイベント数のス パークラインを生成しま す。最初の関数は _raw フィールドを参照します。2 番目は、user フィールドで イベントをカウントしま す。 sparkline(count) sparkline(count(user)) この例は、一意の device 数 のスパークラインを生成 し、フィールド名を 「numdevicesnumdevices」 に 更します。 この関数は、フィールド X の一意の値数を返 distinct_count(X) します。 dc(X) | sparkline(dc(device)) AS chart, stats, numdevices timechart, sparkline() この例は、各 sourcetype の 一意のソース数をカウント し、カウントを 5 分間の期 間で分割します。 sparkline(dc(source,5m)) by sourcetype 47 earliest(X) この関数は、フィールド X の値の、時系列的 にもっとも早く登場した値を返します。 chart, stats, estdc(X) この関数は、フィールド X の一意の値の推定 数を返します。 chart, stats, estdc_error(X) この関数は、フィールドの一意の値の推定数 の理論的誤差。誤差は、「abs(estimate_value - real_value)/real_value」の比率を表していま す。 first(X) この関数は、フィールド X の初めて登場した 値を返します。 一般的に、フィールドの最初 に登場した値は、stats コマンドのイベント入 力順序と相 的な、このフィールドのもっとも 最近のインスタンスになります。 last(X) この関数は、フィールド X の最後に登場した 値を返します。 一般的に、最後に登場した値 は、stats コマンドへのイベント入力順序と相 的な値になります。 latest(X) この関数は、フィールド X の値の、時系列的 にもっとも く登場した値を返します。 list(X) この関数は、フィールド X のすべての値のリ ストを、複数値エントリとして返します。値 の順序は、入力イベントの順序を反映してい ます。 max(X) この関数は、フィールド X の最大値を返しま す。X の値が数値でない場合、辞書的順序に よって最大値が 索されます。 mean(X) この関数は、フィールド X の算術平均を返し ます。avg(X) も参照してください。 median(X) この関数は、フィールド X の中央値を返しま す。 min(X) この関数は、フィールド X の最小値を返しま す。X の値が数値でない場合、辞書的順序に よって最小値が 索されます。 mode(X) この関数は、フィールド X の最頻値を返しま す。 timechart timechart chart, stats, timechart chart, stats, timechart chart, stats, timechart chart, stats, timechart chart, stats, timechart chart, stats, timechart, sparkline() max(size) chart, stats, この例は、「kbps」の値の 平均値を返します。 timechart, sparkline() この関数は、日当たりのフィールド X の値を 返します。 mean(kbps) chart, stats, timechart chart, stats, timechart chart, stats, timechart この関数は、フィールド Y の X 番目のパーセ ンタイル値を返します。関数 perc、p、および upperperc は、要求された整数パーセンタイル p<X>(Y) | の近似値を与えます。当社が使用している近 perc<X>(Y) | 似アルゴリズムは、任意のパーセンタイルに chart, stats, exactperc<X>(Y) | して 密な実際値境界を提供しています。関数 timechart upperperc<X>(Y) perc および p は、範 の下限を表す単一の数 を、upperperc は上限を返します。exactperc は正確な値を提供しますが、高濃度フィール ドの場合は非常にコストが高くなります。 per_day(X) この例は、「size」の最大 値を返します。 timechart この例は、フィールド 「total」の 5 番目のパーセ ンタイル値を返します。 perc5(total) この例は、日当たりの フィールド「total」の値を 返します。 per_day(total) per_hour(X) この関数は、時間当たりのフィールド X の値 を返します。 timechart この例は、時間当たりの フィールド「total」の値を 返します。 per_hour(total) 48 per_minute(X) この関数は、分当たりのフィールド X の値を 返します。 timechart この例は、分当たりの フィールド「total」の値を 返します。 per_minute(total) per_second(X) この例は、秒当たりの 「kb」の値を返します。 この関数は、秒当たりのフィールド X の値を 返します。 timechart per_second(kb) この関数は、フィールド X の値が数値の場合 にのみ、フィールド X の最大値と最小値の差 を返します。 range(X) chart, stats, timechart, sparkline() この例は、ワイルドカード が使われているフィールド chart, stats, 「*delay」 (「delay」と 「xdelay」の両方に ) の標 timechart, sparkline() 準偏差を返します。 この関数は、フィールド X の標本標準偏差を 返します。 stdev(X) stdev(*delay) stdevp(X) chart, stats, この関数は、フィールド X の母標準偏差を返 します。 timechart, sparkline() chart, stats, この関数は、フィールド X の値合計を返しま す。 sum(X) timechart, sparkline() values(X) この関数は、フィールド X のすべての一意の 値のリストを、複数値エントリとして返しま す。値の順序は、辞書的順序です。 var(X) この関数は、フィールド X の標本分散を返し ます。 timechart, sparkline() chart, stats, timechart chart, stats, timechart, sparkline() chart, stats, この関数は、フィールド X の母分散を返しま す。 varp(X) date_minute)) chart, stats, この関数は、フィールド X の値の平方の合計 を返します。 sumsq(X) sum(eval(date_hour * timechart, sparkline(). 共通の日付 /時間書式 数 ここには、eval 関数の strftime() および strptime() の時間書式の定義、およびイベントデータ内のタイムスタンプの 記述に用いられる 数を記載しています。また、他の時間関数 relative_time() および now() を引数として使用す ることもできます。 時間 数 数 明 %Ez Splunk 固有のタイムゾーン (分)。 %H 先頭に 0 が付いた、10 進数の時間 (24 時間形式)。(00 23) %I 先頭に 0 が付いた時間 (12 時間形式)。 (01-12) %k %H のように、10 進数の時間 (24 時間形式) だけれども、先頭の 0 はスペースに置換され ます。(0 23) %M 10 進数の 分。(00 59) %N 幅による 1 秒未 の単位。(%3N = ミリ秒、 %6N = マイクロ秒、 %9N = ナノ秒) 49 %p AM または PM。 %Q 1970-01-01 00:00:00 UTC の 1秒未 の単位コンポーネント。(%3Q = ミリ秒、 %6Q = マイ クロ秒、 %9Q = ナノ秒で、値は 000 999) %S 10 進数の 秒。(00 61) %s UNIX エポック時のタイムスタンプ、またはエポック (1970-01-01 00:00:00 +0000 (UTC)) からの秒数。(1352395800 は、2012 年 11 月 8 日木曜日の 09:30:00) %T 24 時間表記の時刻 (%H:%M:%S)。 %Z タイムゾーンの省略形。(東部標準時は EST) %:z 時間と分で表された (+hhmm または -hhmm) UTC からのタイムゾーンオフセット。(東部 標準時は -0500) %% リテラル「%」文字。 日付 数 数 %F 明 %Y-%m-%d (ISO 8601 日付フォーマット) と同じ。 日の指定 数 明 %A 完全な曜日名。(Sunday、...、Saturday) %a 曜日の省略形。(Sun、...、Sat) %d 先頭の 0 が付いた 10 進数の日付。(00 31) %e %d のように、10 進数の日付だけれども、先頭の 0 はスペースに置換されます。(1 31) %j 先頭の 0 が付いた 10 進数のその年の 過日数 (通日)。(001 366) %w 10 進数の曜日。(0 = 日曜、...、6 = 土曜) 月の指定 数 明 %b 月名の省略形。(Jan、Feb、など) %B 完全な月名。(January、February、など) %m 10 進数の月。(01 12) 年の指定 数 明 %y 10 進数の年 (世紀なし)。(00 99) %Y 10 進数の年 (世紀付き)。 (2012) 例 時間書式文字列 結果 %Y-%m-%d 2012-12-31 %y-%m-%d 12-12-31 %b %d, %Y Feb 11, 2008 q|%d%b '%y = %Y-%m-%d| q|23 Apr '12 = 2012-04-23| 50 サ ー チの時間修飾子 修飾子を使ってサーチの開始/終了時刻を指定して時間範 をカスタマイズしたり、サーチ結果のタイムスタンプの 書式を 更したりすることができます。 時間修飾子の一 覧 カスタム/相 時間範 を指定するには、修飾子 earliest および latest を使用することをお勧めします。また、相 時 間を指定する際には、現在の時刻を表す now を使用できます。 修飾子 構文 明 earliest earliest=[+|- latest latest=[+|- now now() 現在の時刻を表します。earliest に指定すると、now() は サーチの開始時刻になります。 時間 time() リアルタイムサーチの場合、time() は現在のマシン時刻に なります。 ]<time_integer><time_unit>@<time_unit> ]<time_integer><time_unit>@<time_unit> サーチの時間範 のもっとも早い時間を指定します。 サーチの時間範 のもっとも い時間を指定します。 サーチウィンドウのカスタマイズについては、『サーチマニュアル』の「サーチへのリアルタイム時間範 ウィン ドウの指定」を参照してください。 相 時間修飾子の指定方法 時間の量を示す文字列を使って相 時間を指定することができます (整数と単位)。また、必要に じて「スナップ」 時間単位を使用することもできます。例:[+|-]<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 曜日:w0 (日曜日)、w1、w2、w3、w4、w5、および w6 (土曜日) 月:mon、month、months 四半期:q、qtr、qtrs、quarter、quarters 年:y、yr、yrs、year、years 注意:日曜の場合は、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 になります。 より詳細な相 時間定義を行うために、スナップ時間からのオフセットを指定または時間修飾子と一緒に 「チェーン」することができます。たとえば、@d-2h は今日の開始 (午前 0 時) にスナップし、そこから 2 時 間差し引きます。 最寄りのまたは一番 い時間にスナップする場合、Splunk は常に後方にスナップまたはもっとも い時間に切 51 り捨てた値 (指定時間以降ではない) にスナップします。たとえば、11:59:00 で時間に「スナップ」した場 合、12 時ではなく 11 時にスナップします。 スナップ量の前に時間オフセットを指定しない場合、Splunk は「現在の時刻を指定された時間量にスナッ プ」するものと解釈します。たとえば、現在時刻が金曜日の午後 11 時 59 分で、土曜日にスナップするため に @w6 を使用した場合、結果は前の土曜日の午前12時 01 分になります。 例 1:現在の週の最初からイベントをサーチするには: earliest=@w0 例 2:先週の営業日からイベントをサーチするには: earliest=-7d@w1 latest=@w6 例 3:11 月 5 日午後 8 時から 11 月 12 日午後 8 時までなどのように、正確な境界を指定するには、時間形式 %m/%d/%Y:%H:%M:%S を使用します。 earliest="5/11/2012:20:00:00" latest="12/11/2012: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 時間) より前のイベントを サーチします。 . 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 デ ー タタイプの一 覧 52 このトピックはすでに失効しています。 このページには、サーチ言語の構文を定義するために使用するデータタイプが記載されています。これらの例で使 用されているコマンドの詳細は、「サーチコマンドリファレンス」を参照してください。 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> 明:「参照キー=参照値」の組み合わせの登場頻度 (合計イベント数に する割合)。 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 53 構文: (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> | <collecttestmode> 明:なし collect-file 構文: file=<string> 明:イベントの書き込み先ファイル名。省略可。デフォルトは「<random-num>_events.stash」になりま す。ファイル名内にプレースホルダとして $timestamp$、$random$ を使用できます。これらのプレースホ ルダは、それぞれタイムスタンプ、および乱数に置換されます。 collect-index 構文: index=<string> 明:Splunk がイベントを追加するインデックス名。注意:イベントを追加するインデックスは存在してい なければいなければなりません。インデックスは自動的には作成されません。 collect-marker 構文: marker=<string> 明:各イベントに追加する文字列で、通常はキーと値のペアになります。省略可。デフォルトは「」です。 collect-spool 構文: spool=<bool> 明:真 (True) を設定すると (デフォルト)、サマリーインデックスファイルが Splunk のスプールディレクト 54 リに書き込まれ、そこで自動的にインデックスが作成されます。偽 (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>|<contingency-totalstr> 明:分割表のオプション 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(*) convert-ctime 55 構文: 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>|<convert-none>|<convertnum>|<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>?")" 明:ユーザーが理解できる ASCII 形式の時間文字列をエポック時に 換します。 換元時刻の形式を正しく指 定するには、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/<app-name>/lookups/ になければなりません。 56 copyresults-sid-option 構文: sid=<string> 明:結果をコピーするジョブのサーチ ID。このコマンドを実行するユーザーには、この ID が指すジョブに する 限が必要であることに注意してください。 correlate-type 構文: type=cocur 明:算出する相関関係の種類。現在の所は、2 つのフィールドが同じイベント内に存在した回数の割合を含 んだ、共起相関関係マトリックスしか利用できません。 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 明:デバッグコマンドで利用できるコマンド dedup-consecutive 構文: consecutive=<bool> 明:連続するイベントのみを排除します dedup-keepempty 構文: keepempty=<bool> 明:イベントの 1 つまたは複数の指定フィールドにヌル値が存在する場合、イベントは保持される (keepempty=true の場合) か、または破棄されます。 dedup-keepevents 構文: keepevents=<bool> 明:すべてのイベントを保持し、代わりに特定の値を削除します default 構文: 構文なし 明:なし delim-opt 構文: delim=<string> 明:トランザクションのイベントフィールドにある元のイベント値を区切るために使用する文字列。 email_address 構文: <文字列> 明:なし 例: [email protected] 57 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 構文: 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>)*) 明:フィールドと文字列を連結します 58 例: first_name."".last_nameSearch Eval 式 構文: <eval-math-exp> | <eval-concat-exp> | <eval-compare-exp> | <eval-bool-exp> | <eval-function-call> 明:宛先フィールドの値を表す、リテラル、フィールド、演算子、および関数の組み合わせ。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|min|mvco 明: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$")) 例: 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>)* ")" 明:なし 59 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> 明:指定した eventtype に一致するイベントをサーチします 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 構文: <文字列> 明:transforms.conf に存在するスタンザ 例: access-extractions fields-opt 構文: fields=<string>?(,<string>)* 明: 止されました:transaction では、指定するフィールドリストを直接引数として指定することをお勧め します。たとえば、「transaction fields="foo,bar"」ではなく、「transaction foo bar」のように指定します。 fields 制約は、フィールドリストを取得します。サーチ結果をトランザクションのメンバーにするために、 指定されている各フィールドに値が存在する場合、当該トランザクション内の他のメンバーと同じ値でなけ ればなりません。たとえば、ホストに制約がある場合、「host=mylaptop」を持つサーチ結果と 「host=myserver」を持つサーチ結果を同じトランザクションに入れることはできません。ただし、ホスト値 を持たないサーチ結果は不整合が生じないため、「host=mylaptop」を持つサーチ結果と同じトランザクショ ンに入れることができます。 例: fields=host,cookie grouping-field 構文: <field> 明:デフォルトで typelearner は、まず grouping-field の値によりイベントをグループ化し、次に含まれて いるキーワードに基づいて、それらのグループをさらに結合していきます。デフォルトのグループ化フィー 60 ルドは「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> 明:input.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 例: overwrite=f 例: usetime=t keepevicted-opt 構文: keepevicted=<bool> 明:削除したトランザクションを出力するかどうかを指定します。evicted フィールドの値を確認すれば、 削除されたトランザクションと削除されていないトランザクションを判別することができます。削除された トランザクションの場合、フィールドには 1 が設定されます。 61 key-list 構文: (<string> )* 明:surrounding コマンドにフィルタを提供する、AND を使ったキーリスト kmeans-cnumfield 構文: cfield=<field> 明:各イベントのクラスタ番号のフィールド名を管理します。 kmeans-distype 構文: dt=(l1norm|l2norm|cityblock|sqeuclidean|cosine) 明:使用する距離メトリック (L1/L1NORM は 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 62 例: log 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 63 構文: hosts|sources|sourcetypes 明:返すメタデータのタイプを指定します minutesago 構文: minutesago=<int> 明:過去 N 分間をサーチします。(「startminutesago」と同等) monthsago 構文: monthsago=<int> 明:過去 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> 明:トランザクションの複数値フィールドを、元のイベントのリストの到着順に並べるか、または一連の一 意のフィールド値を辞書式に並べるかを指定します。フィールドのカンマ/スペース区切りリストを指定した 場合、それらのフィールドのみをリストとして表示します。 64 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 (四分位範 ) のみです。 outlier-uselower-opt 構文: uselower=<bool> 明:中央値を下回る値の外れ値をサーチするかどうかを指定します prefix-opt 構文: prefix=<string> 明:先行入力をオンにするプレフィックス 例: prefix=source quoted-str 構文: "" <string> "" 明:なし readlevel-int 構文: 0|1|2|3 明:イベントを読み込む深度を指定します。0:source/host/sourcetype のみ。1:0 と _raw。2:1 と kv、 3:2 と types (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, 65 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 構文: <文字列> 明: 保存 みサーチ名 例: mysavedsearch script-arg 構文: <文字列> 明:スクリプトに渡される引数。 例: [email protected] script-name-arg 構文: <文字列> 明:実行するスクリプト名からパスとファイル 張子を除いたもの。 例: sendemail search-modifier 構文: <sourcetype-specifier>|<host-specifier>|<source-specifier>|<savedsplunk-specifier>|<eventtypespecifier>|<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 66 構文: searchtimespanminutes=<int> 明:なし searchtimespanmonths 構文: searchtimespanmonths=<int> 明:なし select-arg 構文: <文字列> 明:http://www.sqlite.org/lang_select.html による、任意の値 SQL select 引数。select-arg に「from results」 が指定されていない場合、それが自動的に 入されます。SQL select クエリを、渡されたサーチ結果に して 実行します。select ステートメント内のすべてのフィールド参照には、先頭にアンダースコアを付ける必要 があります。そのため、「ip」は「_ip」として、「_raw」は「__raw」として\\参照する必要があります。 select コマンドの実行前には、前のサーチ結果が一時データベーステーブル「results」に保管されます。行 に値が存在していない場合は、空のサーチ結果を防止するために無視されます。 selfjoin-options 構文: overwrite=<bool> | max=<int> | keepsingle=<int> 明:selfjoin は、各結果を、join フィールドに同じ値を持つ他の結果と結合します。「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 構文: <文字列> 明:成果物を読み込むジョブのサーチ ID。 例: 1233886270.2 single-agg 構文: count|<stats-func>(<field>) 明:単一の集計を単一のフィールドに適用します (評価したフィールドも可能)。ワイルドカードは使用でき ません。イベントにまとめて適用する特別集計子「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>)|(match=(term 明:単純なログクラスタを設定するオプションです。「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」は、クラスタ番号を書き込むフィールド名です。デフォルトは、 67 「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> 明:指定した source からイベントをサーチします sourcetype-specifier 構文: sourcetype=<string> 明:指定した sourcetype からイベントをサーチします span-length 構文: <int:span>(<timescale>)? 明:各ビンの期間。タイムスケールを使用する場合、これは時間範 として使用されます。使用しない場 合、これは絶 バケツ「length」になります。 例: 2d 例: 5m 例: 10 split-by-clause 構文: <field> (<tc-option> )* (<where-clause>)? 明:分割 象フィールドを指定します。数値フィールドの場合、デフォルトの離散化が適用されます。 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) 68 例: 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 69 明:フィールドの先頭の値。 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>|<stats-values>|<statsrange> 明:統計集計子。 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 70 構文: values 明:複数値エントリとしての、このフィールドのすべての一意の値のリスト。値の並び順は、辞書式です。 stats-var 構文: var|varp 明:フィールドの {標本,母集 } 分散。 subsearch 構文: [<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>|<enddaysago 明:なし 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>) 71 明:Top 引数:showcount:count フィールド (countfield オプションを参照)およびその組のカウントを作成 するかどうかを指定します。(T) showperc:percent フィールド (percentfield オプションを参照) およびその 組の相 普及度を作成するかどうかを指定します。(T) rare:設定して top または common を呼び出すと、呼 び出し動作を rare として呼び出します。(F) limit:返す組数を指定します。0 を指定すると、すべての値が返 されます。(10) countfield:カウントを書き込む新規フィールド名 (デフォルトは「count」)。percentfield: パーセンテージを書き込む新規フィールド名 (デフォルトは「percent」)。 transaction-name 構文: <文字列> 明:トランザクションのサーチに使用する、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) 例: "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> 72 明:なし 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 wherethresh-comp 構文: (<|>)( )?<num> 明:集計したシリーズ値が、一定の閾値より大きいまたは小さい必要があることを指定する基準です。 例: < 100 例: > 2.5 x-field 構文: <field> 明:X 軸として使用するフィールド y-data-field 構文: <field> 明:グラフ化するデータを持つフィールド y-name-field 構文: <field> 明:データシリーズのラベルとして使用する値があるフィールド サ ー チコマンドリファレンス abstract 概要 各サーチ結果のサマリーを生成します。 73 構文 abstract [maxterms=int] [maxlines=int] オプション引数 maxterms 構文: maxterms=<int> 明:最大一致用語数。 maxlines 構文: maxlines=<int> 明:最大一致行数。 明 このデータ処理コマンドは、各サーチ結果の要約 (サマリー) を生成します。サマリーに存在している行の重要性 は、それに含まれるサーチ用語数、および近接する行に存在するサーチ用語数によって得点が付けられます。ある 行にサーチ単語が存在している場合、その隣接行も部分一致となり、コンテキストが返される場合があります。選 行間にジャンプが存在している場合、行は省略記号「...」でプレフィックスされます。 例 例 1:各サーチ結果に して、最高 5 行のサマリーを表示します。 ... |abstract maxlines=5 関 連項目 highlight Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、abstract コマンドの使用 方法に関する質問と回答をご覧ください。 accum 概要 指定された数値フィールドの現在までの合計値を保持します。 構文 accum <field> [AS <newfield>] 必要な引数 field 構文: <文字列> 明:数値を持つフィールド名。 オプション引数 newfield 構文: <文字列> 明:結果の書き込み先フィールド名。 明 が数値の各イベントに して、その数値の現在までの合計を保持し、それを同じフィールド (newfield が指定されて いる場合はそのフィールド) に書き込みます。 74 例 例 1:「total_count」フィールド内の「count」の、現在の合計を保存します。 ... | accum count AS total_count 関 連項目 autoregress, delta, streamstats, trendline Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、accum コマンドの使用方 法に関する質問と回答をご覧ください。 addcoltotals 概要 前のイベントのすべてのフィールドの合計を表すフィールドを持つ、新しいイベントを算出します。 構文 addcoltotals [labelfield=<field>] [label=<string>] オプション引数 label 構文: label=<string> 明:labelfield を指定した場合、label オプションで設定された値で、このサマリーイベントにそれが追加 されます。 labelfield 構文: labelfield=<field> 明:サマリーイベントの名前を指定します。 明 コマンドは、最後に各フィールドの合計を表す新たな結果を追加します。labelfield を指定した場 合、label オプションで設定された値で、このサマリーイベントにそのフィールドが追加されます。 addcoltotals 例 例 1:すべてのフィールドの合計を算出し、合計をサマリーイベント「change_name」に保存します。 ... | addcoltotals labelfield=change_name label=ALL 関 連項目 addtotals, stats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、addcoltotals コマンドの 使用方法に関する質問と回答をご覧ください。 addinfo 概要 75 現在のサーチについて、共通の情報を含むフィールドを追加します。 構文 | addinfo 明 サーチに関するグローバル情報を各イベントに追加します。現在の所、次のフィールドが追加されます: info_min_time:サーチのもっとも早い時間境界を指定します。 info_max_time:サーチのもっとも い時間境界を指定します。 ID。 info_search_time:サーチが実行された時間。 info_sid:イベントを生成したサーチの 例 例 1:サーチに関する情報を各イベントに追加します。 ... |addinfo 関 連項目 search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、adinfo コマンドの使用方 法に関する質問と回答をご覧ください。 addtotals 概要 各結果のすべての数値フィールドの合計を算出します。 構文 addtotals [row=bool] [col=bool] [labelfield=field] [label=string] [fieldname=field] field-list 必要な引数 field-list 構文: <field>... 明:1 つまたは複数の数値フィールドをスペースで区切ります。ワイルドカードを使用できます。 オプション引数 row データタイプ: <bool> 明:各結果に して、field-list の算術的合計を計算するかどうかを示します。デフォルトは真 (True) です。 col データタイプ: <bool> 明:各フィールドの合計を表す新たな結果 (サマリーイベント) を追加するかどうかを示します。デフォル トは偽 (false) です。 fieldname データタイプ: <field> 明: row=true の場合、これを使って合計を入れるフィールドの名前を指定します。 label データタイプ: <文字列> 明:labelfield を指定した場合、label オプションで設定された値で、このサマリーイベントにそれが追加 76 されます。 labelfield データタイプ: <field> 明: col=true の場合、これを使ってサマリーイベント名を指定します。 明 デフォルトの addtotals コマンド (row=true) は、field-list (ワイルドカードを使ったフィールドリスト) に一致す る、すべての数値フィールドの算術的合計を算出します。リストが空の場合は、すべてのフィールドが考慮されま す。合計は、指定されたフィールド、または指定されていない場合は total に入れられます。 の場合、addtotals は列合計を算出し、各フィールドの合計を表す新たな結果を最後に追加しま す。labelfield が指定されている場合、それは label オプションに設定されている値で、このサマリーイベントに 追加されるフィールドです。| addtotals col=true を使用する代わりに、addcoltotals コマンドを使ってサマリー イベントを算出することもできます。 col=t 例 例 1:各結果のすべての数値フィールドの合計を算出します。 ... | addtotals 例 2:各結果の数値フィールドの合計を算出し、合計を sum フィールドに保存します。 ... | addtotals fieldname=sum 例 3:与えられたリストに一致する数値フィールドの合計を算出し、合計を sum フィールドに保存します。 ... | addtotals fieldname=sum foobar* *baz* 例 4:すべてのフィールドの合計を算出し、合計をサマリーイベント「change_name」に保存します。 ... | addtotals col=t labelfield=change_name label=ALL 関 連項目 stats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、addtotals コマンドの使用 方法に関する質問と回答をご覧ください。 analyzefields 概要 他の離散型フィールドを予測できるかどうか、数値フィールドを分析します。 構文 af | analyzefields classfield=field 必要な引数 classfield 構文: classfield=<field> 明:複数クラス分析が可能ですが、最良の結果を得るためには、classfield に 2 つの一意の値が必要です。 明 field を離散型確率 数として使用して、すべての数値フィールドを分析し、それらのフィールドが classfield の値を 77 予測 (predict) できるかどうかを判断します。複数クラス分析が可能ですが、最良の結果を得るためには、 classfield に 2 つの一意の値が必要です。 analyzefields コマンドは、field、count、cocur、acc、および balacc の 5 つの列を持つテーブルを返します。 は、サーチ結果内のフィールド名です。 は、サーチ結果内のフィールドの登場回数です。 cocurは、classfield に するフィールドの cocurrence です。classfield のある各イベントに field が存在 する場合、cocur は 1 になります。 acc は、フィールドの値を使って classfield の値を予測する際の精度です。これは数値フィールドに しての み有効になります。 balacc (balanced accuracy) は、classfield の各値を予測する際の、非加重平均です。これは数値フィール ドに してのみ有効になります。 field count 例 例 1:「is_activated」の値を予測するために、数値フィールドを分析します。 ... | af classfield=is_activated 関 連項目 anomalousvalue Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、analyzefields コマンドの 使用方法に関する質問と回答をご覧ください。 anomalies スライディングウィンドウ内の一連のイベント内のフィールドの値に基づいて予期しないイベントを発見するに は、anomalies を使用します。anomalies コマンドは、イベントの新しい unexpectedness フィールドに、各イベ ントの意外性スコアを割り当てます。イベントが異常 (意外) とみなされるかどうかは、計算された意外性スコア に して比較される threshold の値によって判断されます。threshold よりも意外性スコアが大きい場合に、イベン トは意外または異常とみなされます。 注意:タイムラインサーチビューで anomalies を実行後、[フィールドの選 ] メニューを使ってイベントリストに unexpectedness フィールドを追加してください。 概要 イベントの「unexpectedness」 (意外さ) スコアを算出します。 構文 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 フィールドが追加されます。真 (True) を設定すると、イベントは削除されません。偽 (False) を設定すると、unexpected スコアが閾値未 の イベントが削除されます。デフォルトは偽 (false) です。 normalize データタイプ: normalize=<bool> 明:数値を正規化するかどうかを示します。field に正規化しないでカテゴリとして処理する数値データが 78 存在する場合は、normalize=false を設定します。デフォルトは真 (True) です。 maxvalues データタイプ: maxvalues=<int> 明:イベントのフィールド値の意外性を判断する際に、前のイベントを含めるスライディングウィンドウの サイズを指定します。この値は、10 10000 です。デフォルトは 100 です。 field データタイプ: field=<field> 明:イベントの意外性を判断する際の、分析 象フィールド。 デフォルトは _raw です。 blacklist データタイプ: blacklist=<filename> 明: $SPLUNK_HOME/var/run/splunk/BLACKLIST.csv にある、イベントの CSV ファイル名。到着イベン トがこのブラックリスト内のイベントに類似している場合、そのイベントは正常な (注目しない) イベントと して取り扱われ、意外性スコア 0.0 が与えられます。 blacklistthreshold データタイプ: blacklistthreshold=<num> 明:到着イベントをブラックリストイベントとして判断するための、類似度スコアを指定します。到着イベ ントの類似度スコアが blacklistthreshold を超えている場合、それは意外なイベントとしてマークされま す。デフォルトは 0.05 です。 by 句 構文: by <fieldlist> 明:意外性 出の結果を分離するための、フィールドのリストを指定するために用いられます。指定した フィールドの各値の組み合わせに して、それらの値を持つイベントが別個に取り扱われます。 明 イベントの意外性スコアの算出方法に興味がある方のために、このアルゴリズムは当社独自のものですが、おおま かに言えばイベント (X) の、前の一連のイベントセット (P) との類似性に基づいて算出されます。 unexpectedness = [s(P and X) - s(P)] / [s(P) + s(X)] ここで、s() はデータの類似性または均一性を表す測定基準です。この式は、X の追加が一連のイベントの類似性 にどれだけ影響するかの評価基準を提供し、異なるイベントサイズの正規化も行います。 前の anomalies コマンドの結果に して再度 anomalies コマンドを実行し、結果をさらに絞り込むことができま す。各実行では 100 件のイベントに して実行され、2 回目の anomalies の呼び出しでは約 10,000 件の前のイベン トウィンドウに して実行されます。 例 例 1:この例は、threshold を使った意外な (異常) イベントのサーチの調整方法を表しています。 index=_internal | anomalies by group | search group=* このサーチは、_internal インデックス内のイベントに注目して、同じ group 値を持つイベントセットの unexpectedness スコアを算出します。これは、各一意の group に する unexpectedness スコアの算出に用いられ る、スライディングウィンドウ内のイベントセットには、同じ group 値を持つイベントのみが含まれることを意味 しています。次に group フィールドを含むイベントのみを表示するために、search コマンドが用いられます。結 果の例を以下に示します。 デフォルトの threshold=0.01 では、これらのイベントの一部がとても類似度が高いことに注目してください。次 のサーチでは、threshold を少し やしています。 79 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」 (注目は不要) になります。これらの結果の例を以下に示します。 その他の例 例 1:もっとも関連するイベントを最初に表示します。ブラックリスト「boringevents」にあるイベントは無視し ます。 ... | anomalies blacklist=boringevents | sort -unexpectedness 例 2:トランザクションと一緒に使用して、異常な時間領域を探します。 ... | transaction maxpause=2s | anomalies 例 3:各ソースの意外 (異常) なイベントを別個に探します。あるソースのパターンが、別のソースの意外性スコア に影響することはありません。 ... | anomalies by source 関 連項目 anomalousvalue、cluster、kmeans、outlier Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、anomalies コマンドの使 用方法に関する質問と回答をご覧ください。 anomalousvalue 80 概要 不正な、または異常なサーチ結果を探します。 構文 anomalousvalue <av-option> [action] [pthresh] [field-list] 必要な引数 <av-option> 構文: minsupcount=<integer> | maxanofreq=<float> | minsupfreq=<float> | minnormfreq=<float> 明:ほんのわずかなイベントにのみ登場するフィールドは、あまり情報として有益ではありません (3 つの 値の中でどれが異常か?など)。minsupcount、maxanofreq、minsupfreq、および minnormfreq は、そのよう な情報として役立たないフィールドをフィルタリングするための閾値を設定します。 は、登場するイベントの割合 p を超えるフィールドが異常とみなされる場合に、そのフィール ドを 討 象から除外します。 minnormfreq=p は、登場するイベントの割合 p 未 のフィールドが正常とみなされる場合に、そのフィールド を 討 象から除外します。 minsupcount=N は、anomalousvalue が処理するイベントの N 件以上に登場するフィールドを、フィールドが 異常かどうかを決定するための考慮 象にすることを示します。 minsupfreq=p は minsupcount と同じですが、イベントの絶 値 N を指定する代わりに、イベントの最小割合 p (0 1) を指定します。 maxanofreq=p オプション引数 action 構文: action=annotate | filter | summary 明:意外性スコアを返すかどうか (annotate)、異常値を持つイベントをフィルタリングするかどうか (filter)、または異常統計の概要を返すかどうか (summary) を指定します。デフォルトは filter です。 action が annotate の場合、異常 (意外な) 値を持つイベントに、値の意外性スコアを示す新たなフィールド が追加されます。 action が filter の場合、異常値を持つイベントが分離されます。 action が summary の場合、各フィールドに して異常統計を要約したテーブルが生成されます。 field-list 構文: <field>, ... 明:考慮するフィールドのリスト。 pthresh 構文: pthresh=<num> 明:値を 則とみなすために、 たす必要がある確度閾値 (10 進数)。デフォルトは 0.01 です。 明 コマンドは、イベントセット全体に注目し、値が異常かどうかを決定する際に、値の分布を考慮 します。数値フィールドに して、発生頻度や平均からの標準偏差の値の点で異例と判断できるデータ値を識別ま たは要約します。 anomalousvalue 例 例 1:サーチ結果から、異例な値のみを返します。 ... | anomalousvalue これは、以下のサーチを実行する場合と同じです。 ...| anomalousvalue action=filter pthresh=0.01 . 例 2:ホスト「reports」からの異例な値を返します。 host="reports" | anomalousvalue action=filter pthresh=0.02 例 3:各数値フィールドに して、異例統計の要約を返します。 81 source=/var/log* | anomalousvalue action=summary pthresh=0.02 | search isNum=YES 関 連項目 af, analyzefields、anomalies、cluster、kmeans、outlier Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、anomalousvalue コマン ドの使用方法に関する質問と回答をご覧ください。 append サブサーチの結果を現在のサーチ結果に追加するには、append コマンドを使用します。append コマンドは、履歴 データに してのみ実行されます。リアルタイムサーチに使用しても、正常な結果は生成されません。 概要 サブサーチの結果を現在の結果に追加します。 構文 append [subsearch-options]* subsearch 必要な引数 subsearch 明:サーチパイプライン。サブサーチの詳細は、『サーチマニュアル』を参照してください。 オプション引数 subsearch-options 構文: maxtime=<int> | maxout=<int> | timeout=<int> 明:サブサーチの実行方法を指定します。 サブサーチのオプション maxtime 構文: maxtime=<int> 明:サブサーチの処理がここに指定した時間 (秒) 過すると、終了されます。デフォルトは 60 です。 maxout 構文: maxout=<int> 明:サブサーチから出力される結果行の最大数。デフォルトは 50000 です。 82 timeout 構文: timeout=<int> 明:サブサーチの完全完了まで待機する最大時間 (秒)。デフォルトは 120 です。 明 サブサーチの結果を、現在のサーチ結果の最後に新たな結果として追加します。 例 例1 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (October 18-25, 2010) 地震データを 使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレ ポートステーション番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。 昨日カリフォルニア州周辺で発生した地震数を算出して、次に地震発生回数合計を計算します。 source="eqs7day-M1.csv" Region="*California" | stats count by Region | append [search source="eqs7dayM1.csv" Region="*California" | stats count] この例では、カリフォルニア地域のすべての自身をサーチして (Region="*California")、次に個別の地域で発生し た地震数をカウントします。 コマンドは、split-by を使ってフィールドを分割したイベント数のカウントと同時に、イベント数の合計を カウントすることはできません。そのため、サブサーチを使って、地震発生回数合計をカウントしています。この カウント数は、append コマンドを使って前のサーチ結果に追加されます。 stats 両方のサーチが count フィールドを共有しているため、サブサーチの結果は列内の最後の行として表示されます。 基本的にこのサーチは、addcoltotals コマンドと類似の append コマンドを使って、列合計を追加しています。 例2 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行します。 Flower & Gift shop で昨日何か商品を購入した一意の顧客数をカウントして、次にそれを商品種別 (Candy、 Flowers、Gifts、Plants、および Balloons) ごとに分類します。また、各商品種別の購入が多い顧客、および商品 の購入量を記載したリストも生成します。 sourcetype=access_* action=purchase | stats dc(clientip) by category_id | append [search 83 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)、各商品カテゴリの商品を購入した個別の (一意の) ユー ザー数 (dc(clientip))、各商品カテゴリの商品を多く購入しているユーザー (clientip)、およびそのユーザーが購 入した商品数 (count) のみを表示するために使用されています。 結果が同じフィールド値を共有しているのに、append コマンドは単純に、前のサーチ結果の最後にサブサーチの 結果を追加していることがお分かりでしょうか。このコマンドで、出力の書式を再設定することはできません。 例3 この例では、チュートリアルのサンプルデータセットを使用していますが、Apache Web アクセスログ形式の 任意のデータを利用できます。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に 従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行しま す。 Web サーバーにアクセスした一意の IP アドレス数をカウントし、各ページ要求タイプ (method) でもっともアクセ ス数が多いユーザーを 索します。 sourcetype=access_* | stats dc(clientip), count by method | append [search sourcetype=access_* | top 1 clientip by method] Web アクセスイベントはパイプ文字で stats コマンドに渡され、dc() or distinct_count() 関数を使って、サイ トにアクセスした個別の (一意の) ユーザー数が算出されます。count() 関数は、サイトにアクセスされた合計回数 をカウントするために用いられています。これらの数が、ページ要求 (method) 別に分類されます。 各ページ要求タイプ (method) に して、アクセス数が多いユーザーを 索するために、サブサーチが使用されていま す。append コマンドは、テーブルの最後にサブサーチの結果を追加するために使用されています。 最初の 2 行は、最初のサーチの結果です。最後の 2 行は、サブサーチの結果です。両方の結果セットが、method および count フィールドを共有しています。 その他の例 例 1:現在の結果を、「fubar」の表形式結果で追加します。 ... | chart count by bar | append [search fubar | chart count by baz] 84 関 連項目 appendcols、join、set Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、append コマンドの使用 方法に関する質問と回答をご覧ください。 appendcols 概要 サブサーチの結果フィールドを現在の結果に追加します (最初の結果を最初の結果に、2 番目の結果を 2 番目の結 果に、以降同 )。 構文 appendcols [override=bool|subsearch-options]* subsearch 必要な引数 subsearch 明:サーチパイプライン。サブサーチの詳細は、『サーチマニュアル』を参照してください。 オプション引数 オーバーライド<:so>おおばあらいど データタイプ: <bool> 明:override オプションに偽 (False) を指定すると (デフォルト)、メイン結果とサブサーチの結果の両方に フィールドが存在する場合に、メイン結果が使用されます。 subsearch-options 構文: maxtime=<int> | maxout=<int> | timeout=<int> 明:サブサーチの実行方法を指定します。 サブサーチのオプション maxtime 構文: maxtime=<int> 明:サブサーチの処理がここに指定した時間 (秒) 過すると、終了されます。デフォルトは 60 です。 maxout 構文: maxout=<int> 明:サブサーチから出力される結果行の最大数。デフォルトは 50000 です。 timeout 構文: timeout=<int> 明:サブサーチの完全完了まで待機する最大時間 (秒)。デフォルトは 120 です。 明 サブサーチの結果フィールドを入力サーチの結果に追加します。サブサーチの外部フィールド (「_」で始まらな いフィールド) が、現在の結果と結合されます。サブサーチの最初の結果が、メインサーチの最初の結果と、2 番 目が 2 番目と、...のように、以降同 に結合されます。override オプションに偽 (False) を指定すると (デフォル ト)、メイン結果とサブサーチの結果の両方にフィールドが存在する場合に、メイン結果が使用されます。真 (True) を指定すると、当該フィールドのサブサーチ結果の値が使用されます。 例 例 1:「404」イベントをサーチして、各イベントのフィールドを前のサーチ結果に追加します。 ... | appendcols [search 404] 85 関 連項目 append、join、set Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、appendcols コマンドの使 用方法に関する質問と回答をご覧ください。 appendpipe 概要 現在の結果セットに適用した、サブパイプラインの結果を追加します 構文 appendpipe [run_in_preview=<bool>] [<subpipeline>] 引数 run_in_preview 構文: run_in_preview=T|F 明:コマンドをプレビューモードで実行するかどうかを示します。デフォルトは T です。 例 例 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 コマンドの 使用方法に関する質問と回答をご覧ください。 associate コマンドは、値に基づいてエントロピーの 化を計算することにより、フィールドペア間の関係を探しま す。このエントロピーは、あるフィールドの値を知ることが、もう一方のフィールドの値を予測するために役立つ かどうかを表しています。 associate 情報理論において、エントロピーは乱数に関連付けられた不確実性の測定と定義されています。この場合、フィー ルドに 1 つの一意の値のみが存在していると、それのエントロピーは 0 になります。複数の値がある場合は、そ れらの値がより均等に分散しているため、エントロピーが高くなります。 概要 フィールド間の相関関係を識別します。 構文 associate [associate-option]* [field-list] オプション引数 86 associate-option 構文: supcnt | supfreq | improv 明: associate コマンドのオプション。 field-list 構文: <field>, ... 明:ワイルドカードを使用しない、フィールドのリスト。フィールドのリストが指定されている場合、分析 はそれらのフィールドにのみ限定されます。デフォルトでは、すべてのフィールドが使用されます。 Associate の オ プ シ ョ ン supcnt 構文: supcnt=<num> 明:「参照キー=参照値」の組み合わせが現れる最低回数を指定します。正の整数でなければなりません。 デフォルトは 100 です。 supfreq 構文: supfreq=<num> 明:「参照キー=参照値」の組み合わせの最低登場頻度 (合計イベント数に する割合) を指定します。。デ フォルトは 0.1 です。 improv 構文: improv=<num> 明:「ターゲットキー」の限度、またはエントロピー改善の最小値を指定します。結果として計算される、 無条件エントロピー (ターゲットキーのエントロピー) と条件付きエントロピー (参照キーが参照値の場合 の、ターゲットキーのエントロピー) 間の差となるエントロピーの改善は、この限度値以上でなければなり ません。デフォルトは 0.5 です。 明 コマンドは、分析されたフィールド (Reference_Key, Reference_Value および Target_Key)、各フィール ド値のペアに して算出されたエントロピー (Unconditional_Entropy、Conditional_Entropy、および Entropy_Improvement)、およびエントロピー計算に基づいて推定された、フィールド値間の関係を要約したメッ セージ (Description) を含んだ列を持つテーブルを出力します。 associate は、ユーザーに分かりやすい結果表記として、次の形式が使用されています:「When the 'Reference_Key' has the value 'Reference_Value', the entropy of 'Target_Key' decreases from Unconditional_Entropy to Conditional_Entropy.」 (Reference_Key に値「Reference_Value」が存在する場合、 「Target_Key」のエントロピーは Unconditional_Entropy から Conditional_Entropy に減少する)。 Description 例 例 1:この例は、Web アクセスログのフィールド内の関係の分析方法を表しています。 sourcetype=access_* NOT status=200 | fields method, status | associate | table Reference_Key, Reference_Value, Target_Key, Top_Conditional_Value, Description このサーチの最初の部分は、返されたステータスが 200 ではない Web アクセスイベントを取得しています。Web アクセスデータにはさまざまなフィールドが含まれており、associate コマンドを使ってデータ内のすべての フィールドと値のペア間の関係を確認することができます。単純化するために、この例では、2 つのフィールド (method と status) にサーチを限定します。また、associate コマンドはさまざまな列を出力します ( 明を参照)。 今はそれらについては言及しないため、table コマンドを使って必要な列のみを表示します。結果は以下のように なります。 この特定の結果セットには、以下の項目が存在しています (左側のフィールド領域を参照)。 2 つの method の値:POST と GET 5 つの status の値:301、302、304、404、および 503 最初の結果行から、method=POST の場合に、それらのイベントの status フィールドがすべて 302 であることが分 87 かります。associate コマンドを使用した結果、method=POST の場合、status は 302 であると考えられま す。method の値を予測するために status=302 を参照している 3 行目からも、同 の結論を得られます。 Reference_Key と Reference_Value は Target_Key と相関しています。Top_Conditional_Value フィールドから は、Reference_Value の最頻値、データセット内のそのフィールドの Reference_Value の頻度、およびその Reference Key 内に特定の Reference_Value を持つイベントに して、もっとも一般的に関連付けられている Target_Key 内の値の頻度の、3 種類の事柄が分かります。これは、「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 関 連項目 correlate、contingency Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、associate コマンドの使 用方法に関する質問と回答をご覧ください。 audit 概要 ローカル監査インデックスに保管されている、監査証跡情報を返します。 構文 audit 明 ローカルの「audit」インデックスに保管されている、監査証跡情報を表示します。また、解離や改ざんをチェッ クする際に、署名された監査イベントを復号化します。 例 例 1:「audit」インデックスにある情報を表示します。 index="_audit" | audit Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、audit コマンドの使用方法 に関する質問と回答をご覧ください。 autoregress 概要 移動平均を計算するためにデータを設定します。 88 構文 autoregress field [AS <newfield>] [p=<p_start>[-<p_end>]] 必要な引数 field-list 構文: <field>... 明:1 つまたは複数の数値フィールドをスペースで区切ります。ワイルドカードは使用できません。 オプション引数 p 構文: p=<int:p_start> 明: 「p」オプションを指定しない場合、p_start = p_end = 1 (前の field の値を field_p1 に追加) が仮定され ます。 newfield 構文: <field> 明:newfield を指定する場合、p に範 を指定できないことに注意してください。 p_start 構文: <int> 明: 「p」オプションを指定しない場合、p_start = p_end = 1 (前の field の値を field_p1 に追加) が仮定され ます。 p_end 構文: <int> 明: 「p」オプションを指定しない場合、p_start = p_end = 1 (前の 1 つの field の値のみを field_p1 にコ ピー) が仮定されます。 明 field の p 番目の前の値を各イベントに newfield (指定しない場合、newfield は p-val = p_start-p_end の field_ppval) としてコピーすることで、データの自動回 (移動平均) 用のデータを設定します。 「p」オプションを指定し ない場合、p_start = p_end = 1 (前の 1 つの field の値のみを field_p1 にコピー) が仮定されます。newfield を指定 する場合、p に範 を指定できないことに注意してください。 例 例 1:各イベントに して、「foo」フィールドの前の 3 番目の値をフィールド「oldfoo」にコピーします。 ... | autoregress foo AS oldfoo p=3 例 2:各イベントに して、「count」フィールドの前の 2 5 番目の値を、それぞれ するフィールド「count_p2」、 「count_p3」、「count_p4」、および「count_p5」にコピーします。 ... | autoregress count p=2-5 関 連項目 accum、delta、streamstats、trendline Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、autoregress コマンドの 使用方法に関する質問と回答をご覧ください。 bucket 概要 連続した数値を離散集合に配置します。 89 構文 bucket [<bucketing-option>]* <field> [as <field>] 必要な引数 <field> データタイプ: <field> 明:フィールド名を指定します。 オプション引数 <bucketing-option> データタイプ: bins | minspan | span | start-end 明:離散化オプション。詳細は、「Bucketing のオプション」を参照してください。 <newfield> データタイプ: <文字列> 明:フィールドの新たな名前。 Bucketing の オ プ シ ョ ン bins 構文: bins=<int> 明:離散化に使用するビンの最大数を設定します。 minspan 構文: minspan=<span-length> 明:データの時間範 から期間を自動推測する、最小の期間粒度を指定します。 span 構文: span = <log-span> | <span-length> 明:時間または 数ベースの期間に基づく期間長を使って、各バケツのサイズを設定します。 <start-end> 構文: end=<num> | start=<num> 明:数値バケツの最小/最大範 を設定します。[start, end] の範 外のデータは破棄されます。 Log-span 構文 <log-span> 構文: [<num>]log[<num>] 明: 数ベースのスパンを設定します。最初の数値は係数です。2 番目の数値が底です。最初の数値を指定 する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなければな りません ( 密に 1 より大きい)。 span-length 構文 span-length 構文: <span>[<timescale>] 明:時間に基づいたスパン長です。 <span> 構文: <int> 明:各ビンのスパン。タイムスケールを使用する場合、これは時間範 として使用されます。使用しない場 合、これは絶 バケツ「length」になります。 <timescale> 構文: <sec> | <min> | <hr> | <day> | <month> | <subseconds> 明:タイムスケールの単位。 <秒> 構文: s | sec | secs | second | seconds 明:タイムスケール (秒)。 <min> 構文: m | min | mins | minute | minutes 明:タイムスケール (分)。 90 <hr> 構文: h | hr | hrs | hour | hours 明:タイムスケール (時間)。 <日> 構文: d | day | days 明:タイムスケール (日)。 <月> 構文: mon | month | months 明:タイムスケール (月)。 <subseconds> 構文: us | ms | cs | ds 明:マイクロ秒 (us)、ミリ秒(ms)、1/100 秒 (cs)、または 1/10 秒 (ds) のタイムスケール 明 フィールド内の連続した数値を離散集合またはバケツに保管します。デフォルトで処理されるフィールドは 「_time」です。注意:バケツはグラフおよび時間グラフから自動的に呼び出されます。また、時間グラフおよび グラフが処理できない統計的操作を行う場合にのみ必要になります。 例 例 1:各 5 分間の期間の各「host」の平均スループット (thruput) を返します。 ... | bucket _time span=5m | stats avg(thruput) by _time host 例 2:バケツサーチ結果に 10 個のビンを使用し、各バケツの raw イベント数を返します。 ... | bucket size bins=10 | stats count(_raw) by size 関 連項目 chart、timechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、bucket コマンドの使用方 法に関する質問と回答をご覧ください。 bucketdir 概要 フィールド値を上位レベルのグループに置換します (ファイル名をディレクトリで置換するなど)。 構文 bucketdir pathfield=<field> sizefield=<field> [maxcount=<int>] [countfield=<field>] [sep=<char>] 必要な引数 pathfield 構文: pathfield=<field> 明:パス値を持つフィールド名を指定します。 sizefield 構文: sizefield=<field> 明:バケツのサイズを定義する数値フィールドを指定します。 オプション引数 countfield 91 構文: countfield=<field> 明:イベントカウントを記述する数値フィールドを指定します。 maxcount 構文: maxcount=<int> 明:バケツに合計イベント数を指定します。 sep 構文: <char> 明:区切り文字として「/」または「\\」を指定します。これは、OS によって異なります。 明 到着イベントを取得して、複数のソースをディレクトリにまとめ、ファイル数が多くイベント数が少ないディレク トリを優先して、最高 MAXCOUNT 件のイベントを返します。パスを持つフィールドは PATHFIELD (例:source) で、文字列は SEP 文字で区切られます。デフォルトでは、pathfield=source、sizefield=totalCount、 maxcount=20、countfield=totalCount、sep="/" または "\\" (OS による) になります。 例 例 1:上位 10 件のソースとディレクトリを取得します ... | top source | bucketdir pathfield=source sizefield=count maxcount=10 関 連項目 cluster、dedup Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、bucket コマンドの使用方 法に関する質問と回答をご覧ください。 chart コマンドは、グラフ ( 棒、折れ線、面、円グラフなど) でのビジュアル化をサポートする、データ構造内の 結果を返すレポートコマンドです。グラフの X 軸に使用するフィールドを指定できます。Splunk のビジュアル化 機能とオプションについては、『データのビジュアル化マニュアル』の「ビジュアル化リファレンス」を参照して ください。 chart chart、timechart、stats、eventstats、および streamstats コマンドは、統計関数と連携動作します。これらの 関数の詳細については、『サーチリファレンスマニュアル』の「stats、chart、および timechart の関数」を参照し てください。 概要 グラフ化するために、結果を表形式で出力します。 構文 chart [sep=<string>] [cont=<bool>] [limit=<int>] [agg=<stats-agg-term>] ( <stats-agg-term> | <sparkline-agg-term> | <eval-expression>...)[ by <field> (<bucketing-option> )...[<split-by-clause>] ] | [ over <field> (<bucketing-option>)...(by <split-by-clause>] ] 明と例が記載されたグラフ関数の一覧については、「stats、chart、および timechart の関数」を参照してくださ い。 必要な引数 agg 構文: agg=<stats-agg-term> 明:集計子または関数を指定します。 明と例が記載された stats 関数の一覧については、「stats、chart、 および timechart の関数」を参照してください。 92 sparkline-agg-term 構文: <sparkline-agg> [AS <wc-field>] 明:必要に じて新しいフィールドに 更される、スパークライン指定子。 Eval 式 構文: <eval-math-exp> | <eval-concat-exp> | <eval-compare-exp> | <eval-bool-exp> | <eval-function-call> 明:宛先フィールドの値を表す、リテラル、フィールド、演算子、および関数の組み合わせ。詳細は、 「eval の関数」を参照してください。これらの評価が正常に機能するためには、操作の種類に じて有効な値 を使用する必要があります。たとえば、追加の例外処理では、値が数値でないと算術操作で有効な結果を得 ることはできません。また、Splunk では 2 つのオペランドが両方とも文字列の場合、それを連結することが できます。「.」が存在する値を連結する場合は、実際の種類に関係なく両方の値が文字列として処理されま す。 オプション引数 agg 構文: <stats-agg-term> 明: 明と例が記載された stats 関数の一覧については、「stats、chart、および timechart の関数」を参照し てください。 bucketing-option 構文: bins | span | <start-end> 明:離散化オプション。bucketing-option を指定しない場合、timechart のデフォルトは bins=300 になりま す。この場合、300 未 の一意のバケツとなる、最小のバケツが探されます。bucketing オプションの詳細 は、「bucket コマンドリファレンス」を参照してください。 cont 構文: <bool> 明:連続的かどうかを示します。 limit 構文: <int> 明:シリーズフィルタリングの限度を指定します。limit=0 の場合、フィルタリングされません。 single-agg 構文: count|<stats-func>(<field>) 明:単一の集計を単一のフィールドに適用します (評価したフィールドも可能)。ワイルドカードは使用でき ません。イベントにまとめて適用する特別集計子「count」を使用する場合を除き、フィールドを指定する必 要があります。 sep 構文: sep=<string> 明:複数のデータシリーズと split-by 句が一緒に使用されている場合に、出力フィールド名の構築に用いら れます。 split-by-clause 構文: <field> (<tc-option>)* [<where-clause>] 明:分割 象フィールドを指定します。フィールドが数値の場合、デフォルトの離散化が適用されます。離 散化は、tc-option で定義されます。 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>() | range() | stdev() | stdevp() | sum() | sumsq() | upperperc<int>() | values() | var() | varp() 明:stats コマンドと一緒に利用される関数。stats コマンドの起動時に、複数の関数を使用できます が、by clause は 1 つのみ利用できます。 明と例が記載された stats 関数の一覧については、「stats、 chart、および timechart の関数」を参照してください。 Sparkline 関 数 の オ プ シ ョ ン 93 スパークラインはテーブルのセル内に表示されるインライングラフで、各行のプライマリキーに関連する時間ベー スの傾向を表示します。詳細は、『サーチマニュアル』の「サーチ結果へのスパークラインの追加」を参照してく ださい。 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() 明:スパークラインの値の生成に用いられる集計関数。各スパークラインの値は、特定の時間バケツに該当 するイベントにこの集計を適用することにより生成されます。 Bucketing の オ プ シ ョ ン bins 構文: bins=<int> 明:離散化に使用するビンの最大数を設定します。 span 構文: span=<log-span> | span=<span-length> 明:時間または 数ベースの期間に基づく期間長を使って、各バケツのサイズを設定します。 <start-end> 構文: end=<num> | start=<num> 明:数値バケツの最小/最大範 を設定します。[start, end] の範 外のデータは破棄されます。 Log-span 構文 <log-span> 構文: [<num>]log[<num>] 明: 数ベースのスパンを設定します。最初の数値は係数です。2 番目の数値が底です。最初の数値を指定 する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなければな りません ( 密に 1 より大きい)。 span-length 構文 span-length 構文: [<timescale>] 明:時間に基づいたスパン長です。 <span> 構文: <int> 明:各ビンのスパン。タイムスケールを使用する場合、これは時間範 として使用されます。使用しない場 合、これは絶 バケツ「length」になります。 <timescale> 構文: <sec> | <min> | <hr> | <day> | <month> | <subseconds> 明:タイムスケールの単位。 <秒> 構文: s | sec | secs | second | seconds 明:タイムスケール (秒)。 <min> 構文: m | min | mins | minute | minutes 明:タイムスケール (分)。 <hr> 構文: h | hr | hrs | hour | hours 明:タイムスケール (時間)。 <日> 構文: d | day | days 明:タイムスケール (日)。 94 <月> 構文: mon | month | months 明:タイムスケール (月)。 <subseconds> 構文: us | ms | cs | ds 明:マイクロ秒 (us)、ミリ秒(ms)、1/100 秒 (cs)、または 1/10 秒 (ds) のタイムスケール tc options tc-option 構文: <bucketing-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-clause where 句 構文: <single-agg> <where-comp> 明:tc-by-clause にフィールドが指定されている場合に、特定のデータシリーズを含めるかどうかの基準 を指定します。一般的にこのオプションは、シリーズ内の質量分布を選 するのではなく、スパイクを選 する ために用いられます。デフォルトでは、濃度曲線下面積別上位 10 件のシリーズを探します。sum を max に 更して、スパイクが高い上位 10 件のシリーズを探すこともできます。これに、where コマンドとの関係は ありません。 <where-comp> 構文: <wherein-comp>|<wherethresh-comp> 明:where 句の基準です。 <wherein-comp> 構文: (in|notin) (top|bottom)<int> 明:集計したシリーズ値を、上位/下位項目でグループ化するための基準です。 <wherethresh-comp> 構文: (<|>)( )?<num> 明:集計したシリーズ値が、一定の閾値より大きいまたは小さい必要があることを指定する基準です。 明 グラフの作成に適した表形式のデータ出力を作成します。X 軸 数は by field により指定され、必要に じて離散化 されます。グラフ化されたフィールドは、必要に じて数量に 換されます。 timechart はX 軸として _time を使用するグラフを生成するのに して、chart は、任意のフィールドを X 軸とした テーブルを生成します。また、chart では split-by フィールドを利用できます。そのようなフィールドが含まれて いる場合、各列が split-by フィールドの一意の値を表すテーブルが出力されます。 これは、stats とは 照的です。stats では、各行が group-by フィールドの単一で一意の値の組み合わせを表してい ます。デフォルトでは、含める列数は 10 に制限されています。ただし、オプションの where 句を指定して、値を 調節することができます。詳細については、「where-clause」を参照してください。 95 Chart では eval 式を利用できます。split-by clause 句を指定しない場合は、名前を 更する必要があります。ま た、over キーワードの後、任意の by およびそれ以降の split-by 句の前に、X 軸フィールドを指定することもでき ます。limit および agg オプションにより、シリーズのフィルタリングを簡単に指定することができます。limit=0 の場合、シリーズのフィルタリングは行われません。where 句が明示的に指定されている場合、limit および agg オプションは無視されます。 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 この例では、チュートリアルのサンプルデータセットを使用していますが、Apache Web アクセスログ形式の 任意のデータを利用できます。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に 従って 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 サーバー別に分割されます。 これによって、以下のテーブルが返されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここで、Y 軸は 数スケー ルで表示されます。 このグラフには、各イベントタイプ (GET と POST) のイベント数合計が、host の値に基づいて表示されます。 96 GET および POST イベントの値範 が異なっているため、Y 軸には 数スケールが使用されています。 注意:データに して同じ統計計算を実行するために、stats、chart、および timechart コマンドを使用できま す。stats コマンドは、結果のテーブルを返します。chart コマンドは同じ結果のテーブルを返しますが、レポー トビルダーを使ってこのテーブルをグラフにすることができます。結果の推移をグラフ化したい場合 は、timechart コマンドを使用します。また、この例のバリエーションについては、chart および timechart コマ ンドを参照してください。 例2 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [全時間] を指定してこのサーチを実行します。 期間 (秒) に基づいてトランザクション数を表示するグラフを作成します。 sourcetype=access_* 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) のビンにバケツ化し ています。これによって、以下のテーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、 棒グラフとし て書式設定されています。 97 予想通り、大半のトランザクションは 0 2 秒間で完了しています。ここでは、次に大きなトランザクション数のス パンは、256 512 秒 (約 4 8 分) となっています。(ただし、この例ではデータの生成方法が原因で、少し極端な値 となっています。) 例3 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [全時間] を指定してこのサーチを実行します。 トランザクションの期間に基づいて、トランザクション内の平均イベント数を表示するグラフを作成します。 sourcetype=access_* action=purchase | transaction clientip maxspan=10m | chart avg(eventcount) by duration span=log2 この例では、例 2 で定義されているのと同じトランザクションを使用しています。transaction コマンドも、1 つ のトランザクション内に存在するイベント数を表す新しいフィールド eventcount を作成します。 次にトランザクションはパイプ文字で chart コマンドに渡され、avg() 関数を使って各期間の平均イベント数が算 出されます。期間は秒単位で、多くの値が存在していると考えられるため、このサーチでは span 引数を使って期 間を log2 (span=log2) のビンにバケツ化しています。これによって、以下のテーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、円グラフとし て書式設定されています。 98 円グラフの各くさび形 (ウェッジ) は、期間に するトランザクション内の平均イベント数を表しています。円グラ フの作成後、各セクション上にマウスカーソルを移動することで、それらの値を参照できます (Splunk Web で)。 例4 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行します。 Flower & Gift shop で何か商品を購入した別個の人々数、および購入商品をグラフ化します。 sourcetype=access_* action=purchase | chart dc(clientip) over date_hour by category_id usenull=f このサーチは、購入イベント数を取得して、パイプ文字を使ってそれを chart コマンドに渡します。dc() または distinct_count() 関数は、一意のビジター数 (clientip フィールドで特徴化) をカウントするために用いられま す。この値がその日の各時間に してグラフ化され、購入の category_id に基づいて分割されます。また、これら は数値なので、usenull=f 引数を使って値を持たないフィールドを除外しています。 これによって、以下のテーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、折れ線グラフ として書式設定されています。 99 各折れ線グラフは、Flower & Gift shop で販売された各製品タイプを表しています。各折れ線の高さは、その時間 帯に商品を購入した一意の人々の数を表しています。一般的に、オンラインショップでもっとも人気の商品は、花 (Flower) のようです。購入は主に日の前半の昼食時間当たり、そして夕方に行われています。 例5 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (September 29-October 6, 2010) 地 震データを使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生 した地震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレポートステーション番号 (NST) が含まれています。 テキストファイル M 1+ earthquakes, past 7 days をダウンロードして、それを Splunk にアップロードしてく ださい。Splunk はフィールドを自動的に抽出します。 カリフォルニア州周辺での地震発生回数およびそのマグニチュードを表すグラフを作成します。 source=eqs7day-M1.csv Region=*California | chart count over Magnitude by Region useother=f このサーチは、カリフォルニア地域で発生した地震数をカウントします。次にこの値が、マグニチュードに基づい て各地域に分割されます。Region 値は数値ではないため、useother=f 引数を使って一致しないイベントを除外し ています。 これによって、以下のテーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、散布図として 書式設定されています。 100 このグラフは、過去一週間に発生した地震の大半は、マグニチュード 1 2.2 であることを表しています。幸いなこ とに、それ以上のマグニチュードの地震は、さほど発生していません。 また、各地域のプロットが別の地域のプロットと重複していることもあります。1 回に 1 つの地域のポイントのみ を表示したい場合は、凡例に表示されている地域上にマウスカーソルを移動してください。各ポイントの測定基準 を表示したい場合は、そのポイント上にマウスカーソルを移動してください。ツールヒントに、 する Magnitude と Region、および地震の count が表示されます。 その他の例 例 1:foo の各値の max(delay) を返します。 ... | chart max(delay) over foo 例 2:bar の値による foo 分割の各値の max(delay) を返します。 ... | chart max(delay) over foo by bar 例 3:一意の各ホスト (host) ユーザー (user) のペアに して、最大 延 (delay) に する平均サイズ (size) の比率を返 します。 ... | chart eval(avg(size)/max(delay)) AS ratio by host user 例 4:サイズ (size) による最大 延 (delay) を返します。ここで「size」は、最大 10 個の同じサイズのバケツに分類 されます。 ... | chart max(delay) by size bins=10 例 5:一意の各ホスト (host) に して、平均サイズ (size) を返します。 ... | chart avg(size) by host 関 連項目 timechart、bucket、sichart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、chart コマンドの使用方法 に関する質問と回答をご覧ください。 cluster コマンドを使って、データの詳細を学習し、データ内によく登場するイベントや希にしか登場しないイベ ントを探すことができます。たとえば、IT 上の問題を調査しているけれども何を探したら良いのか分からないよ うな場合は、cluster コマンドを使って異例なイベントを 索します。この場合、異例なイベントとは大きな集 にグ cluster 101 ループ化されていないイベント、またはわずかなイベントしか含まない集 です。また、エラーを探している場合 は、cluster コマンドを使っておよそどの位の種類のエラーが存在しているか、またデータ内で多く見られるエ ラータイプを確認します。 概要 類似イベントをクラスタ化します。 構文 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 に真 (True) が設定されていない限り、デフォルトは 真 (True) になります。showcount=false の場合、サーチヘッドでクラスタリングが行われる前に、各インデク サーが各自のイベントをクラスタ化します。 countfield 構文: countfield=<field> 明:クラスタサイズを書き込むフィールド名。クラスタサイズは、クラスタ内のイベント数です。デフォル トは cluster_count です。 labelfield 構文: labelfield=<field> 明:クラスタ数を書き込むフィールド名。Splunk は各クラスタをカウントして、イベントをクラスタにグ ループ化する際にそれぞれにラベルを設定します。デフォルトは cluster_label です。 field 構文: field=<field> 明:各イベント内の分析 象フィールド名。デフォルトは _raw です。 labelonly 明: labelonly=<bool> 構文:各クラスタを単一の代表クラスタに減らすかどうかを指定します。真 (True) の場合、すべてのオリジ ナルイベントとラベルをクラスタ番号 (labelfield の値) と一緒に保存さます。偽 (False) の場合、各クラス タを単一のイベントに減らして、すべてのオリジナルイベントを保持します。デフォルトは false です。 match 構文: match=(termlist | termset | ngramset) 明:イベント間の類似度を判断するために使用する手段を指定します。termlist は、フィールドを単語に 分割し、同じ用語順序を必要とします。termset allows for an unordered set of terms. ngramset compares sets of trigram (3-character substrings). ngramset is significantly slower on large field values and is most useful for short non-textual fields, like punct.デフォルトは termlist です。 明 102 コマンドは、相互の類似度に基づいてイベントをグループ化します。別のフィールドを指定しない限 り、cluster は _raw を使ってイベントを用語 (match=termlist) に分割し、イベント間のベクトルを算出しますど のイベントを一緒にグループ化するかをより際だたせる場合は、t に高い閾値を設定してください。 cluster cluster コマンドの結果は、各イベントに 2 つの新しいフィールドを追加します。countfield および labelfield パ ラメータを使ってこれらのフィールド名を指定することができます。デフォルトは、cluster_count および cluster_label になります。cluster_count の値は、クラスタの一部となるイベント数、またはクラスタサイズに なります。クラスタ内の各イベントには、所属するクラスタの cluster_label 値が割り当てられます。たとえば、 サーチが 10 件のクラスタを返す場合、クラスタには 1 10 のラベルが付けられます。 例 例1 大きなグループにクラスタ化されていないイベントをサーチします。 ... | cluster showcount=t | sort cluster_count この場合、イベントのクラスタが返され、sort コマンドを使ってクラスタサイズの昇順 (cluster_count の値) に表 示されます。これらは、大きなグループにはクラスタ化されないため、それらを希な (一般的ではない) イベント とみなすことができます。 例2 類似のイベントをクラスタ化して、もっとも頻繁に登場するエラータイプをサーチします。 error | cluster t=0.9 showcount=t | sort - cluster_count | head 20 これは、インデックス内の「error」を含むイベントをサーチして、それらが類似している場合はグループ化しま す。sort コマンドは、クラスタサイズ cluster_count に基づいて、イベントの降順に表示するために用いられま す。大きなクラスタが最初に表示されます。次に head コマンドを使って、上位 20 件の大きなクラスタを表示し ます。データ内に頻繁に登場するエラータイプが分かったら、より詳細な調査を行ってエラーの原因を発見するこ とができます。 例3 コマンドを使って、データの概要を確認します。大量のデータがある場合は、小さな時間範 (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 を 使って各クラスタを区別します。 関 連項目 anomalies、anomalousvalue、cluster、kmeans、outlier Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、cluster コマンドの使用方 法に関する質問と回答をご覧ください。 collect 概要 サーチ結果をサマリーインデックスに保管します。 構文 103 collect index [arg-options]* 必要な引数 index 構文: index=<string> 明:Splunk がイベントを追加するインデックス名。イベントを追加するインデックスは存在していなけれ ばいなければなりません。インデックスは自動的には作成されません。 オプション引数 arg-options 構文: addtime=<bool> | file=<string> | spool=<bool> | marker=<string> | testmode=<bool> | run-inpreview=<bool> 明: collect コマンドのオプション引数。 Collect オ プ シ ョ ン addtime 構文: addtime=<bool> 明:収集するサーチ結果に _raw フィールド (stats、chart、timechart の結果など) がない場合に、各イベン トの先頭に時間フィールドを追加するかどうかを指定します。偽 (False) を設定すると、フィールドのサマ リー行への任意の登場順序に して、汎用データ 出が使用されます。真 (True) を指定すると、サーチ時間範 info_min_time (sistats が追加) または _time が使用されます。Splunk は、最初に見つかったフィールドに基 づいて、時間フィールドを追加します:info_min_time, _time, now()。. デフォルトは真 (True) です。 file 構文: file=<string> 明:イベントの書き込み先ファイル名。省略可、デフォルトは「<乱数>_events.stash」です。ファイル名 内にプレースホルダとして $timestamp$、$random$ を使用できます。これらのプレースホルダは、それぞ れタイムスタンプ、および乱数に置換されます。 データがメインインデックスに追加されるのではない場合、「index=」と一緒に使用する際には、ファイル 名の最後に「.stash」を追加する必要があります。 marker 構文: marker=<string> 明:各イベントに追加する文字列で、通常はキーと値のペアになります。省略可、デフォルトは空です。 run-in-preview 構文: run-in-preview=<bool> 明:プレビュー生成時に、collect コマンドを有効にするかどうかを指定します。一般的には、サマリーイ ンデックスにプレビュー結果を 入しません (run-in-preview=false)。サーチの一環としてカスタムサーチコマ ンドが使用されている場合など、一部の事例では、このオプションを有効にして正確なサマリーインデック ス可能プレビューが生成されるように設定することもできます。デフォルトは偽 (false) です。 spool 構文: spool=<bool> 明:真 (True) を設定すると (デフォルト)、サマリーインデックスファイルが Splunk のスプールディレクト リに書き込まれ、そこで自動的にインデックスが作成されます。偽 (False) を設定した場合、ファイルは $SPLUNK_HOME/var/run/splunk に書き込まれます。 testmode 構文: testmode=<bool> 明:テストモードとリアルモードを切り替えます。テストモードでは、結果は新しいインデックスには書き 込まれません。ただし、サーチ結果は、まるでインデックスに送信されたかのように表示が 更されます。 (デフォルトは false) 明 サーチ結果を指定したインデックスに追加します。裏側では、Splunk が新たなイベントを監視するディレクトリ に、名前の形式が events_random-num.stash ファイルにイベントが書き込まれます (上書きされない限り)。イベン トに _raw フィールドが存在している場合は、raw フィールドが保存されます。イベントに _raw フィールドが存在 しない場合は、すべてのフィールドがカンマ区切り形式の「key=value」ペアのリストとして連結されて、_raw フィールドが作成されます。 注意:collect コマンドも、全時間リアルタイムサーチに利用することができます。 104 例 例 1:「download」イベントを、インデックス「downloadcount」に保管します。 eventtypetag="download" | collect index=downloadcount 関 連項目 overlap、sichart、sirare、sistats、sitop、sitimechart、tscollect Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、collect コマンドの使用方 法に関する質問と回答をご覧ください。 concurrency 概要 期間 (duration) フィールドに基づいて、各イベントの同時 (concurrent) イベント数をサーチします。 構文 concurrency duration=<field> [start=<field>] [output=<field>] 必要な引数 期間 構文: duration=<field> 明:期間を表すフィールド。 オプション引数 先頭 構文: start=<field> 明:開始時間を表すフィールド。デフォルトは、_time です。 output 構文: output=<field> 明:結果となる同時イベント数を書き込むフィールド。デフォルトは「concurrency」です。 明 Concurrency は、イベントの開始時刻に同時に発生したイベント数です。重複する期間中に発生したイベント数で はありません。 イベント X は、(X.start, X.start + X.duration) が (Y.start, Y.start + Y.duration) と完全に重複しない場合にイベント Y と同時発生になります。 例 例1 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [全時間] を指定してこのサーチを実行します。 トランザクションの期間またはスパンを使って、同時に発生した他のトランザクション数をカウントします。 sourcetype="access_*" | transaction JSESSIONID clientip startswith="*signon*" endswith="purchase" | concurrency duration=duration | eval duration=tostring(duration,"duration") 105 この例では、同じ値の JSESSIONID および clientip を持つイベントをトランザクションにグループ化し、文字列 「signon」を含むイベントをトランザクションの開始イベント、文字列「purchase」を含むイベントをトランザ クションの最後のイベントとして定義します。 次にトランザクションは、パイプ文字で concurrency コマンドに渡されます。このコマンドは、トランザクション のタイムスタンプと duration に基づいて、同時に発生したイベント数をカウントします。 このサーチは、eval コマンドと tostring() 関数を使って、duration フィールドの値をより分かりやすい形式 HH:MM:SS に 換します。 これらの結果は、最初のトランザクションが午前 4 時 18 分から始まり 1 時間 7 分 17 秒 続し、concurrency が 1 であることを表しています。同時発生は包含のため、これは午前 4 時 18 分に発生した唯一のトランザクションで あることを意味しています。 2 番目のトランザクションは 午前 4 時 52 分 18 秒に開始されています。この時点では、最初のトランザクション が引き続き処理されています。そのため、このトランザクションの同時発生数は 2 となります。 例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 として名前を 更します。 一部の timeDelta の値は負です。負の値では concurrency コマンドは機能しないため、eval コマンドを使って timeDelta をその絶 値 (abs(timeDelta)) に再定義します。この timeDelta が同時イベントを算出するための duration として使用されます。 106 これらの結果から、最初の購入と 2 番目の購入が同時に発生していることが分かります。ただし、最初の購入には concurrency=1 があります。2 番目の購入には concurrency=2 があり、自身と最初の購入イベントが含まれていま す。3 番目の購入には、concurrency=1 があることが分かります。これは、購入時刻が 午前 0 時 49 分 (12:49 AM) で、最初の購入 (timeDelta=49 秒) がすでに完了しているためです。 例3 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行します。 連続する各トランザクションの時間を使って、同時に発生したトランザクション数を算出します。 sourcetype=access_* | transaction JSESSIONID clientip startswith="*signon*" endswith="purchase" | delta _time AS timeDelta p=1 | eval timeDelta=abs(timeDelta) | concurrency duration=timeDelta | eval timeDelta=tostring(timeDelta,"duration") この例では、同じ値の JSESSIONID および clientip を持つイベントをトランザクションにグループ化し、文字列 「signon」を含むイベントをトランザクションの開始イベント、文字列「purchase」を含むイベントをトランザ クションの最後のイベントとして定義します。 トランザクションはパイプ文字で delta コマンドに渡されます。このコマンドは、_time フィールドを使って、あ るトランザクションとその直前のトランザクション間の時間を算出します。サーチは、この 更を timeDelta とし て名前を 更します。 一部の timeDelta の値は負です。負の値では concurrency コマンドは機能しないため、eval コマンドを使って timeDelta をその絶 値 (abs(timeDelta)) に再定義します。この timeDelta が同時トランザクションを算出するた めの duration として使用されます。 [全時間] に して実行された例 1 とは違い、このサーチは時間範 [その他] > [昨日] に して実行されています。これ らの最初の 2 つのトランザクションに して、同時トランザクションはありません。 例4 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (October 18-25, 2010) 地震データを 使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレ ポートステーション番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。 カリフォルニア周辺で最近に同時に発生した地震をサーチします。 source="eqs7day-M1.csv" Region="*California" | delta _time AS timeDelta p=1 | eval timeDelta=abs(timeDelta) | concurrency duration=timeDelta | where concurrency>1 107 この例では、カリフォルニア地域 (Region="*California") で発生したすべての地震のサーチから始めます。次 に、各地震とその 1 つ前の地震間の時間を、delta コマンドで計算します。次に、この時間差の絶 値 timeDelta を duration として使って、同時発生した地震を 索します。 イベントはパイプ文字で where コマンドに渡され、同時イベントを持たないイベント (concurrency>1) をフィルタ リングします。 この結果では、2つの地震 (concurrency=2) が 2010 年 10 月 19 日 11時 23 分 51秒 (Tuesday, October 19, 2010 at 11:23:51 UTC (Dateime の値)) に発生したことが分かります。ただし、これは 1 件のイベントのみを表示していま す。 これらのイベントの詳細な情報を見るにはどうしたらよいでしょうか?たとえば、これらの地震のマグニチュード と発生場所を確認するにはどうしたらよいでしょうか?Datetime 値があるので、時間範 [全時間] に してそれを サーチすることができます。または、サブサーチを使用できます。 source="eqs7day-M1.csv" [search source="eqs7day-M1.csv" Region="*California" | delta _time AS timeDelta p=1 | eval timeDelta=abs(timeDelta) | concurrency duration=timeDelta | where concurrency>1 | table Datetime] コマンドを使って、結果の Datetime のみを返すように、まず元のサーチをサブサーチとして実行します。 この Datetime を外部サーチで使用すると、以下のイベントが返されます。 table これで、北部カリフォルニア地域で相互にかなり近い場所で発生した、マグニチュード 1.1 と 1.2 の地震の同時イ ベントを確認できます。 その他の例 例 1:各イベントに する同時イベント数を算出して、それを foo フィールドに出力します。 ... | concurrency duration=total_time output=foo 例 2:et フィールドを開始時刻、length を期間として、同時イベント数を算出します。 ... | concurrency duration=length start=et 関 連項目 timechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、concurrency コマンドの 使用方法に関する質問と回答をご覧ください。 contingency 統計学で分割表は、複数の 数 (通常はカテゴリ) 間の関係を記 、分析するために用いられます。分割表に基づい て、ファイ係数やクラメールの V などの、各種関連や非依存性などを算出できます。 コマンドを使って分割表を作成することができます (この場合は、データ内の 2 つのフィールドの値 の共起相関関係マトリックス)。このマトリックス内の各セルは、両方のクロス表フィールド値が存在しているイ contingency 108 ベント数を表示します。つまり、この表の最初の行と列は、2 つのフィールドの値で構成されています。表内の各 セルには、その行と列の組み合わせとなるフィールドの 2 つの値を含むイベントカウントを表す数字が含まれてい ます。 2 つのフィールド間の関係またはパターンが存在している場合は、テーブルの情報を分析して簡単にそれを特定で きます。たとえば、行間で列値が大幅に異なっている場合 (またはその反 )、2 つのフィールド間には偶発性が存在 しています (独立していない)。偶発性がない場合、2 つのフィールドは独立しています。 概要 2 つのフィールドの分割表を作成します。 構文 contingency [<contingency-option>]* <field> <field> 必要な引数 <field> 構文: <field> 明:任意のフィールド、ワイルドカードなし。 オプション引数 contingency-option 構文: <maxopts> | <mincover> | <usetotal> | <totalstr> 明:分割表のオプション。 Contingency の オ プ シ ョ ン maxopts 構文: maxrows=<int> | maxcols=<int> 明:表示する最大行/列数。フィールドの一意の値数がこの最大値を超えた場合は、もっとも少ない値が無 視されます。0 は、行数/列数が無制限であることを表します。デフォルトは、maxrows=0 および maxcols=0 です。 mincover 構文: mincolcover=<num> | minrowcover=<num> 明:行または列フィールドに して、値の最低割合 (パーセント) を指定します。必要な値の割合をカバーす るために必要なエントリ数が、maxrows または maxcolsを超えた場合、maxrows または maxcols が優先されま す。デフォルトは、mincolcover=1.0 および minrowcover=1.0 です。 usetotal 構文: usetotal=<bool> 明:行合計および列合計を追加するかどうかを指定します。デフォルトは、usetotal=true です。 totalstr 構文: totalstr=<field> 明:合計行/列のフィールド名デフォルトは、totalstr=TOTAL です。 明 このコマンドは、2 つのフィールドの分割表を作成します。多くの値を持つフィールドがある場合、maxrows およ び maxcols パラメータを使って、行/列数を制限することができます。デフォルトでは、分割表に行合計、列合 計、および表内に記載されているイベントカウントの総計が表示されます。 例 例1 log_level と component の値間に関係が存在するかどうかを確認するために、分割表を作成します。 index=_internal | contingency log_level component maxcols=5 109 これらの結果により、Splunk インスタンスの問題の原因となっているコンポーネントを一目で把握することがで きます。component フィールドには多数の値が存在しているため (>50)、この例では maxcols を使って 5 件の値の みを表示しています。 例2 分割表を作成して、使用プラットフォームに基づくユーザーによるインストーラのダウンロードパターンを確認し ます。 host="download"| contingency name platform これはかなり直接的なやり方です。一般的には、あるプラットフォームを使用しているユーザーが、別のプラット フォーム用のインストーラをダウンロードすることはありません。ここで、contingency コマンドは、これらの特 定のフィールドが独立していないことを単純に確認しています。たとえば、多くの Windows ユーザーが OSX イ ンストーラをダウンロードしていることがこのグラフに表されている場合は、Web サイトのダウンロードリソー スが正しいかどうかを確認する必要があるでしょう。 例3 この例では、USGS Earthquakes Web サイトからダウンロードした最近の地震データを使用しています。この データはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地震に する、ソースネット ワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレポートステーション 番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。(ここ では CSV ファイルを独自のインデックス recentquakes にアップロードしています。また、ファイルには 2 週 間分のデータが含まれています。) 一般的に深度 70km 未 で発生した地震は、浅発地震、70 300km の震源域で発生した地震は深発地震として分 類されます。沈み込み帯では、より深い所で深発地震が発生することもあります (300 700 km)。 分割表を作成して、最近の地震のマグニチュードと深度間の関係を確認します。 index=recentquakes | contingency Magnitude Depth | sort Magnitude このサーチはとても単純です。ただし、Magnitude および Depth フィールドの値の範 はとても幅広いため、結果は 巨大な行列となってしまいます。そこで表を構築する前に、フィールドの値のフォーマットを 更します。 index=recentquakes | eval Magnitude=case(Magnitude<=1, "0.0 - 1.0", Magnitude>1 AND Magnitude<=2, "1.1 110 - 2.0", Magnitude>2 AND Magnitude<=3, "2.1 - 3.0", Magnitude>3 AND Magnitude<=4, "3.1 - 4.0", Magnitude>4 AND Magnitude<=5, "4.1 - 5.0", Magnitude>5 AND Magnitude<=6, "5.1 - 6.0", Magnitude>6 AND Magnitude<=7, "6.1 - 7.0", Magnitude>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 convert コマンドは、フィールド値を数値に 換します。代わりに、strftime()、strptime()、tostring() など の、eval コマンドの関数を使用することもできます。 概要 フィールド値を数値に 換します。 構文 convert [timeformat=string] (<convert-function> [AS <new_fieldname>])... 必要な引数 <convert-function> 構文: auto() | ctime() | dur2sec() | memk() | mktime() | mstime() | none() | num() | rmcomma() | rmunit() 明: 換用の関数。 オプション引数 timeformat 構文: timeformat=<string> 明: 換した時間フィールドの出力形式を指定します。timeformat オプションは、ctime および mktime 関数 が使用します。書式設定オプションの一覧と 明については、「共通の時間書式設定 数」を参照してくださ い。デフォルトは %m/%d/%y %H:%M:%S です。 <new_fieldname> 構文: <文字列> 111 明:関数を新たなフィールドに名前 更します。 Convert の 関 数 auto() 構文: auto(<wc-field>) 明:最適な方法を使って、フィールドを自動的に数字に 換します。既知の 換タイプを使って特定フィール ド内のすべての値を 換できない場合、そのフィールドは放置され 換処理は行われません。 ctime() 構文: ctime(<wc-field>) 明:エポック時を ASCII 形式のユーザーが理解できる時間に 換します。 換形式を指定するに は、timeformat オプションを使用します。 dur2sec() 構文: dur2sec(<wc-field>) 明:期間の形式「D+HH:MM:SS」を秒数に 換します。 memk() 構文: memk(<wc-field>) 明:{KB、MB、GB} 系のサイズ表記を KB に 換します。 mktime() 構文: mktime(<wc-field>) 明:ユーザーが理解できる ASCII 形式の時間文字列をエポック時に 換します。 換元時刻の形式を正しく指 定するには、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>) 明:値の先頭の数字を探し、後続のテキストを削除します。 明 フィールドの値を数値に 換します。「AS」を使って名前を 更する場合、元のフィールドはそのまま残されます。 例 例1 この例では、sendmail メールサーバーログを使って、sourcetype=sendmail を持つログを参照します。 sendmail ログには 2 種類の期間フィールド delay と xdelay が存在しています。 は、メッセージの配信またはバウンスまでにかかった合計時間です。delay は、「D+HH:MM:SS」とし て表されます。これはそれぞれ、メッセージの配信または拒否を処理するための時間 (HH)、分 (MM)、秒 (SS) を示しています。delay が 24 時間を超えた場合は、時間表記の先頭に日数とプラス記号 (D+) が追加されま す。 delay xdelay は、メッセージの最終的な配信までにかかった時間の合計で、「HH:MM:SS」で表されます。 112 sendmail の delay および xdelay の期間の形式を秒に 更します。 sourcetype=sendmail | convert dur2sec(delay) dur2sec(xdelay) このサーチは、パイプ文字ですべての sendmail イベントを convert コマンドに渡し、dur2sec() 関数を使って delay と xdelay フィールドの期間を秒に 換します。 フィールドサイドバーを使ってイベントにフィールドを追加した後の、サーチ結果の表示例を以下に示します。 イベントリストで、 換したフィールド値と元のフィールド値を比較できます。 例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" 引数は、Splunk に _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) イベントの _time の値を、分と秒から秒数に 換します。 ここで、table コマンドは、元の _time の値と、名前が ms_time に 更された、 換後の時間を表示するために用い られています。 113 mstime() 関数は、タイムスタンプを数値に 換します。これは、値を計算に使用するような場合に役立ちます。 その他の例 例 1:duration フィールドの値から、文字列値を削除して数値に 換します。たとえば、「duration="212 sec"」の 場合、結果の値は「duration="212"」となります。 ... | 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 注意:このコマンドは、一連のサーチ結果内のすべてのフィールドにまたがって関係を探します。フローチャート 114 の値間の関係を分析する場合は、contingency コマンドを使用してください。このコマンドは、イベント内の フィールドペアの共起をカウントします。 概要 異なるフィールドの相関関係を算出します。 構文 correlate [type=cocur] [_metainclude=<bool>] オプション引数 type 構文: type=cocur 明:算出する相関関係の種類。現在の所は、2 つのフィールドが同じイベント内に存在した回数の割合を含 んだ、共起相関関係マトリックスしか利用できません。セル値 1.0 は、データ内に 2 つのフィールドが常に 一緒に存在していることを表しています。 _metainclude 構文: _metainclude=<bool> 明:内部オプションです。分析にメタデータフィールド (「_」で始まるフィールド) を含めるかどうかを指 定します。デフォルトは false です。 例 例 1:_internal インデックス内のすべてのフィールド間の共起性を探します。 index=_internal | correlate 結果の例を以下に示します。 _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 未 な のかに基づいて、問題を特定できる可能性があります。 関 連項目 associate、contingency 115 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、correlate コマンドの使用 方法に関する質問と回答をご覧ください。 crawl 概要 ファイルシステムから Splunk に、関連するファイルをクロールします。 構文 crawl [ files | network ] [crawl-option]* オプション引数 crawl-option 構文: <string>=<string> 明:crawl.conf の設定に優先します。 明 インデックスを作成する新たなソースの 出をクロールします。デフォルトのクロール設定は、crawl.conf に定義さ れています。クロール操作は、$splunk_home/var/log/splunk/crawl.log に記 されます。通常は、input コマンドと連 携使用されます。クロールオプションの設定を上書きするには、crawl.conf に設定を指定してください。注意: サーチに crawl を追加すると、crawl から生成されたデータのみが返されます。「 | crawl」の前に生成されたデー タは返されません。 例 例 1:ルートおよびホームディレクトリをクロールして、見つかったすべての利用可能な入力を追加します (環境 設定情報を「inputs.conf」に追加します)。 | crawl root="/;/Users/" | input add 例 2:bob のホームディレクトリをクロールします。 | crawl root=/home/bob 例 3:bob のホームディレクトリで見つかったすべてのソースを preview インデックスに追加します。 | crawl root=/home/bob | input add index=preview 例 4:クロールでは、crawl.conf に定義されているデフォルト設定が使用されます。 | crawl 関 連項目 input Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、crawl コマンドの使用方 法に関する質問と回答をご覧ください。 dbinspect Splunk のインデックスは、Splunk データのリポジトリです。Splunk インデックス作成処理、または到着した データをイベントに 換する処理では、raw データとメタデータ (インデックスファイル)が作成されます。一連の ディレクトリに保管されているファイルは、その 過時間で管理されています。これらのディレクトリは、バケ ツと呼ばれています。 116 詳細は、『インデクサーとクラスタの管理』の「インデックス、インデクサー、およびクラスタ」および 「Splunk によるインデックスの保管方法」を参照してください。 概要 指定した Splunk インデックス内の、バケツの状態情報を返します。 構文 dbinspect [index=<string>] [<span>|<timeformat>] オプション引数 index 構文: index=<string> 明:調査するインデックス名を指定します。 <span> 構文: span=<int>|<int><timescale> 明:バケツのスパン長を指定します。タイムスケール単位 (sec、min、hr、day、month、または subseconds) を使用した場合、これは時間範 として用いられます。使用しない場合、これは絶 バケツ 「length」になります。 <timeformat> 構文: timeformat=<string> 明:時間フォーマットを設定します。デフォルトは timeformat=%m/%d/%Y:%H:%M:%S です。 タイムスケールの単位 これらは、バケツのスパンのタイムスケールを指定するオプションです。 <timescale> 構文: <sec> | <min> | <hr> | <day> | <month> | <subseconds> 明:タイムスケールの単位。 <秒> 構文: s | sec | secs | second | seconds 明:タイムスケール (秒)。 <min> 構文: m | min | mins | minute | minutes 明:タイムスケール (分)。 <hr> 構文: h | hr | hrs | hour | hours 明:タイムスケール (時間)。 <日> 構文: d | day | days 明:タイムスケール (日)。 <月> 構文: mon | month | months 明:タイムスケール (月)。 <subseconds> 構文: us | ms | cs | ds 明:マイクロ秒 (us)、ミリ秒(ms)、1/100 秒 (cs)、または 1/10 秒 (ds) のタイムスケール 明 dbinspect コマンドにバケツのスパンを指定して実行した場合、各バケツのスパンのテーブルが返されます。 バケツのスパンを指定せずに dbinspect コマンドを実行した場合、指定されたインデックスに関する以下の情報が 返されます。 フィールド名 明 117 earliestTime バケツ内の最初のイベントのタイムスタンプ。 eventCount バケツ内のイベント数。 hostCount バケツ内の一意のホスト数。 id 元のバケツが存在しているインデクサーが生成した、バケツのローカル ID 番号。 latestTime バケツ内の最後のイベントのタイムスタンプ。 modTime バケツが最後に 更または更新された時間のタイムスタンプ。 バケツの場所。バケツ path の命名規則は、インデクサーがクラスタピアとして動作している 間に、バケツがウォームに移行されたかどうかによって、わずかに異なっています。 非クラスタバケツの場合: db_<newest_time>_<oldest_time>_<localid> クラスタ化された元のバケツコピーの場合: path db_<newest_time>_<oldest_time>_<localid>_<guid> クラスタ化された複製バケツコピーの場合: rb_<newest_time>_<oldest_time>_<localid>_<guid> 詳細は、『インデクサーとクラスタの管理』の「Splunk によるインデックスの保管方法」お よび「基本的なクラスタのアーキテクチャ」を参照してください。 rawSize 各バケツ内の raw データファイルのサイズ (MB)。 sizeOnDiskMB バケツが使用しているメモリー量 (MB)。 sourceCount バケツ内の一意のソース数。 sourceTypeCount バケツ内の一意のソースタイプ数。 state バケツがウォーム、ホット、コールド、またはフローズンかどうか。 例 例 1:CLI を使って、グラフを期間 1 日で表示します。 myLaptop $ splunk search "| dbinspect index=_internal span=1d" _time hot-3 warm-1 warm-2 --------------------------- ----- ------ -----2013-01-17 00:00:00.000 PST 0 2013-01-17 14:56:39.000 PST 0 2013-02-19 00:00:00.000 PST 0 1 2013-02-20 00:00:00.000 PST 2 1 例 2: CLI を使った、local _internal インデックスのデフォルトの dbinspect 出力。 myLaptop $ splunk search "| dbinspect index=_internal" earliestTime eventCount hostCount id latestTime modTime path ------------------- ---------- --------- -- ------------------- ------------------- ----------------------------------------01/17/2013:14:56:39 955834 1 1 02/19/2013:12:29:27 02/27/2013:12:28:15 /Applications/splunk/var/lib/splunk/_inte 02/19/2013:12:29:28 67681 1 2 02/20/2013:11:24:27 02/27/2013:12:28:30 /Applications/splunk/var/lib/splunk/_inte 02/20/2013:11:24:48 9474 1 3 02/27/2013:14:03:07 02/27/2013:14:03:09 /Applications/splunk/var/lib/splunk/_inte Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、dbinspect コマンドの使 用方法に関する質問と回答をご覧ください。 dedup 概要 指定した基準に一致する、後続の重複する結果を削除します。 構文 118 dedup [<N>] <field-list> [keepevents=<bool>] [keepempty=<bool>] [consecutive=<bool>] [sortby <sort-by-clause>] 必要な引数 <field-list> 構文: <string> <string> ... 明:フィールド名のリスト。 オプション引数 consecutive 構文: consecutive=<bool> 明:連続している重複イベントのみを削除するかどうかを指定します (true)。デフォルトは偽 (false) です。 keepempty 構文: keepempty=<bool> 明:イベントの 1 つまたは複数の指定フィールドにヌル値が存在する場合、イベントは保持される (true) か、または破棄されます。デフォルトは偽 (false) です。 keepevents 構文: keepevents=<bool> 明:true の場合、すべてのイベントを保持して、特定の値を削除します。デフォルトは偽 (false) です。 <N> 構文: <int> 明:指定フィールドの各値の組み合わせに して、保持する最初の N 件のイベント (N > 0) を指定します。 non-option パラメータが数値の場合、それが N として解釈されます。 <sort-by-clause> 構文: ( - | + ) <sort-field> 明:並べ替えるフィールドのリストと、その並べ替え順序 (昇順 ( - ) または降順 ( + )) sort-field の オ プ シ ョ ン <sort-field> 構文: <field> | auto(<field>) | str(<field>) | ip(<field>) | num(<field>) 明:sort-field 用のオプション。 <field> 構文: <文字列> 明:ソートするフィールド名。 auto 構文: auto(<field>) 明:フィールドの値の自動ソート方法を指定します。 ip 構文: ip(<field>) 明:フィールドの値を IP アドレスとして解釈します。 num 構文: num(<field>) 明:フィールドの値を数字として処理します。 str 構文: str(<field>) 明:フィールド値を辞書的順序で並べます。 明 コマンドには、フィールドの値に基づいて保持する重複イベント数を指定します。dedup フィールドに して 返されたイベントが、最初のイベント (最新のイベント) になります。数値を指定した場合、dedup はそれを保持す る重複イベント数 (N) と解釈します。数字を指定しない場合、N には 1 が仮定され、最初のイベントのみが保持さ れて、残りの重複イベントは削除されます。 dedup コマンドでは、一部のフィールドリストをソートすることもできます。この場合、重複項目が削除された 後、sort-by フィールドに指定された値に基づいて結果がソートされます。この機能は、サーチが複数の結果を返 した場合にのみ有効になることに注意してください。その他のオプションを利用して、他の基準を指定することが dedup 119 できます。たとえば、すべてのイベントを保持しながら、重複する値を持つイベントに しては、イベント全体を 削除する代わりに値のみを削除することができます。 注意:大量のデータに してサーチを実行する場合、_raw フィールドに して dedup コマンドを実行することはお勧 めできません。このような操作を実行すると、各一意の _raw 値にマップが追加されるため、サーチパフォーマン スに 影響を与えてしまいます。これは想定されている動作です。 例 例 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 関 連項目 uniq Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、dedup コマンドの使用方 法に関する質問と回答をご覧ください。 削除 概要 インデックスから削除します。 構文 削除 明 サーチを delete 演算子に渡すことにより、そのサーチから返されるすべてのイベントがマークされます。マーク されたイベントは、今後のサーチでは返されません。Splunk を使ってこのデータを参照できるユーザーは存在し ません (管理 限を持つユーザーでも)。現在、パイプ文字を使って delete に渡しても、ディスクスペースは解放さ れません。 注意:リアルタイムサーチ時には delete 演算子を実行できず、到着するイベントを削除することはできません。 リアルタイムサーチ時に delete の使用を試みると、エラーメッセージが表示されます。 delete 演算子は、「delete_by_keyword」 限を持つユーザーのみがアクセスできます。Splunk にはデフォルト で、特殊ロール「can_delete」が用意されています。このロールがこの 限を保有しています (他は保有していな い)。デフォルトで、管理者ロールにはこの 限が与えられていません。インデックスデータを削除する際にログイ ンする、特別なユーザーを作成しておくことをお勧めします。 delete 演算子を使用するには、まず削除するイベントを返すサーチを実行します。このサーチが削除 象イベント 120 のみを返し、その他のイベントは返さないことを入念に確認してください。これらのデータが目的の削除データだ と確認できたら、そのサーチを delete にパイプします。詳細は、『インデクサーとクラスタの管理』の「Splunk からのインデックスとデータの削除」を参照してください。 注意: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 概要 隣接する結果間でフィールド値の差異を算出します。 構文 delta (field [AS newfield]) [p=int] 必要な引数 field 構文: <fieldname> 明:分析するフィールド名。 オプション引数 <newfield> 構文: <文字列> 明:field 値の 更名。 p 構文: p=<int> 明:newfield が指定されていない場合、デフォルトの delta(field) が使用されます。p が指定されていな い場合、デフォルトの 1 が使用されます。この場合、直前の値が使用されます。 明 コマンドは field が数値の各イベントに して、イベントの field 値と前のイベントの field 値の間の差をサー チ順に計算し、その差が newfield に書き込まれます。newfield が指定されていない場合、デフォルトでは delta(field) が使用されます。p が指定されていない場合、デフォルトでは p=1 が仮定されます。この場合、直前 の値が使用されます。p=2 の場合は、前の値のさらにもう 1 つ前の値が使用されます (それ以降も同 )。 delta 注意:delta コマンドは、イベントの並び順に処理します。デフォルトでは、非リアルタイムサーチから取得する イベントは時間の逆順で、新しいイベントから古いイベントの順に取得されます。そのため、時間の昇順の値で は、負の差分が表示されます。ただし、delta は任意のコマンドシーケンスの後に適用できます。そのため、入力 順序は保証されません。 例 例1 121 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行します。 昨日に何か商品を購入した上位 10 人の顧客を 索し、それぞれの購入商品数と各購入者の購入数の差を算出しま す。 sourcetype=access_* action=purchase | top clientip | delta count p=1 ここでは、購入イベント (action=purchase) が top コマンドに渡されて、何か商品を購入した上位 10 人のユー ザー (clientip) が 索されます。各 clientip の count を含むこれらの結果は、delta コマンドに渡されて、あるイ ベントの count 値とその直前のイベントの count 値の差が計算されます。デフォルトでは、この差分が delta(count) フィールドに保存されます。 これらの結果は、top コマンドによりテーブルとしてフォーマットされます。最初のイベントには、delta(count) 値がないことに注意してください。 例2 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (October 18-25, 2010) 地震データを 使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレ ポートステーション番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。 北カリフォルニア (Northern California) の最近の地震発生時刻の差を計算します。 source="eqs7day-M1.csv" Region="Northern California" | delta _time AS timeDeltaS p=1 | eval timeDeltaS=abs(timeDeltaS) | eval timeDelta=tostring(timeDeltaS,"duration") この例では、北カリフォルニアの地震 (Region="Northern California") をサーチします。次に delta コマンドを 使って、各地震のタイムスタンプ (_time) とその直前の地震のタイムスタンプの差を算出します。この時間の差分 には、timeDeltaS と言う名前が付けられます。 また、この例では eval コマンドと tostring() 関数を使って、認識しやすいように timeDeltaS のフォーマットを HH:MM:SS 形式に 更しています。 122 ここでは、最初の地震と 2 回目の地震の時間差が約 2 時間で、2 番目と 3 番目の時間差は 1 時間ほどであることが 分かります。 例3 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行します。 連続するトランザクション間の時間差を計算します。 sourcetype=access_* | transaction JSESSIONID clientip startswith="*signon*" endswith="purchase" | delta _time AS timeDelta p=1 | eval timeDelta=abs(timeDelta) | eval timeDelta=tostring(timeDelta,"duration") この例では、同じ値の JSESSIONID および clientip を持つイベントをトランザクションにグループ化し、文字列 「signon」を含むイベントをトランザクションの開始イベント、文字列「purchase」を含むイベントをトランザ クションの最後のイベントとして定義します。 トランザクションはパイプ文字で delta コマンドに渡されます。このコマンドは、_time フィールドを使って、あ るトランザクションとその直前のトランザクション間の時間を算出します。サーチは、この 更を timeDelta とし て名前を 更します。 この例では、eval コマンドを使用して timeDelta を絶 値 (abs(timeDelta)) に定義し直して、tostring() 関数を 使ってそれを把握しやすい文字列形式に 換しています。 ここでは、最初のトランザクションと 2 番目のトランザクションの時間差が 9分 19 秒、2 番目と 3 番目のトラン ザクションの時間差は 9 分 40 秒であることが分かります。 その他の例 例 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 123 関 連項目 accum、autoregress、streamstats、trendline Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、delta コマンドの使用方法 に関する質問と回答をご覧ください。 diff 概要 2 つのサーチ結果の差異を返します。 構文 diff [position1=int] [position2=int] [attribute=string] [diffheader=bool] [context=bool] [maxlen=int] オプション引数 position1 データタイプ: <int> 明:position2 と比較する値の、サーチ結果内の位置。デフォルトは position1=1 で、最初のサーチ結果を 表しています。 position2 データタイプ: <int> 明:サーチ結果内の位置で、position1 よりも大きくなければなりません。デフォルトは position2=2 で、2 番目のサーチ結果を表しています。 attribute データタイプ: <field> 明:2 つのサーチ結果間で比較するフィールド名。デフォルトは attribute=_raw です。 diffheader データタイプ: <bool> 明:diff 出力を 明するヘッダーを表示 (diffheader=true) するか、または非表示にするかを指定します。デ フォルトは diffheader=false です。 context データタイプ: <bool> 明:diff 出力の周 のコンテキスト線を表示 (context=true) するか、または非表示にするかを指定します。デ フォルトは context=false です。 maxlen データタイプ: <int> 明:2 つのイベントから取得されるデータの最大量 (バイト) を指定します。デフォルトは maxlen=100000、 つまり 100KB になります。maxlen=0 と指定すると、制限はありません。 明 2 つのサーチ結果を比較して、それらの差を返します。比較する 2 つのサーチ結果は 2 つの位置 (position) の値で 指定します。デフォルトは 1 と 2 です (最初の 2 件の結果を比較)。デフォルトでは、2 つのサーチ結果の raw テキ スト (_raw 属性) が比較されますが、「attribute」を使えば他の属性を指定できます。「diffheader」が真 (True) の場合、2 つのイベントのソースキーに基づくことを示す、従来の diff ヘッダーが作成されます (デフォルトは偽 (False))。「context」が真 (True) の場合、diff 周 のコンテキスト線が表示されます (デフォルトは偽 (False))。maxlenを指定した場合、それは2 つのイベントから取得されるデータの最大量 (バイト) を示します。デ フォルトは 100000 です。maxlen=0 と指定すると、制限はありません。 例 例 1:最初のサーチ結果と 3 番目のサーチ結果の「ip」値を比較します。 124 ... | diff pos1=1 pos2=3 attribute=ip 例 2:9 番目のサーチ結果を 10 番目のサーチ結果と比較します。 ... | diff position1=9 position2=10 関 連項目 set Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、diff コマンドの使用方法 に関する質問と回答をご覧ください。 erex 概要 値の例と類似するフィールド値を自動抽出します。 構文 erex [<field>] examples=<erex-examples> [counterexamples=<erex-examples>] [fromfield=<field>] [maxtrainers=<int>] 必要な引数 例 構文: <erex-examples> 明:情報を抽出して、新しいフィールドに保存するための、値の例のカンマ区切りリスト。 オプション引数 counterexamples 構文: counterexamples=<erex-examples> 明:抽出しない情報を表す例値のカンマ区切りリスト。 field 構文: <文字列> 明:fromfield から抽出された値を保管する新しいフィールド名。field を指定しない場合、値は抽出されま せんが、結果となる正規表現が生成され、エラーメッセージ内に返されます。その正規表現を rex コマンド で使用して、より効率的な抽出を行えます。 fromfield 構文: fromfield=<field> 明:情報の抽出元フィールドとなる既存のフィールド名。このフィールドから情報が抽出されて、新しい フィールドに保存されます。デフォルトは _raw です。 maxtrainers 構文: maxtrainers=<int> 明:学習する値の最大数。1 1000 でなければなりません。デフォルトは 100 です。 Erex の 例 <erex-examples> 構文: ""<string>(, <string> )*"" 明:例値のカンマ区切りリスト。 明 例に基づいて正規表現を抽出します。fromfield (デフォルトは _raw) から、examples (値の例のカンマ区切りリス ト) に類似するフィールドを自動抽出しそれを field に保管します。field を指定しない場合、値は抽出されませ んが、結果となる正規表現が生成され、エラーメッセージ内に返されます。その正規表現を rex コマンドで使用し て、より効率的な抽出を行えます。値の例の抽出ルールを学習するために、最高 maxtrainers 件まで学習します 125 て、より効率的な抽出を行えます。値の例の抽出ルールを学習するために、最高 (デフォルトは 100、1 1000 でなければなりません)。 件まで学習します 例 例 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" 関 連項目 extract、kvform、multikv、regex、rex、xmlkv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、erex コマンドの使用方法 に関する質問と回答をご覧ください。 eval 概要 式を計算して、結果値をフィールドに保管します。 構文 eval eval-field=eval-expression 必要な引数 eval-field 構文: <文字列> 明:評価した値のフィールド名です。 Eval 式 構文: <文字列> 明:宛先フィールドの値を表す、値、 数、演算子、および関数の組み合わせ。サーチの実行前に式の構文 がチェックされ、無効な式の場合には例外が生成されます。たとえば、eval ステートメントの結果が論理値 でなければならない場合などが げられます。指定されたイベントに して式を正常に評価できなかった場合、 結果フィールドの値は消去されます。 演算子 eval を使って実行できる基本的な操作を以下の表に示します。これらの評価が正常に機能するためには、操作の 種類に じて有効な値を使用する必要があります。たとえば、追加の例外処理では、値が数値でないと算術操作で 有効な結果を得ることはできません。値を連結する際には、値は文字列として読み込まれます (値の種類に関係な く)。 タイプ 演算子 算術 + - * / % 連結 . 論理値 AND OR NOT XOR < > <= >= != = == LIKE 関数 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(), 126 mvindex(), mvfilter(), mvjoin(), mvrange(), mvzip(), now(), null(), nullif(), pi(), pow(), random(), relative_time(), replace(), round(), rtrim(), searchmatch(), sigfig(), spath(), split(), sqrt(), strftime(), strptime(), substr(), time(), tonumber(), tostring(), trim(), typeof(), upper(), urldecode(), validate() が含まれています。 各関数の 明と例については、「eval と where の関数」を参照してください。 明 任意の式の評価を行い、数的、文字列、および論理操作を実行します。eval コマンドには、評価する式の結果を 保管するフィールド名が必要です。この宛先フィールド名が既存のフィールド名と一致する場合、フィールドの値 が eval 式の結果に置換されます。 サーチを eval コマンドや関数の引数として使用する場合、保存 みサーチ名は使用できません。リテラルサーチ文 字列またはリテラルサーチ文字列を含むフィールド (index=_audit events から抽出された search フィールドなど) を渡す必要があります。 ステートメントを使って、計算 みフィールドを定義することができます。そのためには、props.conf に eval ステートメントを設定します。サーチを実行すると、Splunk は背後にあるステートメントを自動的に評価して、 サーチ時のフィールド抽出と同じような方法でフィールドを作成します。この方法を利用する場合、サーチ文字列 に eval ステートメントを定義する必要はありません。結果となる計算 みフィールドを直接サーチできます。 eval 詳細は、後述する「計算 みフィールド」を参照してください。 例 例1 この例は、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からのイベントをグループ化できるようにな りました。 例2 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (September 23-29, 2010) 地震デー タを使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地 震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、お よびレポートステーション番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。 一般的に深度 70km 未 で発生した地震は、浅発地震、70 300km の震源域で発生した地震は深発地震として分 類されます。沈み込み帯では、より深い所で深発地震が発生することもあります (300 700 km)。 最近の地震を、その発生深度に基づいて分類します。 source=eqs7day-M1.csv | eval Description=case(Depth<=70, "Shallow", Depth>70 AND Depth<=300, "Mid", Depth>300, "Deep") | table Datetime, Region, Depth, Description コマンドを使って Description フィールドを作成します。このフィールドは、地震の Depth に基づいて、 「Shallow」 (浅)、「Mid」 (中)、または「Deep」 (深) の値を取ります。case() 関数は、各 明に適合する深さの範 を指定するために用いられています。たとえば、深度が 70 km 未 の場合、その地震は浅発地震として分類さ れ、Description には Shallow が設定されます。 eval 127 このサーチは eval の結果を table コマンドにも渡します。これは、地震のタイムスタンプ、発生場所、地震の深 度 (Km)、および eval 式によって設定された する 明を表示するように、テーブルをフォーマットします。 例3 この例は、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 結果をフォーマットする別の方法として、eval の結果を table コマンドに渡して、注目するフィールドのみを表 示することができます。(例 1 を参照) 注意:この例は、cidrmatch 関数の単なる使用方法を表しています。イベントを分類して、それらのイベントを素 早くサーチしたい場合は、イベントタイプを使用することをお勧めします。詳細は、『ナレッジマネージャマニュ アル』の「イベントタイプについて」を参照してください。 例4 128 この例は、生成されたメールデータ (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 と from_domain に、それぞれ accountname の 1 番目の値と 2 番目の値 を設定します。 式の結果は table コマンドに渡されます。以下の結果テーブルでは、元の mailfrom 値と、新しい from_user および from_domain の値を確認できます。 eval 注意:この例は、実用的なものではありません。これは、eval 関数を使った、複数値フィールド内の個別の値の 識別方法をデモンストレーションする目的で作成されています。このメールデータセットには複数値フィールドが 存在していないため、この例では単一値フィールド (mailfrom) から複数値フィールド (accountname) を作成しまし た。 例5 この例は、生成されたメールデータ (sourcetype=cisco_esa) を使用しています。この例の sourcetype=cisco_esa をご自分のデータの sourcetype 値に、そして mailfrom フィールドをご自分のメールア ドレスフィールド名 (例:To, From, or Cc) に 更すれば、任意のメールデータに して利用できます。 この例では、メールアドレスのドメインに基づいて、メールの送信元を分類しています。.com、.net、および .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 このサーチの前半部は例 3 と似ています。split() 関数を使って、mailfrom フィールドにメールアドレスを分類し ています。mvindex 関数は from_domain を、mailfrom フィールドの @ 記号の後の部分として定義しています。 次に、if() および match() 関数を使用しています。from_domain の値の最後が .com, .net., or .org で終了する 場合、location フィールドには local が割り当てられます。from_domain が一致しない場合は、location に abroad が割り当てられます。 の結果は stats コマンドに渡されて、各 location 値の結果数がカウントされ、以下のような結果テーブルが 生成されます。 eval 129 サーチの実行後、イベントに mailfrom および location フィールドを追加して、イベントの分類をそのまま参照す ることができます。サーチ結果にこれらのフィールドを入れると、結果は以下のようになります。 注意:この例では、match() 関数の使用についてはほとんど描かれていません。イベントを分類して、それらのイ ベントを素早くサーチしたい場合は、イベントタイプを使用することをお勧めします。詳細は、『ナレッジ管理マ ニュアル』の「イベントタイプについて」を参照してください。 例6 この例では、チュートリアルのサンプルデータセットを使用していますが、Apache Web アクセスログ形式の 任意のデータを利用できます。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に 従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行しま す。 時間を秒で測定している数値フィールドを、より把握しやすい形式に 換します。 sourcetype=access_* | transaction clientip maxspan=10m | eval durationstr=tostring(duration,"duration") この例は、tostring() 関数と duration オプションを使って、トランザクションの duration を把握しやすい HH:MM:SS 形式に 換しています。duration は、トランザクション内の最初のイベントと最後のイベント間の時間 差 (秒) です。 このサーチは、 換した duration 値用の新規フィールド durationstr を定義しています。サーチの実行後は、 フィールドピッカーを使って イベントと一緒に 2 つのフィールドをインラインに表示することができます。サー チ結果にこれらのフィールドを入れると、結果は以下のようになります。 130 その他の例 例 A:速度 (velocity) に距離/時間を設定します。 ... | eval velocity=distance/time 例 B:エラーが 200 の場合 status に OK を、それ以外の場合は Error を設定します。 ... | eval status = if(error == 200, "OK", "Error") 例 C:lowuser に、ユーザー名を小文字で設定します。 ... | eval lowuser = lower(username) 例 D:sum_of_areas に、2 つの円領域の合計を設定します ... | eval sum_of_areas = pi() * pow(radius_a, 2) + pi() * pow(radius_b, 2) 例 E:status に、単純な HTTP エラーコードを設定します。 ... | eval error_msg = case(error == 404, "Not found", error == 500, "Internal Server Error", error == 200, "OK") 例 F:first_name、1 つのスペース、および last_name を連結した full_name を設定します。 ... | eval full_name = first_name." ".last_nameSearch 例 G: processor 別の cpu_seconds の平均を小数第 2 位で丸めた時間グラフを作成します。 ... | timechart eval(round(avg(cpu_seconds),2)) by processor 例 H: 数値フィールドの値を、カンマで区切った文字列に 換します。x の元の値が 1000000 の場合、返される値 は 1,000,000 になります。 ... | eval x=tostring(x,"commas") 計算 みフィ ー ルド 計算 みフィールドを使って、頻繁に使われる 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 [index=<string>] [summarize=<bool>] [report_size=<bool>] 131 オプション引数 index 構文: index=<string> 明:デフォルトのインデックスの代わりにイベントをカウントするインデックス名。 report_size 構文: report_size=<bool> 明:インデックスサイズをバイトで表示します。デフォルトは偽 (false) です。 summarize 構文: events=<bool> 明:eventcount を要約するかどうかを指定します。 例 例 1:各インデックス/サーバーのペアにより、イベントカウントを与えます。 | eventcount summarize=false index=* 例 2:すべてのサーチピアにイベントカウントを表示します。 | eventcount summarize=true 例 3:_internal インデックス内のイベント数を返します。 | eventcount index=_internal Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、eventcount コマンドの使 用方法に関する質問と回答をご覧ください。 eventstats 概要 すべてのサーチ結果に、サマリー統計情報を追加します。 構文 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> 明:真 (True) の場合、当該フィールドのすべての値が数値の場合にのみ、各フィールドの数値統計を算出 します。(デフォルトは偽 (False)) <by 句> 構文: by <field-list> 明:グループ化する 1 つ以上のフィールド名。 Stats 関 数 の オ プ シ ョ ン stats-function 132 構文: 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 関数の一覧については、「stats、 chart、および timechart の関数」を参照してください。 明 サーチ結果内のすべての既存のフィールドのサマリー統計情報を生成し、それらを新しいフィールドの値として保 存します。統計結果の新しいフィールド名を指定するには、as 引数を使用します。新しいフィールド名を指定し ない場合、デフォルトでは統計演算子と演算 象フィールドがフィールド名として使用されます (例:statoperator(field))。stats コマンドと似ていますが、各イベントに関連する集計結果のみがインラインで追加されま す。allnum オプションは、stats コマンドの同オプションと同じ働きをします。 例 例 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 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、eventstats コマンドの使 用方法に関する質問と回答をご覧ください。 extract (kv) 概要 サーチ結果から、フィールドと値のペアを抽出します。 構文 extract | kv <extract-opt>* <extractor-name>* 必要な引数 <extract-opt> 構文: auto=<bool> | clean_keys=<bool> | kvdelim=<string> | limit=<int> | maxchars=<int> | mv_add=<bool> | pairdelim=<string> | reload=<bool> | segment=<bool> 明:抽出を定義するオプション。 <extractor-name> 構文: <文字列> 明:transforms.conf に存在するスタンザ。 props.conf によりこのソース、ソースタイプ、またはホストに して明示的に抽出が行われない場合に使用されます。 133 Extract の オ プ シ ョ ン auto 構文: auto=<bool> 明:「=」ベースの自動抽出を行うかどうかを指定します。デフォルトは真 (True) です。 clean_keys 構文: clean_keys=<bool> 明:キーをクリーンするかどうかを指定します。transforms.conf の CLEAN_KEYS に優先します。 kvdelim 構文: kvdelim=<string> 明:キーを値から分離する文字区切り記号りリストを指定します。 limit 構文: limit=<int> 明:抽出するキー/値のペア数を指定します。デフォルトは 50 です。 maxchars 構文: maxchars=<int> 明:イベントで探す文字数を指定します。デフォルトは 10240 です。 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="=:", auto=f 例 2:フィールド/値のペアを抽出して、ディスクからフィールド抽出設定を再ロードします。 ... | extract reload=true 例 3:transforms.conf のスタンザ 'access-extractions' に定義されているフィールド/値のペアを抽出します。 ... | extract access-extractions 関 連項目 kvform、multikv、rex、xmlkv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、extract コマンドの使用方 法に関する質問と回答をご覧ください。 134 fieldformat fieldformat コマンドでは、eval 式を利用して結果表示時のフィールド値のフォーマットを 更することができま す。 注意:エクスポートの場合、表示用のフォーマットではなく元のデータフォーマットが保持されるため、データの エクスポート (例:csv ファイルへのエクスポート) にこの機能は利用できません。Splunk Web のエクスポート機 能には、フィールドをレンダリング表示するオプションはありません。 概要 出力時に値を 更せずにフィールドを表示する方法を指定します。 構文 fieldformat <field>=<eval-expression> 必要な引数 <field> 明:eval 式の出力用の、ワイルドカードを使用しない新しいまたは既存のフィールド名。 <Eval 式> 構文: <文字列> 明:宛先フィールドの値を表す、値、 数、演算子、および関数の組み合わせ。詳細は、「eval コマンドリ ファレンス」および「eval 関数の一覧」を参照してください。 例 例 1:start_time を表示 するために start_time の値 (エポック数が前提) を取得し、それを解釈してそのエポック時 の時、分、秒のみを表示するように指定します。 ... | fieldformat start_time = strftime(start_time, "%H:%M:%S") 関 連項目 eval、where Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、fieldformat コマンドの使 用方法に関する質問と回答をご覧ください。 fields 概要 サーチ結果のフィールドを保持または削除します。 構文 fields [+|-] <wc-field-list> 必要な引数 <wc-field-list> 構文: <string>, ... 明: 保持 (+) または削除 (-) するフィールドのカンマ区切りリスト、ワイルドカードを使用できます。 明 フィールドのリスト基準に基づいて、フィールドを保持 (+) または削除 (-) します。「+」を指定した場合、リスト 135 内のいずれかのフィールドに一致するフィールドのみが保持されます。「-」を指定した場合、リスト内のいずれ かのフィールドに一致するフィールドのみが削除されます。 または - のどちらも指定しない場合、これは + で呼び出して、リストに _* 追加した場合と同等になります。つ まり、「fields x, y」は、「fields + x, y, _*」同じ意味になります。 + 重要:先頭のアンダースコアは、_raw and _time などの、すべての内部 Splunk フィールド名用に予約されていま す。デフォルトでは、出力には内部フィールド _raw and _time が含まれます。fields コマンドは、以下の項目を 明示的に指定しない限り、内部フィールドを削除することはありません。 ... | fields - _* または、より明示的に以下のように指定します。 ... | fields - _raw,_time 注意:結果を統計コマンドに渡す場合は、_time フィールドを削除しないでください。 例 例 1:「host」および「ip」フィールドを削除します。 ... | fields - host, ip 例 2:「host」および「ip」フィールドのみを保持し、それを「host」、「ip」の順序で表示します。この場合、 アンダースコアから始まる内部フィールドも削除されることに注意してください (_time など)。 ... | fields host, ip | fields - _* 例 3:フィールド「source」、「sourcetype」、「host」、および値の先頭が「error」で始まるすべてのフィール ドのみが保持されます。 ... | fields source, sourcetype, host, error* 関 連項目 rename、table Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、fields コマンドの使用方 法に関する質問と回答をご覧ください。 fieldsummary 概要 すべてのフィールドまたはフィールドのサブセットのサマリー情報を生成します。 構文 fieldsummary [maxvals=<num>] [<wc-field-list>] オプション引数 maxvals 構文: maxvals=<num> 明:各フィールドに して返す一意の値の最大値を指定します。デフォルトは、100 です。 wc-field-list 構文: 明:1 つのフィールド、またはワイルドカードを含むフィールドのリスト。 例 例 1:すべてのフィールドのサマリーを返します。 136 ... | fieldsummary 例 2:date_ で始まる各フィールドの上位 10 件の値のみのサマリーを返します。 ... | fieldsummary maxvals=10 date_* 関 連項目 af、anomalies、anomalousvalue、stats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、fields コマンドの使用方 法に関する質問と回答をご覧ください。 filldown 概要 NULL 値を最後の非 NULL 値で置換します。 構文 filldown <wc-field-list> 明 1 つのフィールドまたは一連のフィールドに して、ヌル値を最後の非ヌル値と置換します。フィールドリストを指 定しない場合、すべてのフィールドに して filldown が適用されます。フィールドに して前の値が存在していない 場合は、そのまま空 (NULL) で放置されます。 例 例 1:すべてのフィールドの NULL 値に して、filldown を実施します ... | filldown 例 2:count フィールドにのみ NULL 値の filldown を実施します ... | filldown count 例 3:count フィールドおよび先頭が「score」で始まる任意のフィールドのヌル値に して filldown を実施しま す。 ... | filldown count score* 関 連項目 fillnull Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、filldown コマンドの使用 方法に関する質問と回答をご覧ください。 fillnull 概要 ヌル値を指定値で置換します。 137 構文 fillnull [value=string] <field-list> 必要な引数 field-list 構文: <field>... 明:1 つまたは複数のフィールドをスペースで区切ります。指定しない場合、すべてのフィールドに fillnull が適用されます。 オプション引数 value データタイプ: <文字列> 明:NULL 値を指定値で置換します (デフォルトは 0)。 明 NULL 値を指定値で置換します (デフォルトは 0)。NULL 値は、他の結果内には存在しているけれども、ある結果 内には存在しない値です。field-list を指定した場合、fillnull は指定したリスト内のフィールドにのみ適用されます (まったく存在していないフィールドも含む)。それ以外の場合は、既存のすべてのフィールドに して適用されま す。 例 例 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 コマンドの使用方 法に関する質問と回答をご覧ください。 findtypes 概要 提案するイベントタイプを生成します。 構文 findtypes max=<int> [notcovered] [useraw] 必要な引数 max 138 データタイプ: <int> 明:返す最大イベント数デフォルトは 10 です。 オプション引数 notcovered 明:このキーワードを使用した場合、findtypes はすでにカバーされていないイベントタイプのみを返しま す。 useraw 明:このキーワードを使用した場合、findtypes はイベントの _raw テキスト内のフレーズを使って、イベン トタイプを生成します。 明 findtypes コマンドはサーチ結果を取得し、イベントタイプとして使用できる可能性がある有望なサーチのリスト を生成します。発見されたイベントタイプに して、最高で 5000 件のイベントが分析されます。 例 例 1:10 件の共通なイベントタイプを発見します。 ... | findtypes 例 2:50 件の一般的なイベントタイプを探し、注目するテキストフレーズに するサポートを追加します。 ... | findtypes max=50 useraw 関 連項目 typer Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、findtypes コマンドの使用 方法に関する質問と回答をご覧ください。 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 139 構文: minfolders=<int> 明:グループに、最低フォルダ数を設定します。デフォルトは 2 です。 maxfolders 構文: maxfolders=<int> 明:グループに、最大フォルダ数を設定します。デフォルトは 20 です。 明 属性の値をより汎用的な値に置換します。これは、他の結果からの他の値でグループ化した結果となりま す。グループ化は、sep セパレータ値に して attr 属性をトークン化することにより行われます。 attr たとえば、Splunk ホームページで使われるようなサーチ結果をグループ化して、階層構造バケツ (ディレクトリや カテゴリ) を表示できます。Splunk ホームページに 200 件のソースを表示する代わりに、folderize によりセパ レータ (例:「/」) で区切ってソース文字列を分類し、要求された結果内のディレクトリ結果だけを表示すること ができます。 例 例 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 コマンドの使用 方法に関する質問と回答をご覧ください。 format 概要 サブサーチの結果を取得し、それを単一の結果にまとめます。 構文 format ["<string>" "<string>" "<string>" "<string>" "<string>" "<string>"] オプション引数 <文字列> 構文: "<string>" 明:これらの 6 つのオプション文字列引数は、 ["<row prefix>" "<column prefix>" "<column separator>" "<column end>" "<row separator>" "<row end>"] に しています。デフォルトでは、文字列を指定しない場 合、フォーマット出力は "(" "(" "AND" ")" "OR" ")" になります。 明 サブサーチのサーチ結果を取得して、入力サーチ結果から作成されたクエリーとなる単一の結果を返します。 例 例 1:上位 2 件の結果を取得して、その host、source、および sourcetype からサーチを作成し、単一のサーチ結 果 query フィールドを生成します: query=( ( "host::mylaptop" AND "source::syslog.log" AND "sourcetype::syslog" ) OR ( "host::bobslaptop" AND "source::bob-syslog.log" AND "sourcetype::syslog" ) ) ... | head 2 | fields source, sourcetype, host | format 例 2:サブサーチがサーチの生成時に使用できる、イベントの最大数をデフォルトから 2000 に やします。 140 limits.conf: [format] maxresults = 2000 サブサーチ: ... | head 2 | fields source, sourcetype, host | format maxresults=2000 関 連項目 search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、format コマンドの使用方 法に関する質問と回答をご覧ください。 gauge gauge グラフタイプを利用して、単一の数値を色範 にマップして、ビジネス上の意味やロジックを視 的に表すこ とができます。時間の 過に伴い値が 化すると、ゲージマーカーの位置がその範 内で 化します。 gauge コマンドを利用して、ゲージグラフで値を追跡するフィールドを指定することができます。ゲージが表す総 合的な数値範 を定義することができます。また、その範 内でカラーバンドのサイズを定義できます。カラーバン ドを使用する場合、サーチ文字列に範 の開始と終了を表す 4 つの範 値、およびその中にある各カラーバンドの相 サイズを追加します。 ゲージのグラフタイプを使った gauge コマンドの使用方法の詳細は、『ビジュアル化リファレンス』のグラフに 関する 明を参照してください。 概要 結果をゲージグラフでの表示に適した形式に 換します。 構文 gauge [<num>|<field>]... 引数 num 明:最低 1 つの実数、複数指定する場合はスペースで区切ります。 field 明:フィールド名。最初の入力行のフィールドの値が使用されます。 明 各引数は実数か、またはフィールド名になります。最初の引数はゲージの値で必須項目です。それ以降の各引数は ゲージ内の各セクションの範 を定義するもので、省略することができます。最低 2 つの範 値を指定しないと、 ゲージは 0 で始まり 100 で終了します。引数がフィールド名の場合、最初の入力行内のそのフィールドの値が使 用されます。このコマンドは、外部 python スクリプトとして実装されています。 例 例 1:イベント数をカウントして、4 つの領域 (0 750、750 1000、1000 1250、1250 1500) を持つゲージにカウン ト数を表示します。 index=_internal | stats count as myCount | gauge myCount 750 1000 1250 1500 141 放射状ゲージ、フィラーゲージ、およびマーカーの 3 種類のゲージを選 できます。ゲージのさまざまな例につい ては、『ビジュアル化リファレンス』のグラフに関する 明を参照してください。 関 連項目 eval、stats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、gauge コマンドの使用方 法に関する質問と回答をご覧ください。 gentimes 概要 時間範 結果を生成します。このコマンドは、map コマンドと一緒に使用すると役立ちます。 構文 gentimes start=<timestamp> [end=<timestamp>] [<increment>] 必要な引数 先頭 構文: start=<timestamp> 明:開始時間を指定します。 <timestamp> 構文: (MM/DD/YY)?:(HH:MM:SS)?|<int> 明:時刻を指定します (例:10/1/07:12:34:56 (2007 年 10 月 1 日 12:34:56) or -5 (5 日前))。 オプション引数 最後 構文: end=<timestamp> 明:終了時間を指定します。 <increment> 構文: increment=<int>(s|m|h|d) 明:開始時間から終了時間への、期間の 分を指定します。 例 例 1:10 月 1 日から 10 月 5 日までのすべての 時間範 | gentimes start=10/1/07 end=10/5/07 increment=1h 例 2:30 日前から 27 日前までのすべての日次時間範 142 | 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 コマンドの使用 方法に関する質問と回答をご覧ください。 head 概要 指定した結果の最初の n 件を、サーチ順序に返します。 このことは、履歴サーチの最新の n 件のイベント、またはリアルタイムサーチで最初に補足された n 件のイベン トを表しています。 構文 head [<N> | <eval-expression>] [limit=<int>] [null=<bool>] [keeplast=<bool>] オプション引数 Eval 式 構文: <eval-math-exp> | <eval-concat-exp> | <eval-compare-exp> | <eval-bool-exp> | <eval-function-call> 明: 論理演算式を評価する有効な eval 式です。この式の評価が偽 (False) となるまで、結果が返されま す。詳細は、「eval の関数」を参照してください。 keeplast 構文: keeplast=<bool> 明:eval 式の評価が偽 (False) または NULL となった、最後のイベントを保持するかどうかを指定します。 limit 構文: limit=<int> 明:返す結果数を指定する、別の方法です。デフォルトは 10 です。 <N> 構文: <int> 明:返す結果数。何も指定されていない場合、デフォルトの 10 が使用されます。 null 構文: null=<bool> 明:N を指定する代わりに論理評価式を使用した場合、ここに NULL の結果の処理方法を指定します。た とえば、eval 評価が (x > 10) で、フィールド x が存在しない場合、式の評価は真 (True) または偽 (False) で はなく、NULL になります。そのため、null=true は head コマンドの結果が NULL の場合には処理が続行さ れ、null=false の場合はそのような状況下ではコマンドが停止されます。 明 最初の n 件の結果を返します。整数値が指定されていない場合は、10 件を返します。4.0 からは、eval 論理式を 指定できるようになりました。この場合、式の評価が偽 (False) になるまでの間、イベントが返されます。 例 143 例 1:最初の 20 件の結果を返します。 ... | head 20 例 2:データの期間が 100 秒以上になるまでイベントを返します。 ... | streamstats range(_time) as timerange | head (timerange<100) 関 連項目 reverse、tail Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、head コマンドの使用方 法に関する質問と回答をご覧ください。 highlight 概要 ui で指定した単語を強調表示します。 構文 highlight <string>+ 必要な引数 <文字列> 構文: <string>, ... 明:結果を強調表示するための、キーワードのカンマ区切りリスト。 明 指定文字列を Splunk Web により強調表示します。 例 例 1:「login」および「logout」を強調表示します。 ... | highlight login,logout Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、highlight コマンドの使用 方法に関する質問と回答をご覧ください。 history 概要 イベントリストまたはテーブル形式でサーチの履歴を返します。 構文 history [events=<bool>] 引数 イベント 144 構文: events= T | F 明: サーチ履歴をイベントリストとして返すか (T)、またはテーブルとして返すか (F) を指定します。デ フォルトは F です。 例 例 1:サーチ履歴のテーブルを返します。 ... | history 関 連項目 search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、history コマンドの使用方 法に関する質問と回答をご覧ください。 iconify 概要 Splunk Web で、リストに表示する各フィールド値に して、独自のアイコンを作成します。 構文 iconify <field-list> 必要な引数 field-list 構文: <field>... 明:ワイルドカードを使用しないフィールドの、カンマまたはスペース区切りリスト。 明 各フィールドの一意の値に して、別個のアイコンを表示します。複数のフィールドが記載されている場合は、UI にはフィールド値の各一意の組み合わせに して、別個のアイコンが表示されます。 例 例 1:eventtype ごとに異なるアイコンを表示します。 ... | iconify eventtype 例 2:clientip と method の値の一意のペアに して、異なるアイコンを表示します。 ... | iconify clientip method Splunk がイベントリストにどのように結果を表示するかを以下に示します。 145 関 連項目 highlight Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、iconify コマンドの使用方 法に関する質問と回答をご覧ください。 input 概要 Splunk で処理するソースを追加または無効にします。 構文 input (add|remove) [sourcetype=string] [index=string] [string=string]* オプション引数 ソースタイプ データタイプ: <文字列> 明:Splunk で処理するソースを追加または削除 (無効化) します。inputs.conf で入力を有効または無効にで きます。必要に じて、ソースタイプおよびインデックスも設定できます。 index データタイプ: <文字列> 明:Splunk で処理するソースを追加または削除 (無効化) します。inputs.conf で入力を有効または無効にで きます。必要に じて、ソースタイプおよびインデックスも設定できます。 明 Splunk で処理するソースを追加または削除 (無効化) します。inputs.conf で入力を有効または無効にできます。必 要に じて、ソースタイプおよびインデックスも設定できます。任意の追加「属性 = 値」が inputs.conf に定義され ます。 更は $splunk_home/var/log/splunk/inputs.log に記 されます。通常は、crawl コマンドと連携使用されます。 例 例 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" 146 例 3:クロールで見つかった各ソースを、デフォルトのインデックスに追加します。この時、ソースは自動的に分 類されます (sourcetyping)。 | crawl | input add 関 連項目 crawl Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、input コマンドの使用方法 に関する質問と回答をご覧ください。 inputcsv 概要 指定した csv ファイルから、サーチ結果を読み込みます。 構文 inputcsv [append=<bool>] [start=<int>] [max=<int>] [events=<bool>] <filename> 必要な引数 filename 構文: <filename> 明:$SPLUNK_HOME/var/run/splunk にある CSV ファイル名を指定します。 オプション引数 append 構文: append=<bool> 明:CSV ファイルからのデータを現在の結果セットに追加するか (true)、または現在の結果セットと置換す るか (false) を指定します。デフォルトは偽 (false) です。 イベント 構文: events=<bool> 明:適切なタイムラインとフィールドピッカーが表示されるように、インポートした結果のイベントとして の処理を許可します。 max 構文: max=<int> 明:ファイルから読み込むイベントの最大数を指定します。デフォルトは 1000000000 です。 先頭 構文: start=<int> 明:読み込む最初のイベントの、0 ベースのオフセットを指定します。デフォルトは 0 です。 明 指定された csv ファイルを使って、 更されていない結果データ構造を取り込みます。ファイル名 は、$SPLUNK_HOME/var/run/splunk 内の相 パスを参照する必要があります。また、指定されたファイルが存在して おらず、ファイル名に 張子が指定されていない場合は、ファイル名に 張子 .csv を付けた名前が仮定されます。 注意:inputcsv の実行でエラーが発生する場合は、CSV ファイルが BLANK LINE で終了していることを確認して ください。 例 例 1:CSV ファイル「$SPLUNK_HOME/var/run/splunk/all.csv」から結果を読み込んで、文字列「error」を含む結 果を保持し、それをファイル「$SPLUNK_HOME/var/run/splunk/error.csv」に書き込みます。 147 | inputcsv all.csv | search error | outputcsv errors.csv 例 2:ファイル「bar」 (存在する場合) または「bar.csv」のいずれかから 101 600 イベントを読み込みます。 | inputcsv start=100 max=500 bar 例 3:イベントを CSV ファイル「$SPLUNK_HOME/var/run/splunk/foo.csv」から読み込みます。 | inputcsv foo.csv 関 連項目 outputcsv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、inputcsv コマンドの使用 方法に関する質問と回答をご覧ください。 inputlookup 概要 指定した静的ルックアップテーブルからサーチ結果を読み込みます。 構文 inputlookup [append=<bool>] [start=<int>] [max=<int>] (<filename> | <tablename>) 必要な引数 <filename> 構文: <文字列> 明:ルックアップファイル名 (.csv または .csv.gz で終了していなければなりません)。ルックアップが存在 しない場合は、警告メッセージが表示されます (ただし、構文エラーは発生しません)。 <tablename> 構文: <文字列> 明: transforms.conf 内のスタンザに指定されたルックアップテーブル名。 オプション引数 append 構文: append=<bool> 明:真 (True) を設定すると、ルックアップファイルのデータは、現在の結果セットに置換されるのではな く追加されます。デフォルトは偽 (false) です。 max 構文: max=<int> 明:ファイルから読み込むイベントの最大数を指定します。デフォルトは 1000000000 です。 先頭 構文: start=<int> 明:読み込む最初のイベントの、0 ベースのオフセットを指定します。start=0 の場合、最初のイベントか ら開始されます。start=4 の場合は、5 番目のイベントから開始されます。デフォルトは 0 です。 明 指定されたファイル名 (ファイル名の最後は .csv または .csv.gz になる) またはテーブル名 (transforms.conf のスタ ンザに定義) で、結果をルックアップテーブルに保存します。「append」に真 (True) を設定した場合 (デフォルト は偽 (False))、ルックアップファイルのデータが現在の結果セットに追加されます (置換ではない)。 例 148 例 1:ルックアップテーブル「usertogroup」を読み込みます (transforms.conf に定義されている)。 | inputlookup usertogroup 例 2:例 2 と同じですが、ルックアップテーブルからのデータは、現在の結果に追加されます。 | inputlookup append=t usertogroup 例 3:ルックアップファイル「users.csv」を読み込みます ($SPLUNK_HOME/etc/system/lookups または $SPLUNK_HOME/etc/apps/*/lookups 下)。 | inputlookup users.csv 関 連項目 inputcsv、join、lookup、outputlookup Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、inputlookup コマンドの使 用方法に関する質問と回答をご覧ください。 iplocation 概要 ip アドレスから場所情報を抽出します。 構文 iplocation [maxinputs=<int>] オプション引数 maxinputs 構文: maxinputs=<int> 明:スクリプトに渡す上位の結果数を指定します。 明 in _raw 内の IP を 索して、hostip.info データベースを使ってルックアップします。IP はip1、ip2 などのように抽 出され、市と国も同 に抽出されます。 例 例 1:場所情報を追加します (IP アドレスに基づく)。 ... | iplocation 例 2:Web アクセス内のクライアントエラーをサーチし、場所情報を追加して、各クライアントエラーに する IP アドレス、市および国のテーブルを返します。 404 host="webserver1" | head 20 | iplocation | table clientip, City, Country Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、iplocation コマンドの使 用方法に関する質問と回答をご覧ください。 join 149 join は、指定フィールドが双方に共通な場合に、サーチとサブサーチの結果を結合するために用いられます。ま た、selfjoin コマンドを使ってテーブルを自身に結合することもできます。 概要 メイン結果パイプラインの結果をサブパイプラインの結果と、SQL のように結合します。 構文 join [join-options]* <field-list> [ subsearch ] 必要な引数 subsearch 明:サーチパイプライン。サブサーチの詳細は、『サーチマニュアル』を参照してください。 オプション引数 field-list 構文: <field>, ... 明:join で結合に使用するフィールドを指定します。何も指定されていない場合、両方の結果セットに共通 のすべてのフィールドが使用されます。 join-options 構文: type=(inner|outer|left) | usetime=<bool> | earlier=<bool> | overwrite=<bool> | max=<int> 明: join コマンドのオプション。 Join の オ プ シ ョ ン type 構文: type=inner | outer | left 明:使用する結合の種類を示します。基本的に inner と left (または outer) の差は、サブパイプライン内 のいずれとも一致しない主パイプライン内のイベントの処理方法です。どちらの場合でも、一致するイベン トが結合されます。inner 結合の結果には、一致しないイベントは含まれません。left (または outer) 結合 では、各イベントが一致するフィールド値を持たなくても構いません。また、結合された結果には、サブ サーチのいずれの行と一致しない場合でも、各イベントが保持されます。デフォルトは、内部結合 (inner) で す。 usetime 構文: usetime=<bool> 明:結合する主結果よりも、早いまたは いサブサーチの結果に一致を制限するかどうかを指定します。デ フォルトは偽 (false) です。 earlier 構文: earlier=<bool> 明:usetime=true の場合に、主結果よりも早い (true) または い (false) 一致を結合するかどうかを指定しま す。デフォルトは真 (True) です。 overwrite 構文: overwrite=<bool> 明:同じフィールド名を持つ場合に、サブ結果からのフィールドで、主結果のフィールドを上書きするかど うかを示します。デフォルトは真 (True) です。 max 構文: max=<int> 明:各主結果が結合できるサブ結果の最大数を示します。max=0 の場合、制限はありません。デフォルトは 1 です。 明 メイン結果パイプラインの結果と、最後の引数に指定されたサーチパイプラインの結果を結合する、従来の join コマンド。必要に じて、結合するフィールドを直に指定します。フィールドを指定しない場合、両方の結果セッ トに共通なすべてのフィールドが使用されます。 例 150 例 1:前の結果セットと「search foo」の結果の ID フィールドを結合します。 ... | join id [search foo] 関 連項目 selfjoin、append、set、appendcols Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、join コマンドの使用方法 に関する質問と回答をご覧ください。 kmeans 概要 選 フィールドに して、K-Means クラスタリングを実施します。 構文 kmeans [kmeans-options]* <field-list> 必要な引数 field-list 構文: <field>, ... 明:join で結合に使用するフィールドを指定します。何も指定されていない場合、両方の結果セットに共通 のすべてのフィールドが使用されます。 オプション引数 kmeans-options 構文: <reps>|<iters>|<tol>|<k>|<cnumfield>|<distype> 明:kmeans コマンドのオプション。 kmeans の オ プ シ ョ ン reps 構文: reps=<int> 明:無作為の起動クラスタを使って、kmeans を繰り返す回数を指定しますデフォルトは 10 です。 iters 構文: maxiters=<int> 明:収束の失敗までに許可されている最大反復数を指定します。デフォルトは 10000 です。 tol 構文: tol=<num> 明:アルゴリズム収束許容範 を指定します。デフォルトは 0 です。 k 構文: k=<int>|<int>-<int> 明:使用する初期クラスタ数を指定します。この値を範 で示すことができます。この場合、範 内の各値が 1 回使用され、サマリーデータが与えられます。デフォルトは 2 です。 cnumfield 構文: cfield=<field> 明:各イベントのクラスタ番号のフィールド名を指定します。デフォルトは CLUSTERNUM になります。 distype 構文: dt=l1|l1norm|cityblock|cb|l2|l2norm|sq|sqeuclidean|cos|cosine 明:距離測定基準を指定します。L1/L1NORM は CITYBLOCK と同等です。L2NORM は SQEULIDEAN と 同等です。デフォルトは L2NORM です。 明 151 明 選 フィールド (空の場合はすべての数値フィールド) に K-Means クラスタリングを実施します。同じクラスタ内の イベントが隣同士になるように移動されます。必要に じて、各イベントのクラスタ番号を表示できます。 例 例 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 概要 フォームテンプレートを使ってサーチ結果から値を取得します。 構文 kvform [form=<string>] [field=<field>] オプション引数 form 構文: form=<string> 明: $SPLUNK_HOME/etc/apps/.../form にある .form ファイルを指定します。 field 構文: <field> 明:抽出するフィールド名。デフォルトは sourcetype です。 明 値の抽出方法を記述したフォームテンプレートに基づいて、イベントからキー/値のペアを抽出します。form を指 定した場合、Splunk 設定フォームディレクトリ内に見つかった、インストールされた フォーム.form ファイルを使 用します。たとえば、form=sales_order の場合、$PLUNK_HOME/etc/apps/.../form 内の sales_order.form フォー ムが 索されます。処理されるすべてのイベントが、このフォームと照合され、値の抽出が試みられます。 FORM を指定しない場合、field の値により抽出されるフィールド名が判断されます。たとえ ば、field=error_code の場合、error_code=404 があるイベントが 404.form ファイルに して照合されます。 のデフォルト値は sourcetype で、kvform コマンドはデフォルトで、値を抽出するために SOURCETYPE.form ファイルを 索します。 field 基本的に .form ファイルは、フォームのすべての静的部分のテキストファイルです。また、transforms.conf にある タイプの正規表現に して、各所から名前付き参照が行われる場合もあります。.form ファイルの例を以下に示しま す。 Students Name: [[string:student_name]] Age: [[int:age]] Zip: [[int:zip]] 152 例 例 1:ファイルが存在する場合、「eventtype.form」から値を抽出します。 ... | kvform field=eventtype 関 連項目 extract、multikv、rex、xmlkv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、kvform コマンドの使用方 法に関する質問と回答をご覧ください。 loadjob 概要 前に完了したサーチジョブのイベントまたは結果を読み込みます。 構文 loadjob (<sid>|<savedsearch-opt>) [<result-event>] [<delegate>] [<artifact-offset>] [<ignore-running>] 必要な引数 sid 構文: <文字列> 明:成果物を読み込むジョブのサーチ ID。例: 1233886270.2 savedsearch 構文: savedsearch="<user-string>:<application-string>:<search-name-string>" 明:成果物を読み込む保存 みサーチの一意の ID。保存 みサーチは、トリプレット {user, application, savedsearch name} で一意に識別されます。例: savedsearch="admin:search:my saved search" オプション引数 result-event 構文: events=<bool> 明:ジョブのイベントまたは結果の読み込みを指定します。デフォルトは false (結果を読み込む) です。 delegate 構文: job_delegate=<string> 明:savedsearch を指定した場合、このオプションで特定のユーザーが開始したジョブを選 できます。デ フォルトはスケジューラーになります。 artifact-offset 構文: artifact_offset=<int> 明:複数の成果物が見つかった場合に、どれを読み込むのかを指定します。成果物は、開始時刻の降順に並 べられます (デフォルト:0)。デフォルトは 0 です。 ignore_running 構文: ignore_running=<bool> 明:引き続きサーチが実行中の、一致する成果物を無視するかどうかを指定します。デフォルトは真 (True) です。 明 読み込む成果物は、サーチジョブ ID またはスケジュール みサーチ名および現在のサーチの時間範 で判断されま す。savedsearch が指定されており、その範 内に複数の成果物が存在している場合は、最新の成果物が読み込ま れます。 153 例 例 1:管理者が保有する「search」アプリケーション内の、保存 みサーチ MySavedSearch の、最新のスケジュー ルされた実行結果を読み込みます。 | loadjob savedsearch="admin:search:MySavedSearch" 例 2:ID が 1233886270.2 のサーチジョブが生成したイベントを読み込みます。 | loadjob 1233886270.2 events=t 関 連項目 inputcsv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、loadjob コマンドの使用 方法に関する質問と回答をご覧ください。 localize 概要 サーチ結果が見つかった時間範 のリストを返します。 構文 localize [<maxpause>] [<timeafter>] <timebefore> 必要な引数 timebefore 構文: timebefore=<int>(s|m|h|d) 明:starttime から差し引く時間を指定します (時間領域を時間の後方向に 張)。デフォルトは 30s です。 オプション引数 maxpause 構文: maxpause=<int>(s|m|h|d) 明:連続する時間領域内の 2 つの連続するイベント間の最大時間 (指定値を含む) を指定します。デフォル トは 1m です。 timeafter 構文: maxpause=<int>(s|m|h|d) 明:endtime に追加する時間 (時間領域を時間の前方向に 張) を指定します。デフォルトは 30s です。 明 連続する時間イベント領域を生成します。これは、次のように定義されます:最高 maxpause で分かれている、 連続するイベントの期間。見つかった領域は「timeafter」および「timebefore」で 張できます。これらのオプショ ンを使用すると、領域内の最後/最初のイベントを後へ/前へ 張して、領域を 張することができます。領域は、サー チ結果と同 に、時間の降順に返されます (領域の時間は開始時刻)。localize で見つかった領域は、map コマンドに 渡されます。このコマンドは、各反復で異なる領域を使用します。また、localize は、(a) 範 内のイベント数、(b) 範 の期間 (秒)、(c) (範 内のイベント数) / (範 の期間) - 秒当たりのイベント数で定義される領域密度なども報告され ます。 例 例 1:前の結果の時間範 に して「failure」をサーチします。 ... | localize maxpause=5m | map search="search failure starttimeu=$starttime$ endtimeu=$endtime$" 例 2:「error」をサーチした後に localize を呼び出して、発生したエラー周 の良好な領域を探します。次に、それ 154 らを map コマンド内のサーチに渡します。各反復が特定の時間範 と連携して、見込みのあるトランザクションを 探します。 error | localize | map search="search starttimeu::$starttime$ endtimeu::$endtime$ |transaction uid,qid maxspan=1h" 関 連項目 map、transaction Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、localize コマンドの使用 方法に関する質問と回答をご覧ください。 localop 概要 リモートピア上での後続のコマンドの実行を防止します。 構文 localop 明 Splunk に後続のコマンド (このコマンドに続くすべてのコマンド) を、リモートピア上ではなくローカルに実行す るように指示します。localop コマンドは、後続のコマンドを mapreduce プロセスの reduce ステップの一部とな るように強制します。 例 例 1:この場合、iplocation コマンドがリモートピア上で実行されることはありません。単語 FOO および BAR に する初期サーチによる、リモートピアからのすべてのイベントがサーチヘッドに送信され、そこで iplocation コマ ンドが実行されます。 FOO BAR | localop | iplocation Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、localop コマンドの使用 方法に関する質問と回答をご覧ください。 lookup に定義したルックアップテーブルから、フィールドのルックアップを手動で実行する場合に lookup コマンドを使用します。詳細は、『ナレッジ管理マニュアル』の「外部データソースからのフィールドの ルックアップ」を参照してください。 transforms.conf 概要 明示的にフィールド値のルックアップを起動します。 構文 lookup [local=<bool>] [update=<bool>] <lookup-table-name> ( <lookup-field> [AS <local-field>] ) ( OUTPUT | OUTPUTNEW <lookup-destfield> [AS <local-destfield>] ) 必要な引数 155 <lookup-table-name> 構文: <文字列> 明: transforms.conf 内のスタンザ名を表しています。 このスタンザは、ルックアップテーブルファイルの 場所を示します。 オプション引数 local 構文: local=<bool> 明: local オプションに true を設定すると、ルックアップはリモートピア上ではなくローカルでのみ行われ ます。 update 構文: update=<bool> 明:サーチ実行中にディスク上でルックアップテーブルが更新された場合、リアルタイムサーチでは更新内 容が反映されますが、それ以外のサーチでは更新は反映されません。リアルタイムサーチでルックアップを 自動更新したい場合は、update=true を指定します (これにより暗 的に local=true となります)。デフォルト は偽 (false) です。 <local-destfield> 構文: <文字列> 明:ローカルイベント内のフィールドを参照します。デフォルトは、<lookup-destfield> の値となります。 <local-field> 構文: <文字列> 明:ローカルイベント内のフィールドを参照します。デフォルトは、<lookup-field> の値となります。 <lookup-destfield> 構文: <文字列> 明:ローカルイベントにコピーする、ルックアップテーブル内のフィールドを参照します。 <lookup-field> 構文: <文字列> 明:ローカルイベントと照合する、ルックアップテーブル内のフィールドを参照します。 明 フィールド値のルックアップを手動で実行するには、lookup コマンドを使用します。 OUTPUT 句が指定されていない場合、lookup として指定されていないルックアップテーブル内のすべてのフィー ルドが、出力フィールドとして使用されます。OUTPUT を指定した場合、出力ルックアップフィールドが既存の フィールドを上書きします。OUTPUTNEW を指定した場合、出力フィールドがすでに存在しているイベントへの ルックアップは実行されません。 例 例 1:transform.conf の「usertogroup」スタンザには、ルックアップテーブルが指定されています。このルック アップテーブルには、(最低) 2 つのフィールド「user」と「group」が含まれています。各イベントに して、テー ブル内のフィールド「local_user」の値をルックアップし、一致した任意の項目に して、ルックアップテーブル内 の group フィールドの値が、イベント内の user_group フィールドに書き込まれます。 ... | lookup usertogroup user as local_user OUTPUT group as user_group ルックアップサ ー チの最適化 レポートコマンドと同じパイプライン内で lookup コマンドを使用する場合は、レポートコマンドの後に 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 コマンドの結果のみを照合す れば良いので、処理が高速に行われます。 156 関 連項目 appendcols、inputlookup、outputlookup Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、lookup コマンドの使用方 法に関する質問と回答をご覧ください。 makecontinuous 概要 フィールドを X 軸連続にします (グラフ/時間グラフが開始)。 構文 makecontinuous [<field>] <bucketing-option>* 必要な引数 <bucketing-option> データタイプ: bins | span | start-end 明:離散化オプション。詳細は、「Bucketing のオプション」を参照してください。 オプション引数 <field> データタイプ: <field> 明:フィールド名を指定します。 Bucketing の オ プ シ ョ ン bins 構文: bins=<int> 明:離散化に使用するビンの最大数を設定します。 span 構文: <log-span> | <span-length> 明:時間または 数ベースの期間に基づく期間長を使って、各バケツのサイズを設定します。 <start-end> 構文: end=<num> | start=<num> 明:数値バケツの最小/最大範 を設定します。[start, end] の範 外のデータは破棄されます。 Log-span 構文 <log-span> 構文: [<num>]log[<num>] 明: 数ベースのスパンを設定します。最初の数値は係数です。2 番目の数値が底です。最初の数値を指定 する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなければな りません ( 密に 1 より大きい)。 span-length 構文 span-length 構文: <span>[<timescale>] 明:時間に基づいたスパン長です。 <span> 構文: <int> 明:各ビンのスパン。タイムスケールを使用する場合、これは時間範 として使用されます。使用しない場 合、これは絶 バケツ「length」になります。 157 <timescale> 構文: <sec> | <min> | <hr> | <day> | <month> | <subseconds> 明:タイムスケールの単位。 <秒> 構文: s | sec | secs | second | seconds 明:タイムスケール (秒)。 <min> 構文: m | min | mins | minute | minutes 明:タイムスケール (分)。 <hr> 構文: h | hr | hrs | hour | hours 明:タイムスケール (時間)。 <日> 構文: d | day | days 明:タイムスケール (日)。 <月> 構文: mon | month | months 明:タイムスケール (月)。 <subseconds> 構文: us | ms | cs | ds 明:マイクロ秒 (us)、ミリ秒(ms)、1/100 秒 (cs)、または 1/10 秒 (ds) のタイムスケール 明 例 例 1:10 分の期間で、「_time」を連続にします。 ... | makecontinuous _time span=10m 関 連項目 chart、timechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、makecontinuous コマン ドの使用方法に関する質問と回答をご覧ください。 makemv 概要 サーチ時に、指定フィールドを複数値フィールドに 更します。 構文 makemv [delim=<string>|tokenizer=<string>] [allowempty=<bool>] [setsv=<bool>] <field> 必要な引数 field 構文: <field> 明:フィールド名を指定します。 オプション引数 158 delim 構文: delim=<string> 明:各フィールド値を区切る 1 つまたは複数の文字を定義します。デフォルトは 1 つのスペース (" ") で す。 tokenizer 構文: tokenizer=<string> 明:正規表現トークナイザを使ってフィールド値を区切ります。 allowempty 構文: allowempty=<bool> 明:連続する区切り文字を 1 つの区切り文字として処理するかどうかを指定します。デフォルトは偽 (false) です。 setsv 構文: setsv=<bool> 明:setsv オプションは、単一値バージョンに して、元のフィールド値を保持するかどうかを指定します。 デフォルトは偽 (false) です。 明 指定フィールドを、単純な区切り文字 (複数文字を使用可能) または正規表現トークナイザを使って、複数値 フィールドとして処理します。 例 例 1:sendmail のサーチ結果に して、「senders」の値を複数の値に分離します。次に上位の値を表示します。 eventtype="sendmail" | makemv delim="," senders | top senders 例 2:「foo」の値を、複数の値に分離します。 ... | makemv delim=":" allowempty=t foo 関 連項目 mvcombine、mvexpand、nomv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、makemv コマンドの使用 方法に関する質問と回答をご覧ください。 map 概要 ループ演算子、各サーチ結果に してサーチを実行します。 構文 map (<searchoption>|<savedsplunkoption>) [maxsearches=int] 必要な引数 <savedsplunkoption> 構文: <文字列> 明: 保存 みサーチ名。デフォルトはありません。 <searchoption> 構文: [ <subsearch> ] | search="<string>" 明:マップするサーチ。サーチの引数には、実行するサブサーチ、または単に保存 みサーチ名を指定でき ます。引数には、メタ 数も使用できます。$_serial_id$、実行するサーチのマップ内の 1 をベースにしたシ リアル番号。例:[search starttimeu::$start$ endtimeu::$end$ source="$source$"]。デフォルトはあり 159 ません。 オプション引数 maxsearches 構文: maxsearches=<int> 明:実行する最大サーチ数。これ以上のサーチ結果がある場合、メッセージが生成されます。デフォルトは 10 です。 明 各入力に して (前のサーチの結果)、map コマンドは結果からのフィールド値を反復し、その値をサーチ引数内の $variable$ に代入します。その他の参考情報 『サーチマニュアル』の「サブサーチについて」を参照してください。 『サーチマニュアル』の「サーチコマンドの使用方法」を参照してください。 例 例 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 computername 10/12/12 8:31:35.00 AM Workstation$ computertime username 10/12/2012 08:25:42 userA usertime 10/12/2012 08:31:35 AM (この例を提供した Alacercogitatus さんに感謝の意を表明します。) 関 連項目 gentimes、search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、map コマンドの使用方法 に関する質問と回答をご覧ください。 metadata 160 概要 指定したインデックスまたは分散サーチピアから、ソース、ソースタイプ、またはホストのリストを返します。 構文 | metadata [type=<metadata-type>] [<index-specifier>] [<server-specifier>] オプション引数 type 構文: type= hosts | sources | sourcetypes 明:返すメタデータのタイプを指定します。 index-specifier 構文: index=<index_name> 明:結果を返すインデックスを指定します。 server-specifier 構文: splunk_server=<string> 明:結果を返す分散サーチピアを指定します。使用する場合、1 つの splunk_server のみを指定できます。 明 コマンドは、指定したインデックスまたは分散サーチピアに関するデータを返します。ホスト、ソー ス、ソースタイプの一覧、指定したメタデータの各地で最初、最後、最新のイベントなどの情報が返されます。特 定の期間 (例:過去 7 日間) のインデックスのスナップショットは提供されません。たとえば、以下のサーチを実 行すると: metadata | metadata type=hosts 以下のような結果が返されます。 ここで: は、インデクサーがこのホストからのイベントを初めて発見した時刻のタイムスタンプです。 は、インデクサーがこのホストからのイベントを最後に発見した時刻のタイムスタンプです。 recentTime は、このホストからのイベントをインデクサーが発見した最新の時刻の indextime です (前回の 更新時刻)。 totalcountは、このホストからのイベント数合計です。 typeは、指定された表示するメタデータのタイプです。このサーチは type=hosts を指定しているため、host 列も存在しています。 firstTime lastTime たいていの場合、データがライブストリーム配信されている時には、lastTime と recentTime は等しくなります。 ただし、履歴データの場合は、これらの値が異なる可能性があります。 例 例 1:「_internal」インデックス内のイベントの「host」の値を返します。 | metadata type=hosts index=_internal 例 2:サーバー foo の「_audit」インデックス内のイベントの、sourcetype の値を返します。 | metadata type=sourcetypes index=_audit splunk_server=foo 関 連項目 dbinspect Answers 161 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、metadata コマンドの使用 方法に関する質問と回答をご覧ください。 metasearch 概要 <logical-expression> 内の単語に基づいて、インデックスからイベントのメタデータを取得します。 構文 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> 構文: <文字列> 明:フィールド名。 <lit-value> 構文: <string>|<num> 明:フィールドの 密値またはリテラル値で、比較式内で用いられます。 <value> 構文: <lit-value>|<field> 明:比較式内で、フィールドのリテラル (数値または文字列) 値または他のフィールド名。 インデックス式 <search-modifier> 構文: <field-specifier>|<savedsplunk-specifier>|<tag-specifier> 時間オプション Splunk では、時間に基づくサーチを行うための、さまざまなオプションが用意されています。時間修飾子の一覧 については、「サーチの時間修飾子」を参照してください。 <timeformat> 構文: timeformat=<string> 明:starttime および endtime の期間の時間形式を設定します。デフォルトでは、タイムスタンプのフォー マットは timeformat=%m/%d/%Y:%H:%M:%S になります。 162 <time-modifier> 構文: earliest=<time_modifier> | latest=<time_modifier> 明:相 または絶 時間を使って、開始/終了時間を指定します。時間修飾子構文の詳細は、「サーチへの時間 修飾子の指定」を参照してください。 明 <logical-expression> 内の単語に基づいて、インデックスからイベントのメタデータを取得します。メタデータ フィールドには、source、sourcetype、host、_time、index、および splunk_server が含まれます 例 例 1:ホスト「webserver1」からの「404」を持つイベントのメタデータを返します 404 host="webserver1" 関 連項目 metadata、search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、metasearch コマンドの使 用方法に関する質問と回答をご覧ください。 multikv 概要 を テーブルで書式設定された (table-formatted) イベントからフィールド値 (field-values) を抽出します。 構文 multikv [conf=<stanza_name>] [<multikv-option>]* 必要な引数 <multikv-option> 構文: copyattrs=<bool> | fields <field-list> | filter <field-list> | forceheader=<int> | multitable=<bool> | noheader=<bool> | rmorig=<bool> 明:表形式イベントからフィールドを抽出するためのオプション。 オプション引数 conf 構文: conf=<stanza_name> 明:multikv.conf にフィールド抽出を定義した場合、サーチ内でこの引数を使ってスタンザを参照しま す。詳細は、『管理マニュアル』の「設定ファイルリファレンス」に記載されている multikv.conf の 明を参 照してください。 Multikv の オ プ シ ョ ン copyattrs 構文: copyattrs=<bool> 明:元のイベントから抽出したイベントに非メタデータ (non-metadata) 属性をコピーするかどうかを指定 します。デフォルトは真 (True) です。 fields 構文: fields <field-list> 明:抽出したイベントフィールドから、指定フィールドリストに存在しないフィールドをフィルタリングし ます。 filter 構文: filter <field-list> 163 明:指定した場合、テーブル行にリスト内のいずれかの単語が存在しないと、イベントには抽出されませ ん。 forceheader 構文: forceheader=<int> 明:特定の行番号 (1 ベース) をテーブルのヘッダーとして使用するように強制します。デフォルトでは、1 つのヘッダー行がサーチされます。 multitable 構文: multitable=<bool> 明:元のイベントの単一の single _raw 内に、複数のテーブルを入れることができるかどうかを指定しま す。(デフォルトは真 (True)) noheader 構文: noheader=<bool> 明:ヘッダーを持たないのテーブルを許可します。ヘッダーがない場合、フィールドには column1、 column2、... のような名前が使用されます。(デフォルトは偽 (False)) rmorig 構文: rmorig=<bool> 明:結果セットから元のイベントを削除するかどうかを指定します。(デフォルトは真 (True)) 明 表形式の情報を持つイベントからフィールドを抽出します (例:top、netstat、ps など)。各テーブル行に して、新 しいイベントが作成されます。フィールド名は、テーブルのタイトル (title) 行から取得されます。 例 例 1:「splunkd」を含む行があった場合に、COMMAND フィールドを抽出します。 ... | multikv fields COMMAND filter splunkd 例 2:pid および command フィールドを抽出します。 ... | multikv fields pid command 関 連項目 extract、kvform、rex、xmlkv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、multikv コマンドの使用方 法に関する質問と回答をご覧ください。 multisearch 概要 複数サーチを同時実行します。 構文 ... | multisearch <subsearch1> <subsearch2> <subsearch3> ... 必要な引数 <subsearch> 構文: 明:最低 2 つのストリーミングサーチ。 明 164 複数のストリーミングサーチを同時に実行します。最低 2 つのサブサーチを指定する必要があります。各サブサー チには、純粋なストリーミング操作のみを指定できます (例:search、eval、where、fields、rex...)。 例 例 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 概要 サーチ結果内で 1 つのフィールド値が異なっている複数のイベントを、複数値フィールドを持つ単一の結果にまと めます。 構文 mvcombine [delim=<string>] <field> 必要な引数 field 構文: <field> 明:複数値フィールド名。 オプション引数 delim 構文: delim=<string> 明:各値を区切る文字を指定します。デフォルトは 1 つのスペース (" ") です。 明 特定のフィールドを除けば同一の結果グループに して、当該フィールドが複数値フィールドとなるように単一の 結果にまとめます。 delim には、値の結合方法を指定します。デフォルトはスペース 1 文字です (「 」)。 例 例 1:「foo」の値を、区切り文字「:」で結合します。 ... | mvcombine delim=":" foo 例 2:IP アドレスの値を除いて同一の 3 件のイベントを考えてみましょう。 Nov 28 11:43:48 2010 host=datagen-host1 type=dhclient: bound to ip=209.202.23.154 message= ASCII renewal in 5807 seconds. Nov 28 11:43:49 2010 host=datagen-host1 type=dhclient: bound to ip=160.149.39.105 message= ASCII renewal in 5807 seconds. Nov 28 11:43:49 2010 host=datagen-host1 type=dhclient: bound to ip=199.223.167.243 message= ASCII renewal in 5807 seconds. 以下のサーチは、3 つの IP アドレスをカンマで区切った (ip="209.202.23.154, 160.149.39.105, 165 以下のサーチは、3 つの IP アドレスをカンマで区切った ( 199.223.167.243")、1 つのフィールドを返します。 ... | mvcombine delim="," ip 例 3:複数値イベントで: sourcetype="WMI:WinEventLog:Security" | fields EventCode, Category,RecordNumber | mvcombine delim="," RecordNumber | nomv RecordNumber 関 連項目 makemv、mvexpand、nomv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、mvcombine コマンドの使 用方法に関する質問と回答をご覧ください。 mvexpand 概要 複数値フィールドの値を、その各値を持つ個別のイベントにデプロイします。 構文 mvexpand <field> [limit=<int>] 必要な引数 field 構文: <field> 明:複数値フィールド名。 オプション引数 limit 構文: limit=<int> 明:各入力イベントで使用する、<field> の値数を指定します。デフォルトは 0 (無制限) です。 明 指定されたフィールドを持つ各結果に して、当該フィールドが複数値フィールドの場合、そのフィールドの各値 に する新たな結果を作成します。 例 例 1:複数値フィールド「foo」の各値に する新しいイベントを作成します。 ... | mvexpand foo 例 2:複数値フィールド「foo」の最初の 100 件の値に する新しいイベントを作成します。 ... | mvexpand foo limit=100 例 3: mvexpand コマンドは、1 つの複数値フィールドのみを処理できます。この例では、複数の複数値フィール ドを持つイベントを、各フィールドの値に する個別のイベントに 張する方法を 明していきます。たとえば、 sourcetype=data の以下のイベントを考えてみましょう。 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 の値から新しいフィールドを作成します。 166 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 新しいフィールドに して、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 コマンド を使ったこの例の別 バージョンもあります。) 関 連項目 makemv、mvcombine、nomv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、mvexpand コマンドの使 用方法に関する質問と回答をご覧ください。 nomv 概要 指定した複数値フィールドを、サーチ時に単一値フィールドに 更します。 構文 nomv <field> 必要な引数 field 構文: <field> 明:複数値フィールド名。 明 指定した複数値フィールドの値を、1 つの単一値に 換します (fields.conf 内の複数値フィールド設定に優先しま す)。 167 例 例 1:sendmail イベントに して、senders フィールドの値を単一値に結合し、次に上位 10 件の値を表示します。 eventtype="sendmail" | nomv senders | top senders 関 連項目 makemv、mvcombine、mvexpand、convert Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、nomv コマンドの使用方 法に関する質問と回答をご覧ください。 outlier 概要 範 外の数値を削除します。 構文 outlier <outlier-option>* [<field-list>] 必要な引数 <outlier-option> 構文: <action> | <param> | <type> | <uselower> 明:outlier のオプション。 オプション引数 <field-list> 構文: <field>, ... 明:カンマ区切り形式のフィールド名。 outlier の オ プ シ ョ ン <type> 構文: type=iqr 明:outlier 出の種類。現在利用できるオプションは IQR (四分位範 ) のみです。 <action> 構文: action=rm | remove | tf | transform 明:外れ値の処理を指定します。RM | REMOVE は、数値の外れ値を持つイベントを削除します。TF | TRANSFORM は、外れ値をその閾値に切り捨てて、値にプレフィックス「000」を追加します。デフォルト は tf です。 <param> 構文: param=<num> 明:外れ値 出の閾値を管理するパラメータ。type=IQR の場合、外れ値は param を乗じた四分位範 の範 外 の値として定義されます。デフォルトは 2.5 です。 <uselower> 構文: uselower=<bool> 明:中央値を下回る値の外れ値をサーチするかどうかを指定します。デフォルトは、false|f です。 明 選 フィールド内の範 外の数値を削除または切り捨てます。フィールドが指定されていない場合、outlier はすべて のフィールドの処理を試みます。 168 例 例 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 概要 サーチ結果を指定した 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) の場合、ファイルは作成 されず、すでに存在しているファイルは削除されます。デフォルトは偽 (false) です。 dispatch 構文: dispatch=<bool> 明:真 (True) を設定すると、$SPLUNK_HOME/var/run/splunk/dispatch/<job id>/ のジョブディレクトリに あるファイルを参照します。 filename 構文: <filename> 明:サーチ結果を書き込む csv ファイル名を指定します。このファイルは、$SPLUNK_HOME/var/run/splunk になければなりません。ファイル名を指定しない場合、各結果の内容を CSV の行として「_xml」フィール ドに書き込みます。それ以外の場合は、ファイルに書き込みます (ファイル名に 張子がない場合は、.csv が 追加されます)。 singlefile 構文: singlefile=<bool> 明:singlefile に真 (True) を設定しており、出力が複数のファイルにまたがる場合は、それを 1 つのファイ ルにまとめます。 usexml 構文: usexml=<bool> 明:ファイル名がない場合に、csv 出力を XML にエンコードするかどうかを示します。UI から outputcsv を起動する場合は、このオプションを使用しないでください。 169 例 例 1:サーチ結果を CSV ファイル「mysearch.csv」に出力します。 ... | outputcsv mysearch 関 連項目 inputcsv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、outputcsv コマンドの使 用方法に関する質問と回答をご覧ください。 outputlookup 概要 サーチ結果を、指定した静的ルックアップテーブルに書き込みます。 構文 outputlookup [append=<bool>] [create_empty=<bool>] [max=<int>] [createinapp=<bool>] (<filename> | <tablename>) 必要な引数 <filename> 構文: <文字列> 明:ルックアップファイル名 (.csv または .csv.gz で終了していなければなりません)。 <tablename> 構文: <文字列> 明: transforms.conf 内のスタンザに指定されたルックアップテーブル名。 オプション引数 append 構文: append=<bool> 明:「append」が真 (True) の場合、既存の CSV ファイルが存在する場合はそれに追加、ない場合は必要 に じてファイルを作成します。CSV ヘッダーを持つファイルがすでに存在している場合は、そのヘッダー が参照しているフィールドのみを生成します。.gz ファイルには追加できません。デフォルトは偽 (false) で す。 max 構文: max=<int> 明:出力する最大行数。 create_empty 構文: create_empty=<bool> 明:真 (True) を設定すると、結果がない 0 長のファイルを作成します。偽 (False) の場合、ファイルは作成 されず、すでに存在しているファイルは削除されます。デフォルトは真 (True) です。 createinapp 構文: createinapp=<bool> 明:偽 (False) を設定した場合、または現在のアプリケーションコンテキストが存在しない場合、システム のルックアップディレクトリ内にファイルが作成されます。 明 指定されたファイル名 (ファイル名の最後は .csv または .gz になる) またはテーブル名 (transforms.conf のスタンザ に定義) で、結果をルックアップテーブルに保存します。ルックアップファイルが存在しない場合は、現在のアプ リケーションのルックアップディレクトリ内にファイルが作成されます。ルックアップファイルがすでに存在して 170 いる場合は、そのファイルが outputlookup の結果で上書きされます。「createinapp」オプションに偽 (False) を 設定した場合、または現在のアプリケーションコンテキストが存在しない場合、システムのルックアップディレク トリ内にファイルが作成されます。 例 例 1:ルックアップテーブル「usertogroup」に書き込みます (transforms.conf に定義されている)。 | outputlookup usertogroup 例 2:ルックアップファイル「users.csv」に書き込みます ($SPLUNK_HOME/etc/system/lookups または $SPLUNK_HOME/etc/apps/*/lookups 下)。 | outputlookup users.csv 関 連項目 inputlookup、lookup、outputcsv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、outputlookup コマンドの 使用方法に関する質問と回答をご覧ください。 outputtext 概要 結果の raw テキスト (_raw) を _xml フィールドに出力します。 構文 outputtext [usexml=<bool>] オプション引数 usexml 構文: usexml=<bool> 明:usexml に真 (True) を設定した場合 (デフォルト)、_raw フィールドは xml でエスケープ処理されます。 明 結果の _raw フィールドを、_xml フィールドに再書き込みします。usexml に真 (True) を設定した場合 (デフォル ト)、_raw フィールドは xml でエスケープ処理されます。 例 例 1:現在のサーチの _raw フィールドを、_xml に出力します。 ... | outputtext 関 連項目 outputcsv Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、outputtext コマンドの使 用方法に関する質問と回答をご覧ください。 171 overlap 注意: overlap コマンドを使って、サマリーインデックスをフィル/バックフィルすることはお勧めできません。イ ンデックスをバックフィルする、またはサマリーインデックスのギャップを埋める (フィル) ためのスクリプト fill_summary_index.py が用意されています。詳細は、『ナレッジ管理マニュアル』を参照してください。 概要 サマリーインデックス内で、時間が重なる、または見逃したイベントをサーチします。 構文 overlap 明 サマリーインデックス内の時間が重複するイベントを探すか、または保存 みスケジュール みサーチがイベントを 見逃した可能性がある時間のギャップを探します。 ギャップを見つけたら、その期間に してサーチを実行し、結果のサマリーインデックスを作成してください (「 | collect」を使用)。 重複するイベントが見つかった場合は、サーチ言語を使ってサマリーインデックスから重複を手動削除して ください。 コマンドは、外部 python スクリプトを起動します (etc/searchscripts/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 などの結果が含まれていなければなりません。 例 例 1:「summary」内の重複イベントを探します。 index=summary | overlap 関 連項目 collect、sistats、sitop、sirare、sichart、sitimechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、overlap コマンドの使用 方法に関する質問と回答をご覧ください。 predict 概要 フィールドの将来値を予測します。 構文 predict <variable_to_predict> [AS <newfield_name>] [<predict_option>] 必要な引数 <variable_to_predict> 構文: <field> 172 明:予測する 数のフィールド名。 オプション引数 <newfield> 構文: <文字列> 明:<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 明:適用する予測アルゴリズム名を指定します。LL (ローカルレベル)、LLP (シーズンに合わせたローカル レベル)、LLT (ローカルレベル傾向)、または LLB (二 量ローカルレベル) を指定できます。各アルゴリズムに は、期待する最低データポイント数があります。詳細は、後述する「アルゴリズムのオプション」を参照し てください。 correlate 構文: correlate=<field> 明:二 量モデルに して、相関するフィールドを示します。 future_timespan 構文: future_timespan=<number> 明:将来に向けた予測の長さ。正の数値でなければなりません。 holdback 構文: holdback=<number> 明:モデルの構築に、最後の <number> 件のデータポイントを使用しないことを示します。一般的には、予 測値と実際のデータを比較するために用いられます。 lowerXX 構文: lower<int>=<field> 明: 下位 <int> パーセントの信頼区間に するフィールド名を指定します。<int> は、0 以上 100 未 になりま す。デフォルトは lower95 です。 period 構文: period=<number> 明: algorithm=LLP の場合に、時系列データのシーズン期間を指定します。指定しない場合、期間が自動算 出されます。アルゴリズムが LLP 以外の場合は無視されます。 upperYY 構文: upper<int>=<field> 明: 上位 <int> パーセントの信頼区間に するフィールド名を指定します。<int> は、0 以上 100 未 になりま す。デフォルトは upper95 です。 アルゴリズムのオプション アルゴリズム名は LL、LLP、LLT、および LLB です。最初の 3 つは一 量時系列を、4 番目は二 量時系列を処理し ます。上記の各アルゴリズムには、期待する最低データポイント数があります。十分に有効なデータポイントが提 供されない場合は、エラーメッセージが表示されます。たとえば、フィールド自体に十分な数のデータポイントが ある場合もありますが、ホールドバックが大きいと有効なデータポイント数が足りないことがあります。 アルゴリズム のオプション アルゴリズム名 明 LL ローカルレベル これは一 量モデルで、傾向もシーズンもありません。最低 2 つのデータポ イントを期待しています。 LLP シーズンに合わせ たローカルレベル シーズンを持つ一 量モデル。時系列の周期性は自動的に算出されます。周 期に して最低 2 つのデータポイントを期待しています。 LLT ローカルレベル傾 向 これは一 量モデルで、傾向を考慮しますが、シーズンは考慮しません。最 低 3 つのデータポイントを期待しています。 LLB 二 量ローカルレベ これは二 量モデルで、傾向もシーズンもありません。最低 2 つのデータポ 173 LLB ル イントを期待しています。 例 例 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 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、predict コマンドの使用方 法に関する質問と回答をご覧ください。 rangemap rangemap コマンドにより、詳細名を使用して数値フィールドの値範 を分類することができます。 概要 range フィールドに、一致する範 名を設定します。 構文 rangemap field=<string> (<attribute_name>=<integer_range>)...[default=<string>] 必要な引数 attribute_name 構文: <文字列> 明:指定された数値範 の名前または属性。 field 構文: field=<string> 明:入力フィールド名。このフィールドは数値でなければなりません。 174 <integer_range> 構文: <start>-<end> 明:attribute_name パラメータの属性となる範 の、開始整数値と終了整数値を定義します。負の値を指定 することができます。例:Dislike=-5--1, DontCare=0-0, Like=1-5。 オプション引数 default 構文: default=<string> 明:入力フィールドが範 と一致しない場合、これを使ってデフォルト値を定義します。値を定義しない場 合、デフォルトは「None」 (なし) です。 明 フィールドに、入力 field の値が範 内の任意の attribute_name の名前を設定します。一致する範 がない場 合、range には default の値が設定されます。 range 設定する範 は重複しても構いません。重複させた場合、 するすべての値がイベントに表示されます。たとえば、 low=1-10, elevated=5-15 で入力フィールドの値が 10 の場合は、range=low elevated になります。 例 例 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 単 一値パネルでの rangemap の使用 単一値ダッシュボードパネルで rangemap の値を使用するように設定することができます。たとえば、Splunk には 「低」、「上昇」、「重大」の色を定義する CSS が用意されています。CSS をカスタマイズして、これらの値に 別の色を適用することができます。また、range の値と色を関連付けるためには、ビューの XML を編集する必要 があります。以下の手順に従ってください。 1. [管理] >> [ユーザーインターフェイス] >> [ビュー] に移動して、編集するビューを選 します。 2. rangemap サーチを使用する単一値パネルに して、<title /> タグの下に以下の行を追加します。 <option name="classField">range</option> たとえば、「Example」ビューがあり、サーチ名が「Count of events」の場合、XML は以下のようになります。 <?xml version='1.0' encoding='utf-8'?> <dashboard> <label>Example</label> <row> <single> <searchName>Count of events</searchName> <title>Count of events</title> <option name="classField">range</option> </single> </row> </dashboard> 関 連項目 eval Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、rangemap コマンドの使 用方法に関する質問と回答をご覧ください。 175 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=<bool> 明:返す組数を指定します。0 を指定すると、すべての値が返されます。 percentfield 構文: percentfield=<string> 明:パーセントの値を書き込む新規フィールド名。デフォルトは「percent」です。 showcount 構文: showcount=<bool> 明:count フィールド (countfield オプションを参照)およびその組のカウントを作成するかどうかを指定し ます。デフォルトは真 (True) です。 showpercent 構文: showpercent=<bool> 明:percent フィールド (percentfield オプションを参照) およびその組の相 普及度を作成するかどうかを指 定します。デフォルトは真 (True) です。 明 フィールドリスト内のすべてのフィールドの値の組の中で、一番頻度が少ない組を探します。オプションの byclause 句を指定した場合、group-by フィールドの各一意の値の組の中で、希な組を返します。 例 例 1:url フィールドの、一番頻度が少ない値を表示します。 ... | rare url 例 2:「host」に して、一番少ない「user」値を探します。 ... | rare user by host 176 関 連項目 top、stats、sirare Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、rare コマンドの使用方法 に関する質問と回答をご覧ください。 regex 概要 指定した正規表現に一致する結果を削除または保持します。 構文 regex <field>=<regex-expression> | <field>!=<regex-expression> | <regex-expression> 必要な引数 <regex-expression> 構文: "<string>" 明:PCRE ライブラリがサポートする、Perl 互換の正規表現。引用符が必要です。 オプション引数 <field> 構文: <field> 明:正規表現に して値を照合するフィールド名を指定します。フィールドが指定されていない場合は、 「_raw」に して照合されます。 明 regex コマンドは、指定した正規表現に一致しない結果を削除します。正規表現を指定して、それに一致する結果 (field=regex-expression) または一致しない結果 (field!=regex-expression) のみを保持できます。 注意:正規表現の引数に OR (「|」) コマンドを使用する場合は、正規表現全体を引用符で む必要があります (例: regex "expression")。 例 例 1:_raw フィールドに、ルーティング不可能クラス A (10.0.0.0/8) IP アドレスが含まれているサーチ結果のみを 保持します。 ... | regex _raw="(?=!\d)10.\d{1,3}\.\d{1,3}\.\d{1,3}(?!\d)" 例 3:使用例 ... | regex _raw="complicated|regex(?=expression)" 関 連項目 rex、search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、regex コマンドの使用方 法に関する質問と回答をご覧ください。 relevancy 177 概要 イベントとクエリーの一致度を計算します。 構文 relevancy 明 イベントの _raw フィールドとサーチ (search) のキーワードの一致度に基づいて、関連性 (relevancy) フィールド を計算します。デフォルトの時間順ではなく、一致度の高いイベント/ドキュメントを取得する場合に役立ちま す。イベントに希少なサーチキーワードがある、頻度が高い、単語が少ない、などの場合にイベントの関連性スコ アが高くなります。たとえば、「disk error」をサーチした場合、「disk」 (希少単語) が多数、そして「error」が 1 つ存在している短いイベント/ドキュメントの方が、「disk」が 1 つ、「error」が多数存在しているとても大きな イベントよりも関連性が高くなります。 例 例 1:サーチの関連性を計算して、結果を降順に並べ替えます。 disk error | relevancy | sort -relevancy 関 連項目 abstract、highlight、sort Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、relevancy コマンドの使 用方法に関する質問と回答をご覧ください。 reltime 概要 相 時間フィールド「reltime」を作成し、「now」と「_time」の差異の値を、ユーザーが理解できる形で reltime フィールドに設定します。 構文 reltime 明 「now」と「_time」の差異の値を、ユーザーが理解できる形で reltime フィールドに設定します。ユーザーが理解 できる形の値の例としては、「5 日前」、「1 分前」、「2 年前」などが げられます。 例 例 1:reltime フィールドを追加します。 ... | reltime 関 連項目 convert Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、reltime コマンドの使用方 178 法に関する質問と回答をご覧ください。 rename コマンドを使ってフィールド名を 更します。このコマンドは、「pid」の代わりに「製品 ID」を使用する など、より分かりやすい名前をフィールドに指定する場合に役立ちます。複数のフィールド名を 更する場合は、 ワイルドカードを使用できます。 rename 概要 指定フィールドまたは複数のフィールドの名前を 更します。 構文 rename wc-field AS wc-field 必要な引数 wc-field 構文: <文字列> 明:フィールド名と 更する名前。ワイルドカードを使用できます。 明 フィールド名をフレーズに 更するには、引用符を使用します。 ... | rename SESSIONID AS sessionID 複数のフィールド名を 更するには、ワイルドカードを使用します。 ... | rename *ip AS IPaddress ソースフィールドと宛先フィールドの両方に同じ数のワイルドカードを持つワイルドカード式が指定されている場 合、ワイルドカード部の名前の 更処理は宛先ワイルドカード式に持ち越されます。以下の「例 2」を参照してくだ さい。 注意:1 つのフィールドを複数の名前に 更することはできません。たとえば、フィールド A を 一度に「A as B, A as C」と指定することはできません。 ... | stats first(host) AS site, first(host) AS report 注意:このコマンドを使って複数のフィールドを 1 つのフィールドに結合するには問題があります。たとえ ば、product_id または pid フィールドを持つイベントがある場合、... | rename pid AS product_id は pid の値 を product_id に結合しません。イベントに する pid が存在しない場合、product_id は NULL 値で上書きされま す。代わりに eval コマンドと coalesce() 関数を参照してください。 例 例 1:_ip フィールドの名前を「IPAddress」に 更します。 ... | rename _ip as IPAddress 例 2:「foo」で始まるフィールドの名前を「bar」で始まる名前に 更します。 ... | rename foo* as bar* 例 3:count フィールドの名前を 更します。 ... | rename count as "CountofEvents" 関 連項目 fields、table Answers 179 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、rename コマンドの使用 方法に関する質問と回答をご覧ください。 replace 概要 指定フィールドの値を、指定値に置換します。 構文 replace (<wc-str> with <wc-str>)+ [in <field-list>] 必要な引数 wc-string 構文: <文字列> 明:1 つまたは複数のフィールド値とその置換値を指定します。ワイルドカードを使用することができま す。 オプション引数 field-list 構文: <文字列> 明:フィールド値の置換を行う、フィールド名のカンマ区切りリストを指定します。 明 指定フィールドで、最初の文字列単体を、2 番目の文字列で置換します (何も指定しない場合はすべてのフィール ド)。後でワイルドカードを使用しない置換を指定した場合、それ以前に指定した置換よりも優先されます。ワイ ルドカード置換の場合、完全一致が部分一致に優先します。優先関係を間違えないように、置換を 2 つの個別の呼 び出しに分離することをお勧めします。ワイルドカード置換を使用する場合、結果には同数のワイルドカードが存 在するか、またはワイルドカードが 0 でなければなりません。ワイルドカード (*) を利用すれば、置換する多数の 値を指定できます。 例 例 1:「localhost」で終わるホスト (host) 値を「localhost」に 更します。 ... | replace *localhost with localhost in host 例 2:使用例: ... | replace "* localhost" with "localhost *" in host 例 3:2 つのフィールドの値を 更します。 ... | replace aug with August in start_month end_month 例 5:IP アドレスをより詳細な名前に 更します。 ... | replace 127.0.0.1 with localhost in host 例 6:フィールドの値をより詳細な名前に置換します。 ... | replace 0 with Critical, 1 with Error in msg_level 例 7: エラーメッセージをサーチして、空の文字列を空白文字に置換します。注意:この例は、実際の空文字列 (値がない) がない限り機能しません。 "Error exporting to XYZ :" | rex "Error exporting to XYZ:(?.*)" | replace "" with " " in errmsg 関 連項目 180 fillnull、rename Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、replace コマンドの使用 方法に関する質問と回答をご覧ください。 rest 概要 REST エンドポイントにアクセスして、返されたエンティティをサーチ結果として表示します。 構文 rest <rest-uri> [count=<int>] [splunk_server=<string>] [timeout=<int>] (<get-arg-name>=<get-arg-value>)... 必要な引数 rest-uri 構文: <uri> 明:REST エンドポイントへの URI get-arg-name 構文: <文字列> 明: REST 引数名。 get-arg-value 構文: <文字列> 明: REST 引数値。 オプション引数 count 構文: count=<int> 明:返される結果数を制限します。デフォルトは 0 (無制限) です。 splunk_server 構文: splunk_server=<string> 明:結果を 1 台の特定のサーバーに制限します。サーチヘッドを参照するには、「local」を使用します。 timeout 構文: timeout=<int> 明:REST エンドポイントの 答待機時の、タイムアウト (秒) を指定します。デフォルトは 60 秒です。 例 例 1:保存 みサーチジョブにアクセスします。 | rest /services/search/jobs count=0 splunk_server=local | search isSaved=1 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、rest コマンドの使用方法 に関する質問と回答をご覧ください。 return 概要 サブサーチから値を返します。 181 構文 return [<count>] [<alias>=<field>] [<field>] [$<field>] 引数 <count> 構文: <int> 明:行数を指定します。デフォルトは 1 で、この場合結果の最初の行がコマンドに渡されます。 <alias> 構文: <alias>=<field> 明:返すフィールドのエイリアスと値を指定します。 <field> 構文: <field> 明:返すフィールドを指定します。 <$field> 構文: <$field> 明:返すフィールド値を指定します。 明 コマンドは、サブサーチからの値を渡すことを目的にしています。到着したイベントを、1 つのイベント、 1 つの属性「search」で置換します。パフォーマンスを向上するために、return コマンドは到着する結果を head で、そして結果フィールドを fields で自動的に制限します。 return このコマンドでは、フィールド=値の「return source'」、エイリアス=値の「return ip=srcip」、および値の 「return $srcip」の簡単な出力も利用できます。 コマンドのデフォルトでは、渡された結果の最初の行のみを入力として使用します。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 たいていの場合、サブサーチコマンドの最後に return コマンドを使用すると、head、fields、rename、format、 および dedup が不要になります。 例 例 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 182 概要 結果の並び順を逆にします。注意:reverse コマンドは、サーチにより返されるイベントには影響しません。表示 順序にのみ影響を与えます。CLI の場合、任意のデフォルト設定または明示的な maxout 設定が含まれます。 構文 reverse 例 例 1:結果セットの順序を逆にします。 ... | reverse 関 連項目 head、sort、tail Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、reverse コマンドの使用 方法に関する質問と回答をご覧ください。 rex 概要 「groups」と言う名前の Perl 正規表現を指定し、サーチ時にフィールドを抽出します。 構文 rex [field=<field>] (<regex-expression> [max_match=<int>] | mode=sed <sed-expression>) 必要な引数 field 構文: field=<field> 明:情報を抽出するフィールド。デフォルトは _raw です。 regex-expression 構文: "<string>" 明:PCRE ライブラリがサポートする、Perl 互換の正規表現。引用符が必要です。 sed-expression 構文: "<string>" 明: UNIX sed 構文を使って、文字列を置換または文字を代入します。詳細は、『Getting Data In manual』 の「Anonymize data」を参照してください。引用符が必要です。 オプション引数 max_match 構文: max_match=<int> 明:正規表現と照合する回数を指定します。1 より大きな値を指定した場合、結果となるフィールドは複数 値フィールドになります。デフォルトは 1 です。0 を指定すると、無制限になります。 mode 構文: mode=sed 明:sed 式を使用していることを示します。 明 183 フィールドの値を unanchored regex と照合し、「groups」 と言う名前の Perl 正規表現を する名前のフィールド に抽出します。mode=sed の場合、選ばれたフィールド (フィールドが指定されていない場合は _raw)の値に sed の式が適用されます。フィールドが指定されていない場合、正規表現に _raw フィールドを適用すると、パフォー マンスに影響する可能性があります。 例 例 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" 関 連項目 extract、kvform、multikv、regex、spath、xmlkv rtorder 概要 リアルタイムサーチからイベントをバッファに格納して、可能な時にそれらを時間の昇順に生成します 構文 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]スタンザの max_result_rows 設定になります。 明 rtorder コマンドは、入力イベントを取得してバッファに時間の昇順に格納し、イベントのタイムスタンプの時間 から、buffer_span で示される期間以上 過した場合にのみ、格納されている順序でバッファからイベントを送信す る、ストリーミングイベントバッファを作成します。 バッファの最大サイズを超えた場合にも、バッファからイベントが生成されます。 すでに送信されたイベントよりも前の時刻のイベントを入力として受信した場合、この順序違いのイベントは即座 に送信されます (discard オプションに真 (True) が設定されている場合を除く))。discard に真 (True) を設定した場 合、順序違いイベントは常に破棄されるため、時間の昇順での出力が 格に保証されます。 例 184 例 1:過去 5 分間のイベントをバッファに保管し、5 分以上 過したらそれを時間の昇順に送信します。新たに受信 したイベントが 5 分以上前の時刻を持つ場合、その時刻以降のイベントをすでに送信しているならば、当該イベン トを破棄します。 ... | rtorder discard=t buffer_span=5m 関 連項目 sort Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、rtorder コマンドの使用方 法に関する質問と回答をご覧ください。 run script を参照してください。 savedsearch 概要 保存 みサーチのサーチ結果を返します。 構文 savedsearch <savedsearch name> [<savedsearch-opt>]* 必要な引数 savedsearch name 構文: <文字列> 明:実行する保存 みサーチの名前。 savedsearch-opt 構文: <macro>|<replacementt> 明: savedsearch オプションを使って、代入なしまたはマクロの置換に使用するキー/値のペアを指定する ことができます。 Savedsearch の オ プ シ ョ ン macro 構文: nosubstitution=<bool> 明:真 (True) の場合、マクロの置換は行われません。デフォルトは偽 (false) です。 replacement 構文: <field>=<string> 明:マクロ置換に使用するキーと値のペア。 明 保存 みサーチ (ディスクにキャッシュされている場合もある) を実行します。また、マクロ置換を実行します。 例 例 1:保存 みサーチ「mysecurityquery」を実行します。 | savedsearch mysecurityquery 185 関 連項目 search Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、savedsearch コマンドの 使用方法に関する質問と回答をご覧ください。 script 概要 呼び出しを外部 Perl または Python プログラムにします。 構文 script (perl|python) <script-name> [<script-arg>]* [maxinputs=<int>] 必要な引数 script-name 構文: <文字列> 明:実行するスクリプト名からパスとファイル 張子を除いたもの。 オプション引数 maxinputs 構文: maxinputs=<int> 明:スクリプトに渡す上位の結果数を指定します。デフォルトは 100 です。 script-arg 構文: <文字列> 明:スクリプトに渡す 1 つまたは複数の引数。複数の引数を渡す場合は、それぞれをスペースで区切って ください。 明 サーチ結果を 更または生成する、外部 python または perl プログラムを呼び出します。スクリプトは splunk_home/etc/searchscripts 内に存在していなければなりません。また、管理者 限を持つユーザーのみが、その スクリプトを実行できます。script がカスタムサーチコマンドの場合、$SPLUNK_HOME/etc/apps/<app_name>/bin/ に配置する必要があります。スクリプトを起動するには: python の場合、splunk_home/bin/python を使用します。 Perl の場合、/usr/bin/perl を使用します。 例 例 1:Python スクリプト「myscript」に引数 myarg1 および myarg2 を指定して実行し、結果をメールで送信しま す。 ... | script python myscript myarg1 myarg2 | sendemail [email protected] Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、script コマンドの使用方 法に関する質問と回答をご覧ください。 scrub 概要 186 特段に指定されていない限り、$SPLUNK_HOME/etc/anonymizer にある辞書および設定ファイルを使用して、サーチ 結果を匿名化します。 構文 scrub [public-terms=<filename>] [private-terms=<filename>] [name-terms=<filename>] [dictionary=<filename>] [timeconfig=<filename>] オプション引数 public-terms 構文: public-terms=<filename> 明:匿名化する公開用語を含むファイル名を指定します。 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 コマンドが仮定されています (パイ プラインの先頭)。パイプラインの先頭以外で使用する場合、前のコマンドの結果をフィルタリングするために用 いられます。 イベントを取得したら、それにコマンドを適用して 換、フィルタリング、レポート作成などの操作を行えます。 取得したイベントにコマンドを適用するには、垂直バー「|」またはパイプ記号を使用します: 概要 187 インデックスからイベントを取得、またはパイプライン内の前のコマンドの結果をフィルタリングします。 構文 search <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>)* 明:サーチの開始時刻 (starttime) と終了時刻 (endtime) のフォーマットを指定します。 比較式 <cmp> 構文: = | != | < | <= | > | >= 明:比較演算子。フィールド/値のペアをサーチする際に、比較式を使用できます。「=」および「!=」を 使った比較式は、すべてのフィールド/値のペアに利用できます。< > <= >= を使った比較式は、数値を持つ フィールドに してのみ使用できます。 <field> 構文: <文字列> 明:フィールド名。 <lit-value> 構文: <string>|<num> 明:フィールドのリテラル値。比較式に用いられます。 <value> 構文: <lit-value>|<field> 明:比較式内で、フィールドのリテラル (数値または文字列) 値または他のフィールド名。 インデックス式 <文字列> 構文: "<string>" 明:照合するキーワードまたは引用符で んだフレーズを指定します。文字列や引用符で まれた文字列 (ま たはサーチ修飾子以外の任意の語句) をサーチする場合、Splunk は _raw フィールドと照合して、一致するイ ベントや結果を探します。 <search-modifier> 構文: <sourcetype-specifier>|<host-specifier>|<source-specifier>|<savedsplunk-specifier>|<eventtypespecifier>|<tag-specifier> 明:指定したフィールドまたはフィールドタグからイベントをサーチします。たとえば、ホスト、ソース、 ソースタイプなどを組み合わせたサーチ、保存 みサーチ、イベントタイプを使ったサーチなどを行えます。 </code>tag=<field>::<string></code> の形式で、フィールドタグをサーチすることもできます。 デフォルトのフィールドを使ったサーチの詳細は、『ナレッジ管理マニュアル』を参照してください。 タグとフィールドのエイリアスを使ったサーチの詳細は、『ナレッジ管理マニュアル』を参照してくださ い。 時間オプション 188 Splunk では、時間に基づくサーチを行うための、さまざまなオプションが用意されています。時間修飾子の一覧 については、「サーチの時間修飾子」を参照してください。 <timeformat> 構文: timeformat=<string> 明:starttime および endtime の期間の時間形式を設定します。デフォルトでは、タイムスタンプのフォー マットは timeformat=%m/%d/%Y:%H:%M:%S になります。 <time-modifier> 構文: starttime=<string> | endtime=<string> | earliest=<time_modifier> | latest=<time_modifier> 明:相 または絶 時間を使って、開始/終了時間を指定します。 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」とし てコマンドに渡されます。 189 TERM() を 使 っ た サ ー チ TERM() ディレクティブを使って、括弧内に指定した任意の項目をインデックス内の 1 つの用語としてサーチする ことができます。TERM は、文字列にピリオドやカンマなどのマイナー区切り文字が含まれており、それがス ペースやカンマなどのメジャー区切り文字で区切られているような場合に特に役立ちます。実際に TERM は、メ ジャー区切り文字で区切られている文字列には機能しません。 CASE() を 使 っ た サ ー チ CASE() ディレクティブを使って、大文字と小文字を区別した、用語やフィールド値のサーチを行えます。 例 コマンドの使用例を以下に示します。これはほんの一例に過ぎません。Splunk チュートリアルの「サーチ の開始」には、さまざまな例が記載されています。 search 例 1:この例では、キー/値のペアを照合して、特定のソース IP (src) と宛先 IP (dst) の値をサーチしています。 src="10.9.165.*" OR dst="10.9.165.8" 例 2:この例では、論理演算子と比較演算子を使って、キー/値のペアを照合しています。「localhost」以外のホス トの、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 | transactions clientip startswith="login" endswith="logout" | search eventcount>3 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、search コマンドの使用方 法に関する質問と回答をご覧ください。 searchtxn 概要 指定したサーチ制約内のトランザクションイベントを 索します。 構文 searchtxn <transaction-name> [max_terms=<int>] [use_disjunct=<bool>] [eventsonly=<bool>] <search-string> 必要な引数 <transaction-name> 構文: <transactiontype> 明:transactiontypes.conf に定義されている transactiontype スタンザ名。 <search-string> 構文: <文字列> 明:トランザクションイベント内をサーチする文字列。 オプション引数 eventsonly 構文: eventsonly=<bool> 190 明:真 (True) の場合、関連するイベントのみを取得しますが、「| transaction」コマンドは実行しません。 デフォルトは偽 (false) です。 max_terms 構文: maxterms=<int> 明:1 1000 の整数で、すべてのフィールドが使用できる一意のフィールド値の数を指定します。小さな値 を使用するとサーチが高速化し、より最近の値が取得されます。デフォルトは 1000 です。 use_disjunct 構文: use_disjunct=<bool> 明:初期サーチ時にサーチ文字列 (SEARCH-STRING) 内の各単語間に OR を仮定するかどうかを示しま す。デフォルトは真 (True) です。 明 トランザクションタイプ transaction-name を、search-string の初期イベント制約により発見されたイベントと 照合して、一致するイベントを取得します。 たとえば、「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' 例 例 1:David Smith から root へのすべての電子メールトランザクションを探します | searchtxn email to=root from="David Smith" 関 連項目 transaction Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、searchtxn コマンドの使 用方法に関する質問と回答をご覧ください。 selfjoin 概要 結果を自身と結合します。 構文 selfjoin [<selfjoin-options>]* <field-list> 必要な引数 <field-list> 構文: <field>... 明:結合するフィールドまたはフィールドのリストを指定します。 <selfjoin-options> 構文: overwrite=<bool> | max=<int> | keepsingle=<bool> 明:selfjoin コマンドのオプション。3 つのオプションを組み合わせて使用できます。 Selfjoin の オ プ シ ョ ン 191 keepsingle 構文: keepsingle=<bool> 明:結合フィールドに一意の値を持つ結果 (結合する他の結果が存在しない) を保持するかどうかを指定し ます。デフォルトは偽 (false) です。 max 構文: max=<int> 明:各主結果が結合できる「その他の」結果の最大数を示します。0 の場合、制限はありません。デフォル トは 1 です。 overwrite 構文: overwrite=<bool> 明:「その他の」結果からのフィールドを、結合の基盤として使用した結果のフィールドで上書きするかど うかを示します。デフォルトは真 (True) です。 明 指定されたフィールドまたはフィールドのリストに基づいて、結果を自身と結合します。selfjoin のオプション overwrite、max、および keepsingle は、selfjoin の結果を制御します。 例 例 1:結果の「id」フィールドを自身と結合します。 ... | selfjoin id 関 連項目 join Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、selfjoin コマンドの使用方 法に関する質問と回答をご覧ください。 set 概要 サブサーチで set 操作を実行します。 構文 set (union|diff|intersect) subsearch subsearch 必要な引数 subsearch 構文: <文字列> 明:サブサーチを指定します。サブサーチの構文の詳細は、『サーチマニュアル』の「サブサーチについ て」を参照してください。 明 2 つのサブサーチを実行し、次に 2 つのサーチ結果に して、指定された set 操作を実行します。 union 操作の結果は、どちらかのサブサーチの結果から得られたイベントです。 diff 操作の結果は、両方のサブサーチに共通ではない結果から得られたイベントです。 intersect 操作の結果は、両方のサブサーチに共通の結果です。 重要:set コマンドは、1 万件未 の結果に して使用できます。 例 192 例 1:「URL」の値に文字列「404」または「303」が含まれる値を返します (両方を含む値は返されません)。 | 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 概要 すべての結果のフィールド値を共通値に設定します。 構文 setfields <setfields-arg>, ... 必要な引数 <setfields-arg> 構文: string="<string>" 明:引用符で値を んだキーと値のペア。標準のキークリーニングが実行されます。英数字以外の文字はす べて「_」に置換され、先頭の「_」は削除されます。 明 特定フィールドに、結果セット内の各イベントの指定値を設定します。複数の定義はカンマで区切ります。フィー ルドがない場合は追加され、存在しているフィールドは上書きされます。 フィールド値を 更または定義する必要がある場合は、より汎用目的の eval コマンドを使用することができます。 例 1 の eval 式を使ったフィールド値の設定方法を参照してください。 例 例 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 193 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、setfields コマンドの使用 方法に関する質問と回答をご覧ください。 sendemail 概要 サーチ結果を指定したメールアドレスに送信します。 構文 sendemail to=<email_list> [from=<email_list>] [cc=<email_list>] [bcc=<email_list>] [format= (html|raw|text|csv)] [inline= (true|false)] [sendresults=(true|false)] [sendpdf=(true|false)] [priority= (highest|high|normal|low|lowest)] [server=<string>] [width_sort_columns=(true|false)] [graceful=(true|false)] [sendresults=<bool>] [sendpdf=<bool>] 必要な引数 構文: to=<email_list> 明:サーチ結果の送信先メールアドレスのリスト。 オプション引数 bcc 構文: bcc=<email_list> 明:非表示の CC 行。有効なメールアドレスをカンマで区切って引用符で んで指定します。 cc 構文: cc=<email_list> 明:CC 行。有効なメールアドレスをカンマで区切って引用符で んで指定します。 format 構文: format= csv | html | raw |text 明:メールのコンテンツのフォーマット方法を指定します。デフォルトは HTML です。 開始 構文: from=<email_list> 明:メールアドレスの差出人行。デフォルトは、「splunk@<ホスト名>」になります。 インライン 構文: inline= true | false 明:結果をメッセージ本文に記載するか、または添付ファイルとして送信するかを指定します。デフォルト は真 (True) です。 graceful 構文: graceful= true | false 明:真 (True) を設定すると、メールの送信に失敗した場合にエラーは表示されず、sendemail が指定され ていないものとして、そのままパイプラインの処理が続行されます。 priority 構文: priority=highest | high | normal | low | lowest 明:メールクライアントに表示される、メールの優先度を設定します。最低は Lowest または 5、低は low または 4、高は high または 2、最高は highest または 1 で、デフォルトは標準の normal または 3 になりま す。 sendpdf 構文: sendpdf=true | false 明:結果を PDF 形式の添付ファイルで送信するかどうかを示します。Splunk の統合 PDF 生成機能の使用 方法の詳細は、『Installation Manual』の「Upgrade PDF printing for Splunk Web」を参照してください。 sendresults 構文: sendresults=true | false 明:結果をメールに含めるかどうかを指定します。デフォルトは偽 (false) です。 server 構文: server=<string> 明:ローカルの SMTP サーバーではない場合に、これを使って SMTP サーバーを指定します。デフォルト 194 は localhost です。 subject 構文: subject=<string> 明:件名行を指定します。デフォルトは「Splunk 結果」になります。 width_sort_columns 構文: width_sort_columns=<bool> 明:format=text の場合にのみ有効です。列をその幅でソートするかどうかを指定します。 例 例 1:サーチ結果を、件名「myresults」の HTML 形式メールで送信します。 ... | sendemail to="[email protected],[email protected]" format=html subject=myresults server=mail.splunk.com sendresults=true 例 2:サーチ結果を指定メールで送信します。 ... | sendemail to="[email protected]" sendresults=true Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、sendemail コマンドの使 用方法に関する質問と回答をご覧ください。 sichart 概要 サマリーインデックス バージョンの chart コマンド。 構文 sichart chart_syntax 引数 「chart コマンドの構文」を参照してください。 明 サマリーインデックス バージョンの chart コマンド。構文は同じです。レポートを生成するために、サマリーイ ンデックスにどのような統計情報を保管する必要があるのかをすべて理解しておく必要はありません。 このデータを処理する chart コマンドでは、データを生成するために sichart コマンドで使われた引数と同じ引数 を使用する必要があります。 例 例 1:サマリーインデックスの結果に して「chart avg(foo) by bar」を実行するために必要な情報を算出します。 ... | sichart avg(foo) by bar 関 連項目 chart、collect、overlap、sirare、sistats、sitimechart、sitop Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、sichart コマンドの使用方 法に関する質問と回答をご覧ください。 195 sirare 概要 サマリーインデックス バージョンの rare コマンド。 構文 sirare rare_syntax 引数 「rare コマンドの構文」を参照してください。 明 サマリーインデックス バージョンの rare コマンド。構文は同じです。レポートを生成するために、サマリーイン デックスにどのような統計情報を保管する必要があるのかをすべて理解しておく必要はありません。 このデータを処理する rare コマンドでは、データを生成するために sirare コマンドで使われた引数と同じ引数を 使用する必要があります。 例 例 1:サマリーインデックスの結果に して「rare foo bar」を実行するために必要な情報を算出します。 ... | sirare foo bar 関 連項目 collect、overlap、sichart、sistats、sitimechart、sitop Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、sirare コマンドの使用方 法に関する質問と回答をご覧ください。 sistats 概要 サマリーインデックス バージョンの stats コマンド。 構文 sistats stats_syntax 引数 「stats コマンドの構文」を参照してください。 明 サマリーインデックス バージョンの stats コマンド。構文は同じです。レポートを生成するために、サマリーイン デックスにどのような統計情報を保管する必要があるのかをすべて理解しておく必要はありません。 このデータを処理する stats コマンドでは、データを生成するために sistats コマンドで使われた引数と同じ引数を 使用する必要があります。 例 196 例 1:サマリーインデックスの結果に して「stats avg(foo) by bar」を実行するために必要な情報を算出します。 ... | sistats avg(foo) by bar 関 連項目 collect、overlap、sichart、sirare、sitop、sitimechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、sistats コマンドの使用方 法に関する質問と回答をご覧ください。 sitimechart 概要 サマリーインデックス バージョンの timechart コマンド。 構文 sitimechart timechart_syntax 引数 「timechart コマンドの構文」を参照してください。 明 サマリーインデックス バージョンの timechart コマンド。構文は同じです。レポートを生成するために、サマリー インデックスにどのような統計情報を保管する必要があるのかをすべて理解しておく必要はありません。 このデータを処理する timechart コマンドでは、データを生成するために sitimechart コマンドで使われた引数と同 じ引数を使用する必要があります。 例 例 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_syntax 197 引数 「top コマンドの構文」を参照してください。 明 サマリーインデックス バージョンの top コマンド。構文は同じです。レポートを生成するために、サマリーイン デックスにどのような統計情報を保管する必要があるのかをすべて理解しておく必要はありません。 このデータを処理する top コマンドでは、データを生成するために sitop コマンドで使われた引数と同じ引数を使 用する必要があります。 例 例 1:サマリーインデックスの結果に して「top foo bar」を実行するために必要な情報を算出します。 ... | sitop foo bar 関 連項目 collect、overlap、sichart、sirare、sistats、sitimechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、sitop コマンドの使用方法 に関する質問と回答をご覧ください。 sort 概要 サーチ結果を指定フィールドで並べ替えます。 構文 sort [<count>] (<sort-by-clause>)+ [desc] 必要な引数 <count> 構文: <int> 明:ソートする結果数を指定します。値を指定しない場合、デフォルトの 10000 件が使用されます。0 を 指定した場合は、すべての結果が返されます。 <sort-by-clause> 構文: ( - | + ) <sort-field> 明:並べ替えるフィールドのリストと、その並べ替え順序 (昇順 ( - ) または降順 ( + )) オプション引数 降順 構文: d | desc 明:結果を逆順にする、最後に付ける文字列。 sort-field の オ プ シ ョ ン <sort-field> 構文: <field> | auto(<field>) | str(<field>) | ip(<field>) | num(<field>) 明:sort-field 用のオプション。 <field> 構文: <文字列> 明:ソートするフィールド名。 198 auto 構文: auto(<field>) 明:フィールドの値の自動ソート方法を指定します。 ip 構文: ip(<field>) 明:フィールドの値を IP アドレスとして解釈します。 num 構文: num(<field>) 明:フィールドの値を数字として処理します。 str 構文: str(<field>) 明:フィールド値を辞書的順序で並べます。 明 コマンドは、指定されたフィールドのリストで結果をソートします。指定フィールドが存在していない結果 に しては、当該フィールドで可能な最大値または最小値 (値の並び順が降順か昇順かによる) を持つフィールドを 仮定して処理が行われます。 sort コマンドの最初の引数が数値の場合、最高でその値までの結果が順番に返されます。数字を指定しない場 合、デフォルトでは上限 10000 件が仮定されます。0 を指定した場合は、すべての結果が返されます。 sort デフォルトで sort は、何をソートしているのかを自動的に判断します。フィールドが数値を取る場合、照合順序 は数値順になります。フィールドが IP アドレスを取る場合、照合順序は IP 順になります。それ以外の場合は、照 合順序は辞書式順序になります。以下に例を示します。 アルファベット文字列は辞書的順序にソートされます。 句読点文字列は辞書的順序にソートされます。 数値データは数字順に、指定されたソート順序 (昇順または降順) でソートされます。 英数字文字列は、最初の文字のデータタイプに基づいてソートされます。数字で始まっている場合は、その 数字のみに基づいて数値的にソートされます。それ以外の場合は、辞書的順序でソートされます。 英数字と句読点の組み合わせとなる文字列はは、英数字文字列と同 にソートされます。 デフォルトの自動モードでは、各値のペアが比較されてソート順序が決定されます。この場合、一部の値のペアは 辞書的に、別のペアは数値的にソートされる可能性があります。たとえば、降順にソートする場合に 10.1 > 9.1 と 判断されますが、10.1.a < 9.1.a と判断されます。 例 例 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 さんに感謝の意を表明します。) 例 5:結果テーブルを、曜日や月など辞書的または数値的ではない特定の順序でソートします。たとえば、以下の テーブルを生成するサーチを考えてみましょう。 Day Total Friday 120 Monday 93 Tuesday 124 199 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 さんに感謝の意を表明します。) 関 連項目 reverse Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、sort コマンドの使用方法 に関する質問と回答をご覧ください。 spath コマンドの「s」は Splunk (または構造化 (structured)) を意味しています。このコマンドは、XML や JSON などの構造化データフォーマットから情報を抽出する手段を提供しています。また、表示されたイベントリスト内 の構文を強調表示します。 spath また、eval コマンドで spath() 関数を使用することもできます。詳細は、「eval と where の関数」を参照してく ださい。 概要 構造化データ (XML または JSON) から値を抽出し、それを単一または複数のフィールドに保管します。 構文 spath [input=<field>] [output=<field>] [path=<datapath> | <datapath>] オプション引数 input 構文: input=<field> 明:読み込んで値を抽出するフィールド。デフォルトは _raw です。 output 構文: output=<field> 明:指定した場合、パスから抽出された値は、このフィールド名で書き込まれます。 path 構文: path=<datapath> | <datapath> 明:抽出する値の場所を示すパス。path 引数を使用しない場合、最初のラベルがない引数がパスとして使 用されます。場所を示すパスは、1 つまたは複数のステップをピリオドで区切って指定します (例: foo.bar.baz)。場所ステップは、フィールド名とオプションの中括弧で んだインデックスから成り立っていま す。配列内の位置 (JSON と XML では異なります) を表すために、インデックスに数字を使用できます。ま た、文字列を使用する場合は XML 属性を指定できます。インデックスに XML 属性を指定する場合は、@ 記 号を付けて属性名を指定します。出力引数を指定しない場合は、このパスが抽出した値のフィールド名とな ります。 200 明 path 引数を指定せずに呼び出した場合、spath は自動抽出モードで動作し、入力 (入力ソースが指定されていない 場合はデフォルトの _raw) の最初の 5000 文字からすべてのフィールドを抽出します。パスを指定した場合、その パスの値がパス名のフィールドまたは 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 を使って、すべての hashtags のテキストを取得できます。ここで参照パス entities.hashtags は、これの 1 つの配列を参照する必要があります (そうしないと、通常の配列インデックスの 場合と同 にエラーが発生します)。 spath XML でも同じ方法を利用でき、たとえば catalog.book と catalog.book{} は同等です (両方ともカタログ内のすべ ての book が取得されます)。 例 例 1: GitHub 多数の大きな git リポジトリの管理者として、私は以下のことを実現したいと考えています。 誰がどのリポジトリに して多数の 更をコミットしているかを確認する。 各ユーザーが送信したコミットのリストを作成する。 そこで Splunk がすべての post-commit JSON 情報を追跡するように設定し、spath を使って commit_author およ び commit_id フィールドを抽出しました。 ... | 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">PreA§os</locDesc> </desc> </product> locDesc エレメントの値 (Precios、Prix、Preise など) を抽出するには、以下のように指定します。 ... | spath output=locDesc path=vendorProductSet.product.desc.locDesc locale 属性の値 (es、fr、de など) を抽出するには、以下のように指定します。 201 ... | spath output=locDesc.locale path=vendorProductSet.product.desc.locDesc{@locale} 4 番目の locDesc の値 (ca) を抽出するには、以下のように指定します。 ... | spath path=vendorProductSet.product.desc.locDesc{4}{@locale} 例 3: 複 数 値 フ ィ ー ル ド を 使 っ た JSON イ ベ ン ト の 抽 出 と 展 開 mvexpand コマンドは、1 つの複数値フィールドのみを処理できます。この例では、複数の複数値フィールドを持 つ JSON イベントを、各フィールドの値に する個別のイベントに 張する方法を 明していきます。たとえば、 sourcetype=json の以下のイベントを考えてみましょう。 {"widget": { "text": { "data": "size": "data": "size": "data": "size": }} "Click here", 36, "Learn more", 37, "Help", 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 --------------------------- ----------- ----2012-10-18 14:45:46.000 BST Click here 36 Learn more 37 Help 38 x -------------Click here,36 Learn more,37 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 --------------------------2012-10-18 14:45:46.000 BST 2012-10-18 14:45:46.000 BST 2012-10-18 14:45:46.000 BST data size ---------- ---Click here 36 Learn more 37 Help 38 (この例を提供した Genti さんに感謝の意を表明します。) その他の例 例 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} 202 関 連項目 extract、kvform、multikv、regex、rex、xmlkv、xpath Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、spath コマンドの使用方 法に関する質問と回答をご覧ください。 stats 概要 統計情報を提供します。必要に じてフィールド別にグループ化します。 構文 簡易: stats (stats-function(field) [as field])+ [by field-list] 完全: stats [allnum=<bool>] [delim=<string>] ( <stats-agg-term> | <sparkline-agg-term> ) [<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 構文: delim=<string> 明:list() または values() 集合内の値の区切り方を指定します。(デフォルトは 1 つのスペースです。) by 句 構文: by <field-list> 明:グループ化する 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 clause は 1 つのみ利用できます。 明と例が記載された stats 関数の一覧については、「stats、 chart、および timechart の関数」を参照してください。 Sparkline 関 数 の オ プ シ ョ ン スパークラインはテーブルのセル内に表示されるインライングラフで、各行のプライマリキーに関連する時間ベー スの傾向を表示します。詳細は、『サーチマニュアル』の「サーチ結果へのスパークラインの追加」を参照してく ださい。 sparkline-agg 203 構文: 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() 明:スパークラインの値の生成に用いられる集計関数。各スパークラインの値は、特定の時間バケツに該当 するイベントにこの集計を適用することにより生成されます。 明 SQL の aggregation と同 に、データセットの総統計を算出します。by clause なしで呼び出すと、1 つの行が生成 されます。この行は、到着した結果セット全体の集計を表します。by 句 (by-clause) を指定して呼び出すと、by 句 が指す各一意の値に してそれぞれ 1 つの行が生成されます。 例 例1 この例では、チュートリアルのサンプルデータセットを使用していますが、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 値に する各要求数を区別し ます。 これによって、以下のテーブルが返されます。 注意:データに して同じ統計計算を実行するために、stats、chart、および timechart コマンドを使用できま す。stats コマンドは、結果のテーブルを返します。chart コマンドは同じ結果のテーブルを返しますが、レポー トビルダーを使ってこのテーブルをグラフにすることができます。結果の推移をグラフ化したい場合 は、timechart コマンドを使用します。また、この例のバリエーションについては、chart および timechart コマ ンドを参照してください。 例2 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (September 23-29, 2010) 地震デー タを使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地 震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、お よびレポートステーション番号 (NST) が含まれています。 テキストファイル M 1+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。 カリフォルニア周辺の地震をサーチして、記 されている地震数をカウントします。次に、これらの地震のマグニ チュードの最低値、最大値、範 (最小値と最大値の差)、および平均値を算出します。 204 source=eqs7day-M1.csv Region=*California | stats count, max(Magnitude), min(Magnitude), range(Magnitude), avg(Magnitude) by Region これらの計算には、stats 関数 count(), max(), min(), range(), and avg() を使用します。. これによって、以 下のテーブルが返されます。 このデータセットには、870 件のイベントがありました。これらの結果から、記 された地震の中で約 350 件がカ リフォルニア周辺で発生していることが分かります。 例3 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (September 23-29, 2010) 地震デー タを使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地 震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、お よびレポートステーション番号 (NST) が含まれています。 テキストファイル M 1+ earthquakes, past 7 days をダウンロードして、それを Splunk にアップロードしてく ださい。Splunk はフィールドを自動的に抽出します。 これらの最近の地震データから、カリフォルニア周辺の地震をサーチして、マグニチュードの平均、標準偏差、お よび分散を算出します。 source=eqs7day-M1.csv Region=*California | stats mean(Magnitude), stdev(Magnitude), var(Magnitude) by Region これらの計算には、stats 関数 mean(), stdev(), and var() を使用します。. これによって、以下のテーブルが返 されます。 205 mean の値は、例 2 で avg() を使って算出された値と完全に一致しています。 例4 この例では、チュートリアルのサンプルデータセットとフィールドのルックアップを使用して、イベントデー タにさまざまな情報を追加します。 「データの追加」チュートリアルからデータセットをダウンロードして、それを Splunk に取り込んでく ださい。 「フィールドルックアップの使用」チュートリアルから CSV ファイルをダウンロードした後、指示に 従ってフィールドルックアップを設定してください。 もとのデータセットには、Flower & Gift shop で販売された商品のカタログ番号を表す product_id フィールド が含まれています。フィールドルックアップにより、イベントに 3 種類の新規フィールドを追加します。商品 の詳細を表す名前を持つ product_name、商品カテゴリを表す product_type、および商品の値段を表す price で す。 フィールドルックアップを設定したら、時間範 [全時間] でサーチを実行します。 Flower & Gift shop で販売された商品を ID 、種類、および名前別に表示するテーブルを作成します。また、各商品 の収益も算出します。 sourcetype=access_* action=purchase | stats values(product_type) AS Type, values(product_name) AS Name, sum(price) AS "Revenue" by product_id | rename product_id AS "Product ID" | eval Revenue="$ ".tostring(Revenue,"commas") この例は、values() 関数を使って、各 product_id に する product_type と product_name 値を表示しています。 次に sum() 関数を使って、price フィールドの値の合計を算出しています。 また、分かりやすくするために各種フィールド名も 更します。stats 関数では、AS 句を使って名前を 更すること ができます。構文により split-by フィールドの名前を 更できないため、product_id フィールドの名前を 更するた めに rename コマンドを使用しています。 最後に、結果を eval 式に渡して、ドル記号とカンマを追加し、通貨として表示されるように、Revenue フィール ド値の書式を再設定して、 これによって、以下のテーブルが返されます。 これまでの購入数上位 3 件は、Beloved's Embrace Bouquet、Tea & Spa Gift Set、および Fragrant Jasmine Plant であることが分かります。 例5 この例は、生成されたメールデータ (sourcetype=cisco_esa) を使用しています。この例の sourcetype=cisco_esa をご自分のデータの sourcetype 値に、そして mailfrom フィールドをご自分のメールア ドレスフィールド名 (例:To, From, or Cc) に 更すれば、任意のメールデータに して利用できます。 206 メールが 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 この例では、チュートリアルのサンプルデータセットを使用していますが、Apache Web アクセスログ形式の 任意のデータを利用できます。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に 従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行しま す。 Web アクセスログをサーチして、上位 10 件の参照ドメインのヒット数合計を返します。(top コマンドは、カウン トと各 referer の割合 (パーセント) を返します。) sourcetype=access_* | top limit=10 referer | stats sum(count) AS total このサーチでは、top コマンドを使って参照数が上位 10 件の参照ドメイン (referer フィールドの値) を 索してい ます。(これは、referer_domain として表示されることもあります。)top コマンドの結果は、stats コマンドに渡 されます。この例では、sum() 関数を使って各 referer による Web サイトへのアクセス回数を追加しています。 この合計は、total フィールドに保存されます。. これにより、単一の数値が生成されます。 その他の例 例 1:アクセスログをサーチして、「referer_domain」の上位 100 件の値から合計ヒット数を返します。(top コマ ンドは、カウントと各 referer_domain の割合 (パーセント) を返します。) sourcetype=access_combined | top limit=100 referer_domain | stats sum(count) AS total 例 2:文字列「lay」で終わる (例:delay、xdelay、relay など) 任意の一意のフィールドに して、各時間の平均を 返します。 ... | stats avg(*lay) BY date_hour 207 例 3:同じ「host」値を持つ結果の重複項目を削除して、残り結果の合計カウントを返します。 ... | stats dc(host) 例 4:各ホストの平均転送レートを返します。 sourcetype=access* | stats avg(kbps) by host 関 連項目 eventstats、rare、sistats、streamstats、top Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、stats コマンドの使用方法 に関する質問と回答をご覧ください。 strcat 概要 文字列値を連結します。 構文 strcat [allrequired=<bool>] <srcfields>* <destfield> 必要な引数 <destfield> 構文: <文字列> 明: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 フィールドを追加して、次にフィールド値の発生回数をグラフに表示します。 208 host="mailserver" | strcat sourceIP "/" destIP comboIP | chart count by comboIP 例 3:ホストおよびポートの値を組み合わせた address フィールドを「<ホスト>::<ポート>」の形式で追加しま す。 ... | strcat host "::" port address 関 連項目 eval Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、strcat コマンドの使用方 法に関する質問と回答をご覧ください。 streamstats コマンドは stats コマンドのように、サーチ結果のサマリー統計を計算します。stats とは違い (結果 全体をまとめて処理する)、streamstats はイベントの登場時に各イベントの統計を計算します。 streamstats 概要 ストリーミングを利用して、サマリー統計情報をすべてのサーチ結果に追加します。 構文 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) の場合、与えられた (現在の) イベントをサマリー計算に含めます。デフォルトは真 (True) で す。 window 構文: window=<int> 明:window オプションは、統計の算出に使用するウィンドウサイズを指定します。デフォルトは 0 で、こ の場合は前のすべてのイベント (と現在のイベント) が使用されます。 global 構文: global=<bool> 明:global オプションに偽 (False) を指定し、window に 0 以外の値を設定すると、group by フィールドの 各グループ値に して別個のウィンドウが使用されます。デフォルトは真 (True) です。 allnum 構文: allnum=<bool> 明:真 (True) の場合、当該フィールドのすべての値が数値の場合にのみ、各フィールドの数値統計を算出 します。デフォルトは偽 (false) です。 by 句 構文: by <field-list> 明:グループ化する 1 つ以上のフィールド名。 Stats 関 数 の オ プ シ ョ ン 209 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 関数の一覧については、「stats、 chart、および timechart の関数」を参照してください。 明 コマンドは eventstats コマンドと似ていますが、与えられたイベントの前のイベントを使用して各 イベントに適用する総統計を算出する点が異なっています。当該イベントを計算に含める場合は、current=true (デ フォルト) を使用します。 streamstats 例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 その他の例 例 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 210 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、streamstats コマンドの使 用方法に関する質問と回答をご覧ください。 table コマンドは、結果に保持するフィールドを指定できるという点で、fields コマンドと似ています。データを 純粋にテーブルとして保持したい場合に、table コマンドを使用します。 table コマンドは、データの離散値間の関係の傾向を表す、散布図の作成に利用できます。それ以外の場合は、こ れをグラフ (chart や timechart など) には使用しないでください。グラフを生成表示するためには内部フィールド (アンダースコア「_」で始まるフィールド*) が必要ですが、table コマンドのデフォルトでは、これらのフィール ドが結果から削除されます。代わりに、すべての内部フィールドを常に保持する fields コマンドを使用してくだ さい。 table 概要 指定されたフィールド名のみを使ってテーブルを作成します。 構文 table <wc-field-list> 引数 <wc-field-list> 構文: <wc-field> <wc-field> ... 明:フィールド名のリスト。ワイルドカードを使用できます。 明 コマンドは、引数に指定されたフィールドのみで作成されたテーブルを返します。列は、フィールドの指定 順序と同じ順番で表示されます。列の見出しはフィールド名になります。行はフィールドの値になります。各行が イベントを表しています。 table コマンドではフィールド名を 更できません。テーブルに表示したいフィールドのみを指定してください。 フィールド名を 更したい場合は、結果を table に渡す前に行ってください。 table 例 例1 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (October 11-18, 2010) 地震データを 使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレ ポートステーション番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。 カリフォルニア周辺の最近の地震データをサーチして、地震の発生時刻 (Datetime)、発生場所 (Region)、マグニ チュード (Magnitude)、および深度 (Depth) のみを表示します。 source="eqs7day-M1.csv" Region=*California | table Datetime, Region, Magnitude, Depth これは、単純にイベントを表形式のテーブルに 換して、引数として指定したフィールドのみを表示します。 211 例2 この例では、USGS Earthquakes Web サイトからダウンロードした最近の (October 11-18, 2010) 地震データを 使用しています。このデータはカンマ区切り形式の ASCII テキストファイルで、過去 7 日間に発生した地震に する、ソースネットワーク (Src)、ID (Eqid)、バージョン、日付、場所、マグニチュード、深度 (km)、およびレ ポートステーション番号 (NST) が含まれています。 テキストファイル M 2.5+ earthquakes, past 7 days をダウンロードして CSV ファイルとして保存し、それを Splunk にアップロードしてください。Splunk はフィールドを自動的に抽出します。ダウンロードデータはダ ウンロード時から過去 7 日間のデータになるため、結果は下記の例とは異なることに注意してください。 北カリフォルニアで発生した地震の日付、時刻、緯度/ 度、およびマグニチュードを表示します。 source="eqs7day-M1.csv" Region="Northern California" | rename Lat AS Latitude, Lon AS Longitude | table Datetime, L*, Magnitude 以下の例では、北カリフォルニア (Region="Northern California") で最近発生したすべとの地震をサーチしま す。 次にそれらのイベントを rename コマンドに渡して緯度/ 度フィールド (coordinate) の名前を Lat および Lon から Latitude と Longitude に 更します。(table コマンドではフィールド名を 更または再フォーマットできません。表 形式の結果に表示したいフィールドのみを指定してください。) 最後に結果を table コマンドに渡して、L* を使って緯度/ 度の両方のフィールドを、Magnitude でマグニチュード を、Datetime で日時を指定します。 この例は、table コマンドの構文では、ワイルドカード * を使った複数のフィールドの指定方法を表しています。 212 例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) のみが表示 されます。 その他の例 例 1:フィールド foo、bar および「baz」から始まるすべてのフィールドを表示するテーブルを作成します。 ... | table foo bar baz* 関 連項目 fields Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、table コマンドの使用方法 に関する質問と回答をご覧ください。 tags 概要 サーチ結果の指定フィールドに、タグを使って注釈を付けます。 構文 tags [outputfield=<field>] [inclname=<bool>] [inclvalue=<bool>] <field-list> 必要な引数 <field-list> 構文: <field> <field> ... 明:タグで注釈を付けるフィールドを指定します。 213 オプション引数 outputfield 構文: outputfield=<field> 明:指定した場合、すべてのフィールドのタグがこのフィールドに書き込まれます。そうでない場合は、各 フィールドのタグは「tag::<field>」と言う名前のフィールドに書き込まれます。 inclname 構文: inclname=T|F 明:outputfield を指定した場合に、出力フィールドにフィールド名を追加するかどうかを指定します。デ フォルトは F です。 inclvalue 構文: inclvalue=T|F 明:outputfield を指定した場合に、出力フィールドにフィールド値を追加するかどうかを指定します。デ フォルトは F です。 明 サーチ結果にタグを使って注釈を付けます。フィールドが指定されている場合は、それらのフィールドに しての みタグで注釈を付けます。そうでない場合は、すべてのフィールドに してタグを探します。outputfield を指定し た場合、すべてのフィールドのタグがこのフィールドに書き込まれます。outputfield を指定した場合、inclname および inclvalue で、出力フィールドにフィールド名およびフィールド値を追加するかどうかを制御します。デ フォルトでは、タグ ((<フィールド>::)?(<値>::)?tag) のみが outputfield に書き込まれます。 例 例 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 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、tags コマンドの使用方法 に関する質問と回答をご覧ください。 tail 概要 指定した結果の最後の n 件を返します。 構文 tail [<N>] 必要な引数 <N> 構文: <int> 明:返す結果数。指定しない場合は、デフォルトの 10 が使用されます。 214 明 最後の n 件の結果を返します。整数値が指定されていない場合は、10 件を返します。イベントは、結果セットの 最後から逆順で返されます。 例 例 1:最後の 20 件の結果を返します (逆順で)。 ... | tail 20 関 連項目 head、reverse Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、tail コマンドの使用方法 に関する質問と回答をご覧ください。 timechart 概要 する統計情報テーブルで、タイムライングラフを作成します。 構文 timechart [sep=<string>] [partial=<bool>] [cont=<t|f>] [limit=<int>] [agg=<stats-agg-term>] [<bucketing-option> ]* (<single-agg> [by <split-by-clause>] ) | ( (<eval-expression>) by <split-by-clause> ) 必要な引数 agg 構文: <stats-agg-term> 明:下の Stats 関数のセクションを参照してください。 明と例が記載された stats 関数の一覧については、 「stats、chart、および timechart の関数」を参照してください。 bucketing-option 構文: bins | minspan | span | <start-end> 明:離散化オプション。このオプションを指定しないと、timechart のデフォルトの bins=100 が使用され ます。bins は、最大ビン数を設定します。ターゲットビン数ではありません。 Eval 式 構文: <math-exp> | <concat-exp> | <compare-exp> | bool-exp> | <function-call> 明:宛先フィールドの値を表す、リテラル、フィールド、演算子、および関数の組み合わせ。eval を使っ て実行できる基本的な操作を以下に示します。これらの評価が正常に機能するためには、操作の種類に じて 有効な値を使用する必要があります。たとえば、追加の例外処理では、値が数値でないと算術操作で有効な 結果を得ることはできません。また、Splunk では 2 つのオペランドが両方とも文字列の場合、それを連結す ることができます。「.」が存在する値を連結する場合は、実際の種類に関係なく両方の値が文字列として処 理されます。 single-agg 構文: count|<stats-func>(<field>) 明:単一の集計を単一のフィールドに適用します (評価したフィールドも可能)。ワイルドカードは使用でき ません。イベントにまとめて適用する特別集計子「count」を使用する場合を除き、フィールドを指定する必 要があります。 split-by-clause 構文: <field> (<tc-option>)* [<where-clause>] 明:分割 象フィールドを指定します。フィールドが数値の場合、デフォルトの離散化が適用されます。離 散化は、tc-option で定義されます。 215 オプション引数 cont 構文: cont=<bool> 明:グラフが連続的かどうかを示します。真 (True) の場合、Splunk が時間のギャップを埋めます。デフォ ルトは True|T です。 fixedrange 構文: fixedrange=<bool> 明: (4.2 では無効) サーチのもっとも早い/もっとも い時刻を使用するかどうかを示します。偽 (False) を設 定すると、時間グラフが有効なデータの時間範 のみに制限されます。デフォルトは True|T です。 limit 構文: limit=<int> 明:シリーズフィルタリングの限度を指定します。limit=0 の場合、フィルタリングされません。デフォル トでは、limit=N を設定すると、各シリーズの合計に基づいて、上位 N 件の値がフィルタリングされます。 partial 構文: partial=<bool> 明:部分時間バケツを保持するかどうかを示します。最初と最後のバケツのみが、部分バケツにできます。 デフォルトは True|T で、この場合バケツは保持されます。 sep 構文: sep=<string> 明:split-by フィールドと一緒に複数のデータシリーズが指定されている場合に、出力フィールド名で使用 するセパレータを指定します。 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() 明:stats コマンドと一緒に利用される関数。stats コマンドの起動時に、複数の関数を使用できます が、by clause は 1 つのみ利用できます。 明と例が記載された stats 関数の一覧については、「stats、 chart、および timechart の関数」を参照してください。 Bucketing の オ プ シ ョ ン bins 構文: bins=<int> 明:離散化に使用するビンの最大数を設定します。ターゲットビン数を設定する訳ではありません。(100 以下の一意のバケツとなる、最小のバケツが探されます。100 または 300 を指定しても、結果となるバケツ 数は大幅に低くなります。)デフォルトは 100 です。 minspan 構文: minspan=<span-length> 明:データの時間範 から期間を自動推測する、最小の期間粒度を指定します。 span 構文: span=<log-span> | span=<span-length> 明:時間または 数ベースの期間に基づく期間長を使って、各バケツのサイズを設定します。 <start-end> 構文: end=<num> | start=<num> 明:数値バケツの最小/最大範 を設定します。[start, end] の範 外のデータは破棄されます。 Log-span 構文 <log-span> 構文: [<num>]log[<num>] 216 明: 数ベースのスパンを設定します。最初の数値は係数です。2 番目の数値が底です。最初の数値を指定 する場合は、実数 >= 1.0 および < 底でなければなりません。底を指定する場合、> 1.0 の実数でなければな りません ( 密に 1 より大きい)。 span-length 構文 span-length 構文: [<timescale>] 明:時間に基づいたスパン長です。 <span> 構文: <int> 明:各ビンのスパン。タイムスケールを使用する場合、これは時間範 として使用されます。使用しない場 合、これは絶 バケツ「length」になります。 <timescale> 構文: <sec> | <min> | <hr> | <day> | <month> | <subseconds> 明:タイムスケールの単位。 <秒> 構文: s | sec | secs | second | seconds 明:タイムスケール (秒)。 <min> 構文: m | min | mins | minute | minutes 明:タイムスケール (分)。 <hr> 構文: h | hr | hrs | hour | hours 明:タイムスケール (時間)。 <日> 構文: d | day | days 明:タイムスケール (日)。 <月> 構文: mon | month | months 明:タイムスケール (月)。 <subseconds> 構文: us | ms | cs | ds 明:マイクロ秒 (us)、ミリ秒(ms)、1/100 秒 (cs)、または 1/10 秒 (ds) のタイムスケール tc options tc-option 構文: <bucketing-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> の基準を たさないためグラフに含まれていないデータシリーズに して、シリーズを追 加するかどうかを示します。デフォルトは True|T です。 otherstr 構文: otherstr=<string> 明:useother が真 (True) の場合、このシリーズには otherstr オプションの値でラベルが付けられます。デ フォルトは OTHER です。 where 句 217 where 句 構文: <single-agg> <where-comp> 明:tc-by-clause にフィールドが指定されている場合に、特定のデータシリーズを含めるかどうかの基準を 指定します。一般的にこのオプションは、シリーズ内の質量分布を選 するのではなく、スパイクを選 するた めに用いられます。デフォルトでは、濃度曲線下面積別上位 10 件のシリーズを探します。sum を max に 更 して、スパイクが高い上位 10 件のシリーズを探すこともできます。これに、where コマンドとの関係はあ りません。 <where-comp> 構文: <wherein-comp>|<wherethresh-comp> 明:where 句の基準です。 <wherein-comp> 構文: (in|notin) (top|bottom)<int> 明:集計したシリーズ値を、上位/下位項目でグループ化するための基準です。 <wherethresh-comp> 構文: (<|>)( )?<num> 明:集計したシリーズ値が、一定の閾値より大きいまたは小さい必要があることを指定する基準です。 明 時間を X 軸にしたフィールドに して適用される、統計的集計のグラフを作成します。必要に じて、この split-by フィールドの一意の各値がシリーズとなるように、データをフィールドで分割することができます。eval 式を使 用する場合は、split-by 句が必要です。limit および agg オプションにより、シリーズのフィルタリングを指定でき ます。ただし、where-clause が明示的に指定されている場合は無視されます (limit=0 はシリーズのフィルタリング なしを意味する)。 バケツのタイムスパンと per_* 関数 関数は集計関数で、結果となるグラフのタイムスパ ンの設定は行いません。これらの関数は、スパンが明示的に指定されていない場合に、データの一貫したスケール を取得するために利用されます。結果となるスパンは、サーチの時間範 によって異なります。 per_day()、per_hour()、per_minute()、および per_second() たとえば、per_hour() は時間当たりのレート、または sum()/<スパン内の時間数> となるようにフィールド値を 換 します。グラフの終了スパンが 30m の場合は、sum()*2 になります。 スパンを 1h にする場合は、サーチに引数 span=1h を指定する必要があります。 注意:同じサーチ内で、あるフィールドに して 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 ファイルをダウンロードした後、指示に 従ってフィールドルックアップを設定してください。 もとのデータセットには、Flower & Gift shop で販売された商品のカタログ番号を表す product_id フィールド が含まれています。フィールドルックアップにより、イベントに 3 種類の新規フィールドを追加します。商品 218 の詳細を表す名前を持つ product_name、商品カテゴリを表す product_type、および商品の値段を表す price で す。 フィールドルックアップを設定したら、時間範 [その他] > [昨日] でサーチを実行します。 昨日購入された各商品の収益をグラフ化します。 sourcetype=access_* action=purchase | timechart per_hour(price) by product_name usenull=f この例では、すべての購入イベント (action=purchase で定義) をサーチして、その結果を timechart コマンドに渡 します。per_hour() 関数は、各項目 (product_name) の price フィールドの値を合計して、それをその日の各時間 にバケツ化します。 これによって、以下の結果テーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、スタック 棒グ ラフとしてフォーマットしています。 このグラフを作成したら、各セクション上にマウスカーソルを移動して、その時間帯に購入された商品のその他の 測定基準を表示することができます。グラフには、データが時間ごとのスパンでは表示されないことにお気づきで しょうか。スパンが指定されていないため (span=1hr など)、per_hour() 関数は値を、時間範 (ここでは 24 時間) 内の時間当たりの合計となるように 換します。 例2 この例では、チュートリアルのサンプルデータセットとフィールドのルックアップを使用して、イベントデー タにさまざまな情報を追加します。 [this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロー ドしてください。 「フィールドルックアップの使用」チュートリアルから CSV ファイルをダウンロードした後、指示に 従ってフィールドルックアップを設定してください。 もとのデータセットには、Flower & Gift shop で販売された商品のカタログ番号を表す product_id フィールド が含まれています。フィールドルックアップにより、イベントに 3 種類の新規フィールドを追加します。商品 の詳細を表す名前を持つ product_name、商品カテゴリを表す product_type、および商品の値段を表す price で す。 フィールドルックアップを設定したら、時間範 [全時間] でサーチを実行します。 219 各商品タイプの日次購入数をグラフ化します。 sourcetype=access_* action=purchase | timechart span=1d count by product_type usenull=f この例では、すべての購入イベント (action=purchase で定義) をサーチして、その結果を timechart コマンドに渡 します。span=1day 引数は、その週の購入カウントを日単位にバケツ化します。usenull=f 引数によ り、product_type に NULL 値を含む任意のイベントが無視されます。これによって、以下のテーブルが作成され ます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、 棒グラフとし てフォーマットしています。 各日およびその週の、異なる商品購入数を比較することができます。日単位で各商品の購入数はさほど わらない ようです。 例3 この例では、チュートリアルのサンプルデータセットとフィールドのルックアップを使用して、イベントデー タにさまざまな情報を追加します。 [this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロー ドしてください。 「フィールドルックアップの使用」チュートリアルから CSV ファイルをダウンロードした後、指示に 従ってフィールドルックアップを設定してください。 もとのデータセットには、Flower & Gift shop で販売された商品のカタログ番号を表す product_id フィールド が含まれています。フィールドルックアップにより、イベントに 3 種類の新規フィールドを追加します。商品 の詳細を表す名前を持つ product_name、商品カテゴリを表す product_type、および商品の値段を表す price で す。 フィールドルックアップを設定したら、時間範 [全時間] でサーチを実行します。 220 週における、各商品販売に して得られた合計収益をカウントします。ここでは、そのための 2 種類の方法を記載 しています。 1. 最初のサーチは span 引数を使って、サーチ結果を 1 日の単位でバケツ化しています。次に sum() 関数を使っ て、各 product_name の price を追加します。 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 これのサーチにより、以下の結果テーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、 棒グラフとし てフォーマットしています。 これで、各日およびその週の、商品購入による収益合計を比較することができます。 例4 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行します。 Flower & Gift shop の、昨日の参照数と購入数をグラフ化します。 sourcetype=access_* | timechart per_hour(eval(method="GET")) AS Views, 221 per_hour(eval(action="purchase")) AS Purchases このサーチは per_hour() 関数と eval 式を使ってページビュー (method=GET) 数と購入数 (action=purchase) をサー チします。eval 式の結果は、それぞれ Views および Purchases に名前を 更します。これによって、以下の結果 テーブルが作成されます。 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、面グラフとし て設定されています。 2 つの領域の差は、すべてのページ参照が購入につながっている訳ではないことを表しています。すべてのページ 参照が購入につながっていれば、両方の領域のオーバーレイが相互に完全に重なり 2 つの領域の差がなくなりま す。 例5 この例では、チュートリアルのサンプルデータセットを使用していますが、Apache Web アクセスログ形式の 任意のデータを利用できます。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に 従って Splunk にアップロードしてください。次に、時間範 に [その他] > [昨日] を指定してサーチを実行しま す。 Web アクセスログをサーチして、ページ要求数の推移をカウントします。 sourcetype=access_* | timechart count(eval(method="GET")) AS GET, count(eval(method="POST")) AS POST このサーチは、count() 関数と eval 式を使って異なるページ要求メソッド GET または POST をカウントします。こ れによって、以下の結果テーブルが作成されます。 222 レポートビルダーでグラフの書式を設定するには、[レポートの表示] をクリックします。ここでは、折れ線グラフ として書式設定されています。 注意:データに して同じ統計計算を実行するために、stats、chart、および timechart コマンドを使用できま す。stats コマンドは、結果のテーブルを返します。chart コマンドは同じ結果のテーブルを返しますが、レポー トビルダーを使ってこのテーブルをグラフにすることができます。結果の推移をグラフ化したい場合 は、timechart コマンドを使用します。また、この例のバリエーションについては、chart および timechart コマ ンドを参照してください。 その他の例 例 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 223 例 6:使用例 sshd failed OR failure | timechart span=1m count(eventtype) by source_ip usenull=f where count>10 関 連項目 bucket、chart、sitimechart Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、timechart コマンドの使用 方法に関する質問と回答をご覧ください。 上 概要 フィールドで一番多い値を表示します。 構文 top <top-opt>* <field-list> [<by-clause>] 必要な引数 <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> 明:グループ化する 1 つ以上のフィールド名。 Top の オ プ シ ョ ン countfield 構文: countfield=<string> 明:count の値を書き込む新規フィールド名。デフォルトは「count」です。 limit 構文: limit=<int> 明:返す組数を指定します。0 を指定すると、すべての値が返されます。デフォルトは 10 です。 otherstr 構文: otherstr=<string> 明:useother が真 (True) の場合、その他のすべての値を表す行に書き込む値すべてを指定します。デフォ ルトは「OTHER」です。 percentfield 構文: percentfield=<string> 明:パーセントの値を書き込む新規フィールド名。デフォルトは「percent」です。 showcount 構文: showcount=<bool> 明:count フィールド (countfield オプションを参照)およびその組のカウントを作成するかどうかを指定し ます。デフォルトは真 (True) です。 showperc 224 構文: showperc=<bool> 明:percent フィールド (percentfield オプションを参照) およびその組の相 普及度を作成するかどうかを指 定します。デフォルトは真 (True) です。 useother 構文: useother=<bool> 明:制限カットオフのために含まれない、すべての値を表す行を追加するかどうかを指定します。デフォル トは偽 (False) です。 明 フィールドリスト内のすべてのフィールドの値の組から、もっとも頻繁に登場する組と、その数と割合を 索しま す。オプションの by-clause を指定すると、group-by フィールドの各一意の値の組に して最頻値が 索されます。 例 例 1:url フィールドの、最多の値上位 20 件を返します。 ... | top limit=20 url 例 2:各ホスト (host) に して、上位のユーザー (user) 値を返します。 ... | top user by host 例 3:上位の URL 値を返します。 ... | top url 関 連項目 rare、sitop、stats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、top コマンドの使用方法 に関する質問と回答をご覧ください。 transaction 概要 イベントをトランザクションでグループ化します。 構文 transaction [<field-list>] [name=<transaction-name>] [<txn_definition-opt>]* [<memcontrol-opt>]* [<rendering-opt>]* 必要な引数 txn_definition-opt 構文: <maxspan> | <maxpause> | <maxevents> | <startswith> | <endswith> | <connected> | <unifyends> | <keeporphans> 明:トランザクション定義オプション。 memcontrol-opt 構文: <maxopentxn> | <maxopenevents> | <keepevicted> 明:メモリー制約オプション。 rendering-opt 構文: <delim> | <mvlist> | <mvraw> | <nullstr> 明:複数値表示オプション。 オプション引数 225 field-list 構文: <string>, ... 明:1 つのフィールドまたはフィールド名のリスト。イベントは、このフィールドの値に基づいてトランザ クションにグループ化されます。引用符で んだフィールドのリストを指定すると、各フィールドの値が同じ 場合にグループ化されます。 name 構文: name=<transaction-name> 明:トランザクションのサーチに使用する、transactiontypes.conf に指定されているスタンザ名。他の引 数 (例:maxspan) を指定すると、それらの指定値がトランザクション定義に指定されている値に優先されま す。 トランザクション定義オプション connected=<bool> 明:フィールドが空でない場合にのみ関連します。トランザクションのフィールドと整合性のあるまたは整 合性のないイベントを、新しいトランザクションで開く (connected=t) か、またはトランザクションに追加 するかを指定します。トランザクションが必要とするフィールドを持つけれども、トランザクション内でこ れらのフィールドがどれもインスタンス化されていない (前のイベント追加により) 場合、イベントは非不整 合または非整合にできます。 endswith=<filter-string> 明:サーチまたは eval フィルタリング式。あるイベントがこの条件を たすと、新しいトランザクションの 終了としてマークされます。 keeporphans=<bool> 明:トランザクションの一部ではない結果を出力するかどうかを指定します。「孤立」として渡される結果 は、孤立結果に して 1 の値を持つ _txn_orphan フィールドがあるトランザクションイベントとは区別されま す。デフォルトは、false|f です。 maxspan=<int>(s|m|h|d)? 明:maxspan 制約は、トランザクションのイベントの期間を maxspan 未 に制限します。負の値を指定し た場合、maxspan 制約は無効になります。デフォルトは maxspan=-1 (無制限) です。 maxpause=<int>(s|m|h|d)? 明:maxpause 制約は、トランザクションの各イベント間の停止時間を maxpause 以下に制限します。負の 値を指定した場合、maxpause 制約は無効になります。デフォルトは maxpause=-1 (無制限) です。 maxevents=<int> 明:1 つのトランザクション内の最大イベント数。負の値を指定した場合、この制約は無効になります。デ フォルトは、maxevents=1000 です。 startswith=<filter-string> 明:サーチまたは eval フィルタリング式。あるイベントがこの条件を たすと、新しいトランザクションの 開始としてマークされます。 unifyends=<bool> 明:startswith/endswith 制約に一致するイベントが、イベントをトランザクションにまとめるために用いら れるフィールドにも、1 つ以上一致しなければならないかどうかを指定します。デフォルトは、unifyends=f です。 文字列フィルタリングオプション <filter-string> 構文: <search-expression> | (<quoted-search-expression>) | eval(<eval-expression>) 明:サーチまたは eval フィルタリング式。あるイベントがこの条件を たすと、新しいトランザクションの 終了としてマークされます。 <search-expression> 明: 引用符を含まない有効なサーチ式です。 <quoted-search-expression> 明:引用符を含む有効なサーチ式です。 <Eval 式> 明: 論理演算式を評価する有効な eval 式です。 メモリー制約オプション 226 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 の値を区切るために使われる文字列。デフォルトは、delim=" " です。 mvlist=<bool> | <field-list> 明:トランザクションの複数値フィールドを、元のイベントのリストの到着順に並べるか (mvlist=t)、また は一連の一意のフィールド値を辞書式に並べるか (mvlist=f) を指定します。フィールドのカンマ/スペース区 切りリストを指定した場合、それらのフィールドのみをリストとして表示します。デフォルトは、mvlist=f です。 mvraw=<bool> 明:トランザクションのサーチ結果の _raw フィールドが複数値フィールドかどうかを指定します。デフォ ルトは、mvraw=f です。 nullstr=<string> 明:欠損フィールド値を、トランザクション内の複数値フィールドの一部として表示する際に使用する文字 列値。このオプションは、リストとして表示されるフィールドにのみ適用されます。デフォルトは、 nullstr="NULL" になります。 明 指定されたイベントを入力として、各種制約を たすイベントに基づいてトランザクションを探します。トランザ クションは、各メンバーの raw テキスト (_raw フィールド)、もっとも古いメンバーの時刻/日付フィールド、およ び各メンバーのその他すべてのフィールドの集合で構成されています。 Splunk は、定義されている複数のフィールドを論理積 (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 コマンドは、duration と eventcount の 2 つのフィールドを生成します。durationの値は、トランザ クション内の最初のイベントと最後のイベントのタイムスタンプの差です。eventcount の値は、トランザクショ ン内のイベント数です。 transaction 例 例1 この例は、チュートリアルのサンプルデータセットを使用しています。[this topic in the tutorial] からデータ セットをダウンロードした後、指示に従って Splunk にアップロードしてください。次に、時間範 に [その他] > 227 [昨日] を指定してサーチを実行します。 同じ IP アドレスを共有する、Web アクセスイベントに基づくトランザクションを定義します。トランザクション 内の最初のイベントと最後のイベントの差は 30 秒以下でなければなりません。また、トランザクション内の各イ ベントの間隔は 5 秒以内でなければなりません。 sourcetype=access_* | transaction clientip maxspan=30s maxpause=5s これによって、以下のイベントリストが作成されます。 このサーチは、サーバーにアクセスした 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 これによって、以下のイベントリストが作成されます。 228 例 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 件以下のイベントを含む) を識別します。 これによって、以下のイベントリストが作成されます。 上記の結果では、異なるホストドメインから同じ 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" これによって、以下のイベントリストが作成されます。 229 ここでは、各トランザクションには 10 件以下のイベントが存在していることが分かります。また、最後のイベン トのイベント行には文字列「Message done」が含まれています。 例5 この例は、生成されたメールデータ (sourcetype=cisco_esa) を使用しています。この例のサーチ は、sourcetype=cisco_esa をご自分のデータの sourcetype 値に 更することで、任意のメールデータに して実 行できます。 (メッセージ ID)、icid (着信接続 ID)、および dcid (配信接続 ID) の値が同じな、最高 10 件のイベントのグルー プを、メールトランザクションとして定義します。トランザクション内の最初のイベントと最後のイベントの差は 5 秒以下でなければなりません。また、各トランザクション内のイベント数は 10 件以下でなければなりません。 mid sourcetype="cisco_esa" | transaction mid dcid icid maxevents=10 maxspan=5s mvlist=t デフォルトで、サーチ結果内の複数値フィールドの値は抑制されています (mvlist=f)。このサーチで mvlist=t を 指定することにより、選 フィールドのすべての値を表示できます。これによって、以下のイベントリストが作成 されます。 ここでは、期間が 5 秒未 のトランザクションを参照できます。また、フィールドに複数の値が存在する場合は、 それぞれの値が表示されます。 例6 230 この例は、チュートリアルのサンプルデータセットを使用しています。[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秒以下のサーチ結果をトランザクション にグループ化します。 ... | transaction from maxspan=30s maxpause=5s Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、transaction コマンドの使 用方法に関する質問と回答をご覧ください。 transpose 概要 各サーチ行が列になるように、指定した行 (サーチ結果) 数を列 (フィールド値のリスト) として返します。 構文 transpose [int] 231 必要な引数 int 構文: <int> 明: 転置する行数を制限します。デフォルトは、5 です。 例 例 1:各列がイベントを、各行がフィールド値を表すように、最初の 5 件のサーチ結果を転置します。 ... | transpose 関 連項目 fields、stats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、transpose コマンドの使 用方法に関する質問と回答をご覧ください。 trendline 概要 フィールドの移動平均を算出します。 構文 trendline <trendtype><period>(<field>) [AS <newfield>] 必要な引数 trendtype 構文: syntax = sma|ema|wma 明:計算する傾向のタイプ。現在サポートされている傾向のタイプは、単純移動平均 (sma)、指数移動平均 (ema)、および加重移動平均 (wma) です。 period 構文: <num> 明:整数で 2 10000 の範 の整数で表す、傾向を計算する期間。 <field> 構文: <field> 明:傾向を計算するフィールド名。 オプション引数 <newfield> 構文: <field> 明:出力の書き込み先フィールド名を指定します。デフォルトは <トレンドタイプ><期間>(<フィールド>) になります。 明 フィールドの移動平均を算出します。単純移動平均 (sma)、指数移動平均 (ema)、および加重移動平均 (wma) を使 用できます。出力は指定した新規フィールドに書き込まれます。 例 例 1:foo フィールドの 5 件のイベントの単純移動平均を算出し、新しいフィールド「smoothed_foo」に書き込み ます。また、同じ行で bar フィールドの 10 件の指数移動平均を算出し、フィールド「ema10(bar)」に書き込みま す。 232 ... | trendline sma5(foo) as smoothed_foo ema10(bar) 関 連項目 accum、autoregress、delta、streamstats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、trendline コマンドの使用 方法に関する質問と回答をご覧ください。 typeahead 概要 指定されたプレフィックスの先行入力を返します。 構文 typeahead prefix=<string> count=<int> [max_time=<int>] [<index-specifier>] [<starttimeu>] [<endtimeu>] [collapse] 必要な引数 prefix 構文: prefix=<string> 明:先行入力情報を返すための、完全サーチ文字列。 count 構文: count=<int> 明:返す最大結果数。 オプション引数 index-specifier 構文: index=<string> 明:デフォルトインデックスの代わりに指定したインデックスをサーチします。 max_time 構文: max_time=<int> 明:先行入力を実行できるようになるまでの最大秒数。max_time=0 の場合、制限はありません。 startimeu 構文: starttimeu=<int> 明:開始時刻をエポック (UNIX 時) から N 秒に設定します。デフォルトは 0 です。 endtimeu 構文: endtimeu=<int> 明:終了時刻をエポック (UNIX 時) から N 秒に設定します。デフォルトは now です。 collapse 構文: collapse=<bool> 明:他の単語のプレフィックスでイベントカウントが同じ単語を表示しないかどうかを指定しますデフォル トは真 (True) です。 明 指定されたプレフィックスの先行入力を返します。最大で count 件の結果を返します。インデックスを 象にで き、また時間で制限できます。 例 例 1:インデックス「_internal」内のソースの先行入力情報を返します。 | typeahead prefix=source count=10 index=_internal 233 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、typeahead コマンドの使 用方法に関する質問と回答をご覧ください。 typelearner 概要 提案するイベントタイプを生成します。 構文 typelearner [grouping-field] [grouping-maxlen] オプション引数 grouping-field 構文: <field> 明:初期のイベントグループ化の際に、typelearner に して使用する値を持つフィールド。デフォルトは punct で、この場合 _raw にある句読点が使用されます。 grouping-maxlen 構文: maxlen=<int> 明:grouping-field 値で注目する文字数を指定します。負の値を設定すると、grouping-field の値全体がイベ ントのグループ化に使用されます。デフォルトは 15 です。 明 前のサーチ結果を取り、イベントタイプとして使用できる可能性がある有望なサーチのリストを生成します。デ フォルトで typelearner コマンドは、まず grouping-field の値によりイベントをグループ化し、次に含まれている キーワードに基づいて、それらのグループをさらに結合していきます。 例 例 1:自動的に (Splunk が) イベントタイプを探してサーチ結果に適用します ... | typelearner 関 連項目 typer Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、typelearner コマンドの使 用方法に関する質問と回答をご覧ください。 typer 概要 サーチ結果の eventtype を算出します 構文 typer 明 234 サーチ結果の、既知の event-type に一致する eventtype フィールドを算出します。 例 例 1:設定したイベントタイプの適用を Splunk に強制します (Splunk Web では、eventtype フィールドの参照時 に自動的にこの処理が行われます)。 ... | 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 概要 結果を、表形式から統計情報出力に似た形式に 換します。xyseries と逆の処理を行います。 構文 untable <x-field> <y-name-field> <y-data-field> 235 必要な引数 <x-field> 構文: <field> 明:X 軸として使用するフィールド <y-name-field> 構文: <field> 明:データシリーズのラベルとして使用する値を含むフィールド <y-data-field> 構文: <field> 明:グラフ化するデータを持つフィールド。 例 例 1:サーチ結果を再フォーマットします。 ... | timechart avg(delay) by host | untable _time host avg_delay 関 連項目 xyseries where 概要 結果をフィルタリングするために、eval 式を実行します。式の結果は論理値でなければなりません。 構文 where <eval-expression> 関数 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(), now(), null(), nullif(), pi(), pow(), random(), relative_time(), replace(), round(), rtrim(), searchmatch(), split(), sqrt(), strftime(), strptime(), substr(), time(), tonumber(), tostring(), trim(), typeof(), upper(), urldecode(), validate(). 各関数の 明と例については、「eval と where の関数」を参照してください。 明 コマンドは、eval 式を使ってサーチ結果をフィルタリングしています。また、評価が成功した (論理演算が 真の) 評価のみを保持しています。 where コマンドは、eval と同じ式構文を使用します。また、両方のコマンドが、引用符で まれた文字列をリテラ ルと解釈します。引用符で まれていない文字列はフィールドとして取り扱われます。このため、where を使っ て、search ではできない 2 つの異なるフィールドを比較することができます。 where 例 例 1:IP が一致するか、または指定したサブネット内に存在する「CheckPoint」イベントを返します。 host="CheckPoint" | where like(src, "10.9.165.%") OR cidrmatch("10.9.165.0/25", dst) 例 2:速度が 100 より大きい「physicsobjs」イベントを返します。 sourcetype=physicsjobs | where distance/time > 100 236 関 連項目 eval、search、regex Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、where コマンドの使用方 法に関する質問と回答をご覧ください。 x11 は、時間ベースのデータシリーズのシーズン的パターンを調査し、それを除外して実際の傾向を確認するため に役立ちます。このコマンドの目的は、trendline コマンドと似ていますが、より洗練されて業界に普及している X11 手法を採用しています。 x11 詳細は、『サーチマニュアル』の「Splunk による予測分析について」を参照してください。 概要 フィールド内の季節的 動を削除します。 構文 x11 [<type>] [<period>=<int>] (<fieldname>) [as <newname>] 必要な引数 <fieldname> 構文: <field> 明:シーズン的な傾向を計算するフィールド名。 オプション引数 <type> 構文: add() | mult() 明:計算する x11 のタイプを指定します (加法的または乗法的)。デフォルトは mult() です。 <period> 構文: <int> 明:データポイント数と相 的なデータの周期で、5 10000 の整数で表します。期間が 7 の場合、データは 7 データポイントの周期性があると予期します。指定しない場合は、自動的に周期が算出されます。周期が 5 未 の場合このアルゴリズムは機能しません。また、10000 を超えると、処理が極端に くなります。 <newname> 構文: <文字列> 明: x11 出力のフィールド名を指定します。指定しない場合、デフォルトは「<タイプ><期間>(<フィール ド名>)」になります。 例 例 1: ここでは、タイプにデフォルトの「mult」を、周期には 15 を使用します。 index=download | timechart span=1d count(file) as count | x11 mult15(count) 237 注意: ここでは span=1d なので、各データポイントが 1 日を表します。そのため、この例で周期は 15 日になり ます。 例 2:ここでは、タイプに「add」を、周期に 20 を指定します。 iindex=download | timechart span=1d count(file) as count | x11 add20(count) 関 連項目 predict、trendline Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、x11 コマンドの使用方法 に関する質問と回答をご覧ください。 xmlkv 概要 xml キーと値のペアを抽出します。 構文 xmlkv maxinputs=<int> 必要な引数 maxinputs 構文: maxinputs=<int> 明: 明 フォーム <foo>bar</foo> のキーと値のペアを探します。ここで、foo はキー、bar は _raw キーからの値を示しま す。 例 例 1:XML 形式データからフィールド/値のペアを抽出します。「xmlkv」を指定すると、XML タグ間の値を自動 抽出します。 ... | xmlkv 例 2:使用例 ... | xmlkv maxinputs=10000 関 連項目 extract、kvform、multikv、rex、xpath 238 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、xmlkv コマンドの使用方 法に関する質問と回答をご覧ください。 xmlunescape 概要 xml 文字のエスケープを解除します。 構文 xmlunescape maxinputs=<int> 必要な引数 maxinputs 構文: maxinputs=<int> 明: 明 エンティティ参照 (例:&、<、および >) のエスケープを解除して、 する元の文字 (例:& -> &) に しま す。 xml 例 例 1:すべての XML 文字のエスケープを解除します。 ... | xmlunescape Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、xmlunescape コマンドの 使用方法に関する質問と回答をご覧ください。 xpath 概要 field から xpath の値を抽出して、outfield 属性を設定します。 構文 xpath [outfield=<field>] <string:xpath> [field=<field>] [default=<string>] 必要な引数 xpath 構文: <文字列> 明: XPath 参照を指定します。 オプション引数 field 構文: field=<field> 明:参照する xpath 値を 索、抽出するフィールド。デフォルトは _raw です。 outfield 構文: outfield=<field> 明:xpath 値を書き込むフィールド。デフォルトは xpath です。 239 default 構文: default=<string> 明:xpath で参照されている属性が存在しない場合に、outfield に書き込む値を指定します。これが指定さ れていない場合、デフォルト値はありません。 明 outfield の値に、field に適用する xpath の値を設定します。 例 例 1:_raw XML から name 値を抽出します。値の例を以下に示します。 <foo> <bar name="spock"> </bar> </foo> sourcetype="xml" | xpath outfield=name "//bar/@name" 例 2:_raw XML イベントから、identity_id と instrument_id を抽出します。 <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 Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、xpath コマンドの使用方 法に関する質問と回答をご覧ください。 xyseries 概要 結果をグラフ化に適した形式に 換します。 構文 xyseries [grouped=<bool>] <x-field> <y-name-field> <y-data-field>...[sep=<string>] 必要な引数 240 <x-field> 構文: <field> 明:X 軸として使用するフィールド <y-name-field> 構文: <field> 明:データシリーズのラベルとして使用する値を含むフィールド <y-data-field> 構文: <field> | <field>, <field>, ... 明:グラフ化するデータを持つフィールド。 オプション引数 grouped 構文: grouped= true | false 明:真 (True) の場合、入力は <x-field> の値でソートされ、複数ファイル入力が可能です。デフォルトは偽 (false) です。 sep 構文: sep=<string> 明: 例 例 1:サーチ結果を再フォーマットします。 ... | xyseries delay host_type host 例 2: stats と eval を xyseries コマンドと組み合わせて、複数のデータシリーズのレポートを作成する方法につい ては、ここを参照してください。 関 連項目 untable Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、xyseries コマンドの使用 方法に関する質問と回答をご覧ください。 内 部サ ー チコマンド 内 部コマンドについて 内部サーチコマンドは、試験的なサーチコマンドです。今後のバージョンで削除されたり、更新されたり、別の機 能で再実装されたりする可能性があります。このようなコマンドは、サポート 象外となっています。 collapse collapse コマンドは実験的なコマンドで、Splunk はサポートしていません。 概要 複数ファイルの結果を、chunksize オプションで許可されているファイル数まで簡略化します。 構文 ... | collapse [chunksize=<num>] [force=<bool>] オプション引数 241 chunksize 構文: chunksize=<num> 明:結果ファイル数を制限します。デフォルトは、50000 です。 force 構文: force=<bool> 明:force=true の場合、結果全体がメモリー内に残され、結果が適切なチャンクファイルに再分割されま す。デフォルトは偽 (False) です。 明 collapse コマンドは、output* 演算子により自動的に起動されます。 例 例 1: 結果を簡略化します。 ... | collapse dispatch dispatch コマンドは不要になりました。すべての Splunk サーチがこのコマンドを使ったサーチとして実行されま す。詳細は、「search コマンド」を参照してください。 runshellscript runshellscript コマンドは内部コマンドで、スクリプト化したアラートの実行に用いられます。現在の所、Splunk はこのコマンドをサポートしていません。 概要 スクリプト化されたアラートを実行します。 構文 runshellscript <script-filename> <result-count> <search-terms> <search-string> <savedsearch-name> <description> <results-url> <deprecated-arg> <search-id> <results_file> 明 スクリプト化されたアラートの実行に用いられる内部コマンド。スクリプトファイル は、$SPLUNK_HOME/etc/system/bin/scripts または $SPLUNK_HOME/etc/apps/<app-name>/bin/scripts に保管する 必要があります。サーチ ID は、サーチ結果へのパスを作成するために用いられます。他のすべての引数は、スク リプトに次の方法で渡されます: 引数 明 $0 スクリプトのファイル名。 $1 返す結果またはイベント数。 $2 サーチ単語。 $3 完全修飾クエリー文字列。 $4 Splunk の保存 みサーチ名。 $5 明またはトリガー理由 (例:「イベント数が 1 を超えている」) $6 保存 みサーチ結果へのリンク。 $7 止 - 空の文字列引数。 $8 サーチ ID $9 結果ファイル results.csv へのパス (raw 結果を含む)。 242 詳細は、Splunk Community Wiki のアラートスクリプトに関するトラブルシューティングの記事と、『アラートマ ニュアル』の「スクリプトアラートの設定」を参照してください。 関 連項目 script Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、runshellscript コマンドの 使用方法に関する質問と回答をご覧ください。 tscollect tscollect コマンドは内部コマンドで、保存 みサーチ結果を tsidx フォーマットファイルにするために用いられま す。experimental コマンドは実験的なコマンドで、Splunk はサポートしていません。 コマンドはインデックスフィールドを使って、指定した名前空間内に時系列インデックス (tsidx) ファ イルを作成します。これらのファイルの結果テーブルは、すでにインデックスを作成したデータのサブセットにな ります。tstats コマンドを利用して、raw データの代わりにこれらの tsidx ファイルをサーチして、レポートを作 成することができます。インデックス全体のサブセットをサーチするため、サーチ処理を素早く完了することがで きます。 tscollect では、同じ名前空間内に複数の tsidx ファイルを作成することができます。現在の tsidx ファイルが大き くなりすぎたと判断されたら、新しい tsidx ファイルの作成が開始されます。 tscollect 概要 後ほど tstats コマンド で使用するために、結果を 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) 下のその名前のディレクトリに書き込まれます。これらの 名前空間は、新たなデータを追加するために、複数回書き込めます。名前空間が指定されていない場合、 ファイルはそのサーチのジョブディレクトリ内に書き込まれ、ジョブと同じだけ持続します。名前空間の場 所は、index.conf の tsidxStatsHomePath 属性で設定することもできます。 squashcase 構文: squashcase = true | false 明:field::value トークンを用語目 に配置する際に、大文字と小文字を区別するかどうかを指定します。イ ンデックスフィールド tsidx ファイルを Splunk と同 に作成するには、結果をすべて小文字に 換するように squashcase=true を設定します。デフォルトは偽 (false) です。 例 例 1:結果テーブルを名前空間 foo の tsidx ファイルに書き込みます。 ... | tscollect namespace=foo 243 例 2:メインインデックス内のイベントのフィールド foo の値を、job ディレクトリの tsidx ファイルに書き込みま す。 index=main | fields foo | tscollect 関 連項目 collect、stats、tstats Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、tscollect コマンドの使用 方法に関する質問と回答をご覧ください。 tstats tstats コマンドは内部コマンドで、tscollect コマンドで作成された tsidx ファイルの統計情報を算出するために用い られます。experimental コマンドは実験的なコマンドで、Splunk はサポートしていません。 巨大なデータセットのレポートを作成したい場合は、tscollect コマンドを使って、サーチ結果を特定の名前空間 (tscollect コマンドで作成) 内の tsidx ファイルに保存します。 次に tstats コマンドで、tsidx ファイルに要約されたデータの統計情報を算出します。raw データからイベントを 読み込むのではないため、サーチとレポートのパフォーマンスが大幅に向上します。tstats は stats と似たよう な動作を行いますが、主に次のような違いがあります。 このコマンドは生成プロセッサなので、サーチの先頭に指定する必要があります。 stats 関数の小規模なセットを使用します。 ターゲット tsidx ファイルまたは tscollect ジョブのジョブ ID の名前空間を指定する必要があります。 tstats は、標準の stats コマンドの機能をすべてサポートしている訳ではないため、結果を stats で使用するための prestats 形式で出力するオプションが用意されています。これにより、tstats の高速性と stats のすべての機能の両 方を活用することができます。prestats モードでの運用により、結果をプレビューすることもできるため、大きな データセットに する利用を強くお勧めします。 注意: prestats および append モード (prestats=t および append=t) を除き、このコマンドは生成プロセッサとし て動作するためサーチ内の最初のコマンドとして使用する必要があります。詳細は、以下の構文を参照してくださ い。 概要 tscollect を使って作成した tsidx ファイルに統計クエリーを実行します。 構文 | tstats [append=<bool>] [prestats=<bool>] <aggregate-opt>...FROM <namespace|tscollect-job-id> [WHERE <search_query>] [GROUPBY <field-list> [span=<timespan>] ] 必要な引数 aggregate-opt 構文: count|count(<field>)|sum(<field>)|sumsq(<field>)|distinct(<field>)|avg(<field>)|stdev(<field>)|<statsfn>(<field>) [AS <string>] 明:基本的なカウントの実行、フィールド値の取得、または関数の実行を行います。また、「AS」を使っ て結果の名前を 更することもできます。tstats で直接サポートされている機能はわずかですが、prestats オ プションを使って実行すると、<stats-fn> で stats の機能を利用することができます。 namespace 構文: <文字列> 明:$SPLUNK_DB/tsidxstats で、tsidx ファイルの場所を定義します。名前空間の場所は、index.conf の tsidxStatsHomePath 属性で設定することもできます。 tscollect-job-id 構文: <文字列> 明: tscollect サーチのジョブ ID。 244 オプション引数 append 構文: append=<bool> 明:prestats モード (prestats=t) の場合に、prestats の結果を任意の入力結果に追加する append=t を有効 にします。 prestats 構文: prestats=<bool> 明:tstats ではサポートされていない stats 関数を実行する場合に使用します (集合オプションとしては記載 されない)。真 (True) の場合、結果のプレビューも有効になります。詳細は、「stats、chart、および timechart の関数」を参照してください。デフォルトは偽 (false) です。 <field-list> 構文: <field>, <field>, ... 明:結果をグループ化するフィールドのリストを指定します。 where に よ る フ ィ ル タ リ ン グ 実行する任意の数の集合 (aggregate-opt) を指定できます。また、WHERE キーワードを使ってクエリーをフィル タリングすることができます。このクエリーは、サーチプロセッサ内で使用する標準のクエリーと似ています。 _time に よ る グ ル ー プ 化 任意の数の GROUPBY フィールドを指定できます。_time でグループ化する場合は、時間バケツでグループ化す るための期間を指定する必要があります。この期間は、「span='1hr'」や「'3d'」のような、Splunk で通常使用 する期間と似ています。 例 例 1:mydata 名前空間内のすべてのイベント数を取得します。 | tstats count FROM mydata 例 2:mydata 内の foo フィールドの平均を返します。bar は value2 で、baz の値は 6 以上になります。 | tstats avg(foo) FROM mydata WHERE bar=value2 baz>5 例 3: mydata 内のすべてのデータの、各日に分割したカウントを与えます。 | tstats count from mydata GROUPBY _time span=1d 例 4:prestats モードを使って、foo フィールドの中央値を計算します。 | tstats prestats=t median(foo) FROM mydata | stats median(foo) 例 5:prestats モードと append モードを使って、異なる名前空間内に存在する foo と bar の中央値を算出しま す。 | tstats prestats=t median(foo) from mydata | tstats prestats=t append=t median(bar) from my otherdata | stats median(foo) median(bar) 関 連項目 stats、tscollect Answers 何か質問がありますか?「Splunk Answers」から、Splunk コミュニティに寄せられた、tstats コマンドの使用方 法に関する質問と回答をご覧ください。 CLI でのサ ー チ CLI でのサ ー チについて 245 CLI でのサ ー チについて Splunk の CLI を使って、Splunk サーバー上でサーチをモニター、設定、実行することができます。ここでは、 CLI からのサーチ方法について 明していきます。 CLI へのアクセス方法とヘルプの参照方法については、『管理マニュアル』の「CLI について」を参照して ください。 サ ー チの CLI ヘルプ Splunk の CLI からは、履歴サーチとリアルタイムサーチの両方を実行できます。それぞれ、search または rtsearch コマンドを使用してください。役に立つサーチ関連の CLI ヘルプ項目を以下の表に示します。各項目の ヘルプを表示するには、CLI に以下のように入力します。 ./splunk help <object> オブジェクト 明 rtsearch リアルタイムサーチのパラメータと構文が表示されます。 search 履歴サーチのパラメータと構文が表示されます。 search-commands 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 チュートリアルの「サーチの開始」を参照してください。 すべてのサーチコマンドの一覧については、『サーチリファレンスマニュアル』の「すべてのサーチコマン ド」を参照してください。 サーチ言語とサーチコマンドのクイックリファレンスについては、『サーチリファレンスマニュアル』の 「サーチコマンドの早見表とサーチ言語クイックリファレンスカード」を参照してください。 サーチオブジェクトには、キーワードやサーチコマンドだけでなく、取得するイベントや生成する結果を指定する フィールドや修飾子も使用できます。 フィールドの詳細は、Splunk チュートリアルの「フィールドを使用したサーチ」を参照してください。 デフォルトのフィールドとその使用方法については、『ナレッジ管理マニュアル』の「デフォルトフィール 246 ドと内部フィールドの使用」を参照してください。 時間修飾子の詳細は、『サーチリファレンスマニュアル』の「サーチの時間修飾子」を参照してください。 サ ー チパラメ ー タ サーチパラメータは、サーチの実行方法やサーチ結果の表示方法を示します。これらのパラメータは省略すること ができます。論理値を取るパラメータには、否定 (偽) として {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 テーブル出力モードでヘッダーを表 示するかどうかを指定します。 latest_time <time-modifer> − サーチの終了時間の相 時間修飾 子。search の場合、これを指定し ないと、デフォルトの最後の時間 (またはデータ内の最後のイベント の時間) が使用されるため、「将来 の」イベントも含まれま す。rtsearch の場合このパラメー タは必須です。指定しない場合、リ アルタイムサーチを実行できませ ん。 max_time <数値> 0 サーチジョブを終了するまでの、 サーチジョブの実行時間 (秒)。0 を 指定すると、無期限になります。 maxout <数値> search の 場合 100 返すまたは stdout に出力する (イベ ントのエクスポート時) イベントの 最大数。最高で 10000 まで指定い できます。0 を指定すると、イベン ト数の出力制限はありません。 rtsearch の場合 0 output rawdata、table、csv、auto 非 換サー ジョブの表示方法を示します。 チの場合 rawdata。 換サーチ の場合 table。 preview <bool> T レポートサーチをプレビューする必 要があることを示します (計算され た結果として出力)。 timeout <数値> 0 サーチ実行後の存続時間。0 を指定 すると、実行後すぐにジョブがキャ ンセルされます。 uri [http|https]://name_of_server:management_port サーバー名と管理ポートを指定しま す。name_of_server には、Splunk サーバーの完全解決ドメイン名また は IP アドレスを指定できます。 デフォルトの URI 値は、Splunk 247 サーバーの web.conf に定義してい る mgmtHostPort の値になります。 詳細は、『管理マニュアル』のリ モート Splunk サーバーへのアクセ スと CLI の使用に関する記事を参照 してください。 wrap <bool> T 端末幅よりも長い行を折り返すかど うかを指定します。 例 他にも、CLI ヘルプにはさまざまな例が記載されています。 例 1:root セッションに一致する昨日のイベントを取得します。 ./splunk search "session root daysago=1" 例 2:detach を指定して、Web アクセスエラーに一致するイベントを取得します。 ./splunk search 'eventtype=webaccess error' -detach true 例 3:ウィンドウを指定して、リアルタイムサーチを実行します。 ./splunk rtsearch 'index=_internal' -earliest_time 'rt-30s' -latest_time 'rt+30s' 詳細は、『管理マニュアル』の「CLI でのリアルタイムサーチとレポート」を参照してください。 248