もふもふ技術部

CentOS 6.5 (Vagrant)に fluentd + elasticsearch + kibana をセットアップする


fluentd経由でmongoDBにログを突っ込んだりしているのですが、可視化したいなーっていう流れがあるので、最高にナウい感じの fluentd + elasticsearch + kibana をセットアップしてみました。

まずは試しなのでVagrantを使って仮想環境でセットアップしてみました。
kibanaってjsで動いてるのかー。

環境
Mac OSX 10.9
ゲストOS CentOS 6.5

Elasticsearch

Elasticsearchは言わずと知れた全文検索エンジンですね。国産全文検索エンジンにGroongaというものがありますが、世界的にはElasticsearchがナウいとのことです。

yumからインストールしたいので、リポジトリを追加します。

$ sudo vim /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-1.1]
name=Elasticsearch repository for 1.1.x packages
baseurl=http://packages.elasticsearch.org/elasticsearch/1.1/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

インストールします。javaが必要なので同時にインストールしますね。

$ sudo yum install elasticsearch java-1.7.0-openjdk-devel.x86_64

# 起動、自動起動ON
$ sudo service elasticsearch start
$ sudo chkconfig elastic search on

curl叩いてステータス200のjsonが返ってくればインストール成功。

$ curl localhost:9200
{
  "status" : 200,
  "name" : "Hugh Jones",
  "version" : {
    "number" : "1.1.2",
    "build_hash" : "e511f7b28b77c4d99175905fac65bffbf4c80cf7",
    "build_timestamp" : "2014-05-22T12:27:39Z",
    "build_snapshot" : false,
    "lucene_version" : "4.7"
  },
  "tagline" : "You Know, for Search"
}

kibana

つづいてkibanaをインストールします。kibanaはjsで動いているWEBアプリケーションなので、今回は既に動いていたのでapache上で動かすことにします。

ダウンロードしてapache公開ディレクトリに設置。

$ curl -L -O https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz
$ tar zxvf kibana-3.1.0.tar.gz
$ mv kibana-3.1.0 /var/www/html/kibana

elasticsearchにアクセスするアドレスを設定。クライアントのブラウザから見えるアドレスでないければならないので、通常はグローバルIPで指定することになると思います。今回はVagrantなので、クライアントからの19200番を9200番に転送してるので下記のような設定。

$ vim config.js

elasticsearch: "http://localhost:19200”,

あとiptablesなどのファイアウォールで9200番を通すのを忘れずに。

kibanaにアクセスしてみます。

http://localhost:10080/kibana

アドレス指定がうまくいってないと下記のようなエラーが出ます。

Error Could not contact Elasticsearch at http://localhost:9200. Please ensure that Elasticsearch is reachable from your system.

スクリーンショット 2014-08-26 17.11.45

うまくいくとこう。

スクリーンショット 2014-08-26 17.31.01

fluentd

インストールは以前にやっているので割愛。
fluentdでapacheログを収集する

elasticsearchに流し込む用のpluginをインストールします。

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

エラーが発生してしまった。下記エントリによると、gccとlibcurl-develがいるっぽい。
http://qiita.com/tokida/items/2aa7dae82aa969f10420


Building native extensions.  This could take a while...
ERROR:  Error installing fluent-plugin-elasticsearch:
    ERROR: Failed to build gem native extension.

インストールして再度やりなおし。今度はうまくいった。

$ sudo yum install gcc libcurl-devel
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch

td-agentの設定ファイルに追記。
elasticsearchに流し込むだけならstoreの後者だけでいいんですが、mongo転送もいかしておきたかったので、type copyを使って両方処理させてます。

これで再度kibanaを開いて、Sample Dashboard をクリックするとこのように表示されました!できたあああ!

スクリーンショット 2014-08-26 18.13.53

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。