Fluentd
Elasticsearch
kibana3

Kibana3を環境構築だけで終わらせない(前編)

More than 5 years have passed since last update.


まえがき

先日、ElasticSearch勉強会に参加して刺激をうけたので、自分でもなにかやってみようと思い、

勉強会でも少し触れられたり、Rebuildでも話題に出ていた、Kibana3について調べてみました。

環境構築から一歩踏み出して、実際に使うときに知っておきたいと思ったことを書いてみます。

Kibana3はおろか、ElasticSearchfluentdもあまり使ったことがないので、内容に間違いなどあれば指摘していただけるとうれしいです。


Kibana3の環境構築と前提知識

環境構築については、すでに手順を公開しているかたがいるので、

今回は下記の記事を参考に環境構築しました。

Kibana3 + Elasticsearch + Fluentd を試した

OSはこの記事とは違って、CentOS6.4を使っていますが、基本的にはこの記事のとおりに進められました。

少し違うのは、RH系OSなのでtd-agentのインストールにはyum、ElasticSearchにはrpmを使ったことと、

fluentdのプラグインが入っていなかったので、td-agentインストール後、以下のコマンドでfluentd-plugin-elasticsearchをインストールしたことぐらいでしょうか。

 /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch

また、もともとSolrなどを使っているかたは問題ないかもしれませんが、

私のようにElasticSearchとSolrの関係性を勉強会で始めて知ったという人には、

ElasticSearchやKibana3を使うにあたり、いくつかしっくりこない用語が出てくるかもしれません。

そういった場合は、ElasticSearch勉強会の主催、johtaniさんの以下の記事からリンクされている、

「ElasticSearch入門」のスライドを一読することをおすすめします。

第1回ElasticSearch勉強会を開催しました! #elasticsearchjp

スライド中の「本日の要点」は必読として、それ以外にもElasticSearchにおける、

「インデックス」、「タイプ」、「ドキュメント」のイメージをつかんでおくとよいと思います。


環境構築その後の一歩

環境構築ができた時点でApacheのログがfluentd経由でElasticSearchに投入され、

それをKibana3でざくざくと時系列やちょっとした条件で切り刻みながらデータを眺めることができます。

この時点で相当面白いプロダクトなのですが、ここで終わってしまってはもったいないと思います。


fluentd以外から投入されたデータを見てみる

もしかしたら、全部fluentd経由でデータを投入する方が筋がいいのかもしれませんが、

私はあまりfluentdを使い込んでいないので、ここではfluentdを使わずにElasticSearchへデータを投入してみます。

以降、ElasticSearchはESと略することにします。

ESにデータを投入するには、ESが用意しているREST APIを使います。

もちろん、データ投入以外にも設定変更など様々な操作がほとんどREST APIで行えるようですが、

それはさておき、データを投入してみましょう。

データ投入には、Index APIを使用します。

以下はサンプルを少し改変したものです。

curl -XPOST 'http://localhost:9200/index01/type01/' -d '{

"user" : "taro",
"@timestamp" : "2013-09-10T21:00:00+0900",
"action" : "login"
}'

IDは自動生成にしたいので、HTTPメソッドをPOSTに変更しています。

このデータは、「ユーザーtaroが2013/09/10 21:00:00にloginという行動をした」

というようなログをイメージしています。

@timestampについては、私が記事を書いた日時やタイムゾーンにあわせていますので、

お使いの環境や日時にあわせて変更してください。

データ投入を楽にするスクリプトをお好きな言語でつくってしまってもよいと思います。

スクリプトを作り終わったら、またこの記事に戻ってきてくださいね。


投入したデータを見てみる

さて、データ投入もできたところで、今度はそのデータを参照してみます。

Kibana3のトップページに「Sample Dashboard」というリンクがありますので、そこからダッシュボードを表示しましょう。

このダッシュボードには、すべてのインデックスのデータが表示されています。

きっと表示したばかりの状態では、Document typesという円グラフのほとんどが、

「apache」タイプのデータになっていると思いますが、円グラフの右側にある、

Term、Count、Actionというヘッダーを持つテーブルからTermが「type01」になっているものを見つけ出し、

同じ行のActionの虫眼鏡アイコンをクリックしてみましょう。

データが「type01」のもので絞り込まれ、円グラフも100%「type01」になると思います。

これだけではどんなデータが入っているのかがわからないので、今度は円グラフの下にある、

「Fields」という項目にある「user」、「@timestamp」、「action」の3つにチェックを入れてみます。

こうすると、先ほど登録した「taroがloginした」というデータが見えるようになると思います。

ここまでできたら、先ほどのデータ投入コマンドの、ユーザー名やタイムスタンプ、

アクションなどを変更し、いろいろなデータを投入したり、そのデータを見たりしてみましょう。

URLの「type01」を「type02」のように変えてみるのもいいと思います。


次回

長くなってしまったのでいったんここまでにして、

次回はダッシュボードのカスタマイズについて書いてみるつもりです。

後編に続きます。