なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

Kibanaって何よ、って話 - Kibanaを立ててみた

外から見たKibana

www.elastic.co

があっさりとしていますが、要はオープンソースのログデータ解析/可視化ツールです。基本的に、リアルタイム検索エンジン「Elasticsearch」とセットで使われます。


独自のNode.js Webサーバーも付いている、ということで、別途Webサーバーを立てて設定、といった手間はないのがお手軽です。


特に時間軸のログの分析・可視化に強い印象です。

構造から見たKibana

KibanaはあくまでUI部分であり、表示の元となっているデータは、同社のElasticsearchに溜め込んだデータ(インデックス)となります。


Elasticsearch自身は、Restful APIと多用な言語に対応したライブラリを提供し、Apache Luceneをベースとした高速でスケーラブルな検索・分析プラットフォームです。


Elasticsearchにデータを溜め込むところも、APIとライブラリを経由しますが、それに特化したエージェントプログラムを使うことが一般的*1であり、ElasticsearchとKibanaの開発元が提供するLogstashや、Elasticsearch同様のデータ検索・分析基盤を提供するTresure dataが提供するOSSであるfruentdなどを使います。


RDBMS脳からすると、
「ElasticsearchがDB本体で、KibanaはBI/OLAPツールのフロント、Logstash/fluentdはリアルタイムで動くETL」
くらいのイメージで良いかと思います。


Kibanaと自分

Kibanaというプロダクトは、2013年頃よりOSSとして開発、その開発者が後Elastic社に入社、といった経緯を辿っていますが、私がKibanaについて認知したのは2016年後半くらいからです。それまで、私の中では「存在していなかったもの」扱いですね。


Kibanaはログ分析・解析と同時に、サーバーリソースモニタリングにも使われるのですが、当初はそのサーバーモニタリングの観点でしか見てなかったので、正直、「(黒背景時代の)見た目カッコイイ」以外に、「これまであったCactiやZabbixと何が違うん?」という印象しか持っていませんでした。特にこのところはAWSばかり触っていることもあって、リソースモニタリングだけなら標準でセットアップ不要のCloudwatchがついてきますので、CactiやZabbixすら立てる必要がないわけで、尚更、その必要性がピンと来ないわけです。


ログ解析~可視化、という観点でも、RDBMS脳なので、「先にある程度集計した数値データをグラフにするだけならなんでも同じなのに、なんでKibanaそんなに持ち上げてるん?」という印象でした。


いや、まだその印象が拭いきれていないのですが、1つ意識が変わったことは、「(集計済)数値をそのままグラフにするだけなら、めんどくさいだけ。寧ろ未加工のデータの可視化にこそ本領を発揮するもの」ということです。


そしてそれは、自分が現在本業としているRDBMSが比較的苦手(集計・分析は関数等で簡単にできなくはないけど処理が重い)としている部分であり、RDBMSとElasticsearch/Kibanaは補完関係にある、ともいえます。


そんな感覚を持ちつつ、AWSが割と早い時期から「Amazon Elasticsearch Service(Amazon ES)」としてをKibanaとセットで提供していることへ関心が強くなったこともあり、今回、Kibanaを触ってみようと思った次第です。


Kibanaを取り巻く環境

Kibanaにかぎらずelasticの製品は公式ドキュメントがすべて英語ということで、翻訳に頼るか、先人(ブログ)に頼る事になりますが、ググってヒットする情報にバージョンが書いてないことが多く、プロダクトの進化が早いこともあって、割りと古い情報が多いです。


黒い背景のグラフでかっこいい感じの画面が、Kibana v3系でしょうか。その後Kibana4系でヘッダ部に黒を残しその他白背景、5系でほぼ真っ白になった感じですので、1つの目安になるかと思います。*2


それにしても、公式ドキュメントが英語のみというのはツライ。
書籍も日本語のものは、2014年3月と古い

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

が1冊あるだけ、あとはムックでですね。後者の方が、今回のコンセプトにはかなり近いですが、これも2014年8月。。。


フォーラムに日本語専用の板があるので、こちらを有効活用しましょう。
具体的に行き詰まっているところを示せば、結構な確率で回答していただけるようです。


そういえば、10年くらい前、ElasticsearchのベースになっているApache Luceneを触る事になった際、日本語書籍は

Apache Lucene 入門 ~Java・オープンソース・全文検索システムの構築

Apache Lucene 入門 ~Java・オープンソース・全文検索システムの構築

の1冊しかなかったなー。当時扱ったバージョンとそんなに開きがなかったこともあって、めっちゃ読み込んだ思い出。


Elasticsearh&Kibana、5系以降で日本語の書籍出ないかなぁ。。。
本じゃなくてもいいけど、日本語で、割と深いところまで言及している、まとまった資料が欲しい。。。


Google翻訳に助けてもらいながら公式ドキュメントを読み進めていけばなんとかなるものの、やっぱりネイティブな言語で読めるってのは色々とラクだよね。


といった感じでグダる話は終わりにし、次回から、具体的に環境を作っていきます。

*1:エージェントの性能が要件を満たせない場合、独自に開発することも可

*2:デフォルトが変わった、というだけです。v5.5で昔ながらの黒画面を使いたい場合、既存のダッシュボードであれば、dashboard > 個別のダッシュボード選択 > Edit > Option > Use dark themeをONとし、新規ダッシュボードすべてに適用したいのであれば、Management > Advanced Settings > dashboard:defaultDarkTheme をTrueにします。