Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

データ可視化に便利なkibanaは、elasticsearchのsiteプラグインとして構成すると便利 #fluentd

Fluentdなどから収集したメッセージをelasticsearchへ格納してKibanaで可視化するソリューションは素晴らしく、とても人気があります。次の画像のように見栄えが良いことも特徴です。

f:id:yoshi-ken:20140930101026p:plain

このダッシュボードアプリであるKibanaはJavaScriptアプリケーションです。そのため静的ファイルを配置すればどこでも動きます。
しかしそれだけのためにApacheやNginxなどのWEBサーバを新たに起ち上げるのは手間ですよね。
実は新たに起ち上げない方法もあるのです。こんな時に役立つTipsを紹介します。

elasticsearchのsiteプラグイン

siteプラグインは、ウェブベースのインターフェースを提供するものです。
elasticsearchの挙動へ変更を加えるものではないため、サービス停止(再起動)を行わずにインストール・アップデート・アンインストールができます。
モニタリングや管理のための画面を提供する用途で使われており、次のようなプラグインが有名です。

  • Marvel Plugin
  • Inquisitor Plugin
  • Elasticsearch HQ Plugin
  • Head Plugin

それぞれのsiteプラグインについては次のサイトの「Site Plugins.」に用途が記載されています。
Elasticsearch プラグイン — Hello! Elasticsearch. — Medium

Kibanaをsiteプラグインとしてインストール

それでは早速、Kibanaをelasticsearchへ、無停止でsiteプラグインとしてインストールしてみましょう。

# 安定版としてリリースされた最新版のKibanaをインストールするコマンド
$ cd /usr/share/elasticsearch
$ sudo bin/plugin -url http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip -install elasticsearch/kibana3
-> Installing elasticsearch/kibana3...
Trying http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip...
Downloading ..................................................DONE
Installed elasticsearch/kibana3 into /usr/share/elasticsearch/plugins/kibana3
Identified as a _site plugin, moving to _site structure ...

なお、url引数にダウンロード先を指定しないと、次のURLからダウンロードできるGitHubのmasterブランチのファイル群が利用されます。

まれにmasterブランチでリグレッションや不具合が起きていることがあります。
そのため、ここでは上記コマンド例のように、明示的に安定版としてリリースされたファイルを指定すると良いでしょう。

もしバージョンを固定する際はKibanaのダウンロードページを参考に、次のように指定します。

動作確認

次のURLを、elasticsearchが動くサーバのIPアドレスに書き換えてアクセスしてみましょう。

# スタートページ
# なお、url引数無しにインストールした場合は、ファイルパスが次の通り変更となります
# _plugin/kibana3/src/index.html
http://サーバのIPアドレス:9200/_plugin/kibana3/index.html

# Fluentdからlogstash形式のインデックス名で流し込んでいる場合
http://サーバのIPアドレス:9200/_plugin/kibana3/index.html#/dashboard/file/logstash.json

Logstash形式とは、インデックス名をlogstash-YYYY.MM.DDと動的に命名する形式です。
もしFluentdの設定にてlogstash_prefixをカスタマイズしている場合には、Kibana画面右上の歯車アイコンを押すと開く画面からインデックス名の設定のカスタマイズを行いましょう。

まとめ

Kibanaの静的ファイルをelasticsearchの上にホストすることで、新たにWEBサーバを構築・管理しなくてよくなります。
特に1台構成の開発環境などでは構成がシンプルになるので便利なのではないでしょうか!

参考サイト