概要
- この記事ではSplunk 7.xを使っています
- annotationはSplunk 7系からの新機能だと思います
- 業務でも、Splunkをログに取り込んで分析することがあると思います
- Splunkでグラフなどで可視化する際に、例えばソフトウェアリリースのタイミングなどの情報をグラフにつける方法です
参考にしたサイト
- 以下のサイトの情報を参考に、Splunkのルックアップを使ってファイルからannotationをつける方法を整理しました。annotation全般については参考文献1と参考文献2が分かりやすいですが、実際にやったことは参考文献3をなぞっただけです。
- Splunk docs 参考文献1
- Splunk answers 参考文献2
- Splunk answers 参考文献3
やり方
- 参考文献3をマネして、annotationをつけたい時点のunixtimeとメッセージを書いたファイルを準備して、それを使っています。今回はソフトウェアリリースしたときのタグをSplunkにannotationしたいという状況を想定し、以下のようなファイルを準備しました。
$ cat note.csv
timestamp,tag
1564469657,v56
-
ルックアップについての公式ドキュメント を参考に "Upload the lookup table to Splunk Enterprise" -> "Define the lookup"まで済ませておく
クエリそのものではなく、ダッシュボードを構成するxmlを編集する必要があるので、コメント(annotation)をつけたいクエリをダッシュボードに保存しておきます(「名前をつけて保存」 > ダッシュボードパネル)
-
適当なモックデータを作るためのクエリ(ほぼ参考文献1そのまま)
- annotationしたい地点を含むように
gentimes
の範囲を指定しています
- annotationしたい地点を含むように
| gentimes start=7/26/2019, end=8/1/2019
| eval _time=starttime
| fields _time
| eval data=random()
| eval data=substr(data,1,2)
- このクエリをダッシュボードとして保存します。保存してから ダッシュボード > 編集 > ソースの編集 (XML)を選んでxmlを以下のように編集します。
- searchタグの部分を修正
<dashboard>
<label>sample_annotation</label>
<row>
<panel>
<chart>
<search>
<query>| gentimes start=7/26/2019, end=8/1/2019
| eval _time=starttime
| fields _time
| eval data=random()
| eval data=substr(data,1,2)</query>
<earliest>-15m</earliest>
<latest>now</latest>
<sampleRatio>1</sampleRatio>
</search>
<search type="annotation">
<query> | inputlookup note.csv
| eval _time = timestamp
| eval annotation_label = tag</query>
</search>
(option指定した行がずっと続くので中略)
</chart>
</panel>
</row>
</dashboard>