第2回elasticsearch勉強会でKibanaの発表をしてきました #elasticsearchjp

2013年11月12日にリクルートテクノロジーズで開催された「第2回 ElasticSearch勉強会」で「Kibana入門」というタイトルで発表してきました。 社外で発表をするのは初めてだったのでどんな雰囲気になるか不安でしたが、色々質問していただけて安心しました。懇親会でも話しかけていただけてありがとうございました。

長さの関係で発表資料に書かなかったことをいくつかこちらに書いておきます。

クエリのピン止め

クエリは名前をつけてピン止めすることができます。ヒストグラムパネルやテーブルパネルはグラフに使用するクエリをすべてのクエリ、ピン止めしたクエリ、ピン止めしていないクエリ、選択したクエリから選べますのでパネルごとに異なるクエリを指定したい時に便利になります。

f:id:y_310:20131116223540p:plain

f:id:y_310:20131116223838p:plain

f:id:y_310:20131116224250p:plain

ヒストグラムの一部を拡大

画面上特にヒントがないので意外と気づきづらいですが、ヒストグラムはグラフ上でドラッグすることで選択した範囲を拡大できます。

設定の保存場所

資料ではelasticsearchに保存する場合のみ記載しましたが、その他にjsonファイルとしてエクスポートする方法と、ブラウザのLocal Storageに保存する方法があります。ただしLocal Storageは"Set as my home"つ まり自分のデフォルトダッシュボードとして1件しか保存できません。 またデータのロードについては、elasticsearch、ファイル以外にgistからURLを指定して読み込む方法もあります。これによってApache用のダッシュボード等一般的な設定についてはオープンに共有していくことも可能です。

f:id:y_310:20131116224847p:plain

logstash形式ではないログを表示する

fluent-plugin-elasticsearchなどでログをelasticsearchに入れると、インデックス名がlogstash-YYYY.MM.DD、各ドキュメントは必ず@timestampというフィールドを持つというデータが作られます。 しかしこの形式はKibanaにとっては必須ではありません。インデックス名に日付が入っていることでKibanaは自動的に過去のインデックスに順番にクエリを投げていって結果を集約してくれますが、1つのインデックスにすべてのデータが入っている場合など、そういった挙動を必要としない場合は任意のインデックス名を指定することができます。 また@timestampというフィールドについても名前はKibanaの設定で変更できますし、時刻フィールドが存在しなくてもfacetを使った円グラフ等の表示は可能です。 とは言え、デフォルトの設定値は上記のようなlogstash形式になっているので特に事情がない場合はそれに従うのが良いでしょう。

最後に

今回の発表で、現時点のKibanaで機能的にできることは概ね紹介できたかと思っています。あとはこれらの機能をどのように実際のユースケースに応用していくかというのが今後の課題になるかと思いますので、利用事例を公開してくださる方が増えるのを楽しみにしています。