ssd@秋葉原 小竹lt 20141111
TRANSCRIPT
• splunk>appsには、メーカーサポートは受けられないが役立
つappが割とたくさんあります。
• 特定のデータを取り込むときに役立つappがメジャーなイ
メージですが、今回は、主に「検索」自体に役立つappを1つ
紹介します。
• appsの他に、ダッシュボードの構築テクニックも1つ紹介し
ます。
はじめに
2
• https://apps.splunk.com/app/1645
• timechartグラフを、指定した時間範囲で重ね合わせる
「カスタムコマンド」
• Syntax… | timechart span=1h count | timewrap <時間範囲識別子> series=<要素>
• 時間範囲識別子:– m : 月– d : 日– h : 時
• 要素:– relative : 相対的な名称– short : 短縮した名称– exact : 特定の時間が分かる名称
Timewrap
3
… earliest=@h | timechart bins=500 sum(bytes) as "通信量" | join _time [search <省略> earliest=-1h@h latest=@h | timechart bins=500 sum(bytes) as "通信量_1時間前" | eval _time=_time+(3600*1)] | join _time [search <省略> earliest=-2h@h latest=-1h@h | timechart bins=500 sum(bytes) as "通信量_2時間前" | eval _time=_time+(3600*2)]
• 単位時間(_time)をキーとしてjoinコマンドでつなげる• Subsearchの中身は、重ね合わせたい時間の検索+最新の時刻との差分を計算
• ダッシュボードで時間をいじれなくなる!!
timewrap
7
• OR を書かなくてもいいようにする• より具体的には、カンマ「,」区切りで書けばOR条件で検索する
仕組みを実装する
• ポイント
①テキストフォームにトークンオプション記載
②サーチ文字列でカンマ毎にイベント分割
テキストフォームの工夫
11
• テキストフォームにトークンオプション記載
• clientip="10.10.10.10,11.11.11.11,12.12.12.12"
• というような条件を、サーチ文字列に渡せるように記載する。
テキストフォームの工夫
12
• サーチ文字列では、テキストフォームの中身を$<
トークン名>$として受け取れます
• clientip="10.10.10.10,11.11.11.11,12.12.12.1
2"
• というようなトークンが渡されるということは、実
際には以下のような検索が実行されることを意味し
ます。
• ダッシュボードに指定するサーチ文字列… $field2$ | timechart xxx
• 実際に実行される検索… clientip="10.10.10.10,11.11.11.11,12.12.12.12"
| timechart xxx
テキストフォームの工夫
13
• | stats count | eval $field2$ | makemv delim=","
clientip | mvexpand clientip | table clientip
• というサーチ文字列でトークンを受け取ると、カンマ毎にイベントを分割してくれます。
• 具体的には、上記の部分で、• clientip="10.10.10.10,11.11.11.11,12.12.12.12"
というトークンを
– clientip="10.10.10.10" OR clientip="11.11.11.11"
OR clientip=" 12.12.12.12"
という条件に変換してくれます。
テキストフォームの工夫
14