2014年2月6日木曜日

Kibanaってなんじゃ?(kibana3 + elasticsearch + fluentd)

ずんぶん前にKibanaの記事を書きましたが、時がたちKibana3がとても感じがよいと巷で評判なので、再入門してみます。

インデックスサーバー側


準備

インデックスサーバー側のポートは80,22の他に、fluent用に9200番ポートを開けておきます。
また、インデックスは最終的に大きくなるので、容量の大きなストレージに入れておきます。

# yum install xfsprogs httpd java-1.7.0-openjdk -y
# mkfs.xfs /dev/xvdf
# mount -t xfs /dev/xvdf /mnt/ebs/0


Kibana3のインストール

Kibanaはv3になってから、rubyではなくhtmlになりました。DocumentRoot下に置いてhttpdを起動するだけでOKです。

# cd /var/www/
# curl -OL http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip
# unzip kibana-latest.zip
# mv html html.org
# mv kibana-latest html
# /etc/init.d/httpd start


ElasticSearchのインストール

# cd /mnt/ebs/0/
# curl -OL https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.11.tar.gz
# tar xzvf elasticsearch-0.90.11.tar.gz
# cd elasticsearch-0.90.11/
# ./bin/elasticsearch start

これで、インデックスサーバー側は準備ができました。



ログ送信サーバー側


apacheのログを送信するとして、ここではfluentdの設定はin:tailとout:elasticsearchプラグインを使います。

# yum install td-agent -y
# vim /etc/td-agent/td-agent.conf
<source>
  type tail
  format apache2
  path /var/log/httpd/access_log
  pos_file /tmp/access.log.pos
  tag server1.apache.access
</source>

<match server1.apache.access>
  type_name apache
  type elasticsearch
  include_tag_key true
  tag_key @log_name
  host XXX.XXX.XXX.XXX
  port 9200
  logstash_format true
  flush_interval 10s
</match>


# /etc/init.d/td-agent start

これでログの送信設定は完了です。



確認



ここまで設定できたらkibanaの画面を見てみます。
これがデフォルトのトップ画面です。
右側の[Logstash Dashboard]というリンクをクリックすると、ダッシュボード画面に遷移します。




ダッシュボードでは、fluentdから送られてきたログがひな形のダッシュボードに表示されていることがわかります。





クエリの追加

クエリフィールドはフィールドの「+」ボタンでいくつも登録できます。
クエリの書式はluceneの書式が基本となっているようです。




パネルの追加

ダッシュボードはグリッド上にできており、基本的に行(ROW)にパネルを追加していきます。
パネルはひとつまたは複数のクエリを使用します。

ROWにある「Add Panel」ボタンでパネルを追加します。




パネル追加画面では、パネルのタイプや使用するクエリや、その他パネル固有のパラメータを設定します。



いくつかのクエリとパネルを組み合わせて目的に会ったダッシュボードを造ります。



作成したら、名前をつけてダッシュボードを保存することで、リロードしても保持されるようになります。



以前と比べてかなりいろいろなデータを表示できるようになってきました。
細かいところはまた今度。

以上です。