恥ずかしながらついちょっと前までgrepでコツコツとログを集計したりスクリプトで編集してcsv/tsv形式に出力したのをエクセルに貼り付けてグラフつくってたり。でももういい加減疲れた!ので Kibana を試してみた。
実行環境
MacにDocker入れて、その上で Kibana も Elasticsearch もコンテナで稼働。
- PC
- MacBook Air (13-inch, Early 2015)
- macOS High Sierra バージョン 10.13.3
- プロセッサ 1.6 GHz Intel Core i5
- メモリ 8 GB 1600 MHz DDR3
- Docker Version 18.03.0-ce-mac59 (23608)
- Elasticsearch 6.2.3(過去エントリ参照)
- Kibana 6.2.3
Kibana のセットアップ
現時点で最新のDockerイメージを使用してコンテナを実行。先に作成した Elasticsearch と繋げるために --net オプションで同じネットワークにぶら下げる。
$ docker run -dti -h kibana --name kibana -p 5601:5601 --net elasticnw docker.elastic.co/kibana/kibana:6.2.3 /bin/bash
実行したコンテナに attach して入り、kibana を実行(その前に Elasticsearch の起動も忘れずに)。
bash-4.2$ kibana
Index Pattern の作成
ひとしきり起動ログが落ち着いた頃にブラウザで http://localhost:5601 にアクセスすると Kibana のトップ画面が表示される。
左のサイドメニューから「Management」リンクを押下、さらに表示された画面中の「Index Patterns」リンクを押下。
Index Pattern 欄には先に投入したサンプルデータの nasa を指定、右の「 > Next step 」ボタンを押下。
Time filter field name にはプルダウンから @timestamp を指定、「 Create index pattern 」ボタンを押下。
これで Kibana に nasa の Index Pattern が設定された。
Visualize で棒グラフをつくってみる
とりあえず棒グラフでもつくってみようか、ということで左サイドメニューの「 Visualize 」リンクを押下、中央の青い「 Create a visualization 」ボタンを押下。
Select visualization type では Vertical Bar を選択
From a New Search, Select Index エリアで今回のデータである nasa をクリック。
初期状態では真っ白で何のデータも表示されないので、右上の期間指定メニューを押下。nasa に含まれるデータは 1995年7月・8月のデータなので「 Absolute 」を押下、
- From → 1995-07-01 00:00:00.000(年を1995 に書き換えるとカレンダーが更新されるので、7月1日を選択すると自動で 0時0分〜 になる)
- To → 1995-08-31 23:59:59.999(同様に年を 1995 を書き換え、カレンダーから 8月31日 を指定)
とする。最後に青い「 Go 」ボタンを押下。
なんか出てきたのはいいけど、なんだこれ、と思ったら棒グラフのX軸が未指定なのか。
X軸には日単位の表示を指定する。右にある Buckets にて X-Axis を押下、Aggregation から「 Date Histogram 」、Field に「 @timestamp 」、Interval に「 Daily 」を選択して、青い再生ボタン?を押下。
1995年7月分と8月分の、日毎のアクセス数の棒グラフが瞬時に出た。簡単だしデータ量のわりにえらい速いなおい。グラフの棒にマウスオーバーすると内容も表示される。
いままで費やしてた労力は一体なんだったのか。過去の自分に謝りたい。円グラフも同じ手順で作成できて上位/下位 n 件表示や sub-bucket を指定したドリルダウンなどもさくさくできる。楽ちんだし楽しい!