iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

Kibana3を使ってみる

ふと、ログデータを可視化してみたいと思いKibana3を導入してみまようと思い色々調べてみました。

Kibana3を使う準備

Fluentd + ElasticSearch + Kibana こんな構成が一般的みたいなので、それぞれインストールしていきます。

Fluentd

Fluentdですが、td-agentを導入する方法とgemで入れる方法があります。

yum install td-agent

または

curl -L http://toolbelt.treasuredata.com/sh/install-redhat.sh | sh

を試してみたのですが、私の環境ではrvmを使っていてtd-agentで利用されるruby環境がズレてしまってうまく起動しませんでした。

やり方は、あると思うのですがgemでインストールしてみます。

インストールできたらelasticsearchプラグインも入れておきます。

gem install fluentd

fluent-gem install fluent-plugin-elasticsearch

設定ファイルを書きます。起動時に設定ファイルのパスを指定すればどこに置いてもよいのですが、私はデフォルトで読まれるパスに置きました。

mkdir /etc/fluent

cd /etc/fluent

vi fluent.conf

<source>

type tail

format apache

path /var/log/httpd/access_log

tag apache.access

pos_file /tmp/apache.pos

</source>

<match apache.access>

type elasticsearch

include_tag_key true

tag_key @log_name

host localhost

port 9200

logstash_format true

logstash_prefix apache_access

flush_interval 10s

</match>

起動は、fluentdというコマンドがインストールされているのでそれを使います。

fluentd -d /tmp/fluentd.pid

設定ファイルを指定する場合は"-c"オプションでパスを指定できます。

これでfluentの設定は完了。

Elasticsearch

Elasticsearchを利用するのにJDKが必要になるのでまずはこちらをインストールします。

# install jdk

yum install java-1.7.0-openjdk.x86_64

次はElasticsearchをインストールします。

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

vi /etc/yum.repos.d/elasticsearch.repo

# 以下の内容を記載

[elasticsearch-1.2]

name=Elasticsearch repository for 1.2.x packages

baseurl=http://packages.elasticsearch.org/elasticsearch/1.2/centos

gpgcheck=1

gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch

enabled=1

# yumコマンドでインストール

yum install elasticsearch

設定ファイルの編集をします。

vi /etc/elasticsearch/elasticsearch.yml

この辺だけデフォルトの設定から変更しました。

path.data: /data

path.logs: /data/log/elasticsearch

起動します。

# chkconfig elasticsearch on

# service elasticsearch start

さきほどのfluentの設定でelasticsearchのつなぎ先を

host localhost

port 9200

としていますので設定を変更した場合や、fluentとelasticsearchを別のサーバーにのせている場合は変更してください。

Kibana3

最後にKibana3のインストールです。

wget http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip

unzip kibana-latest.zip

mv kibana-latest /data/

ln -s kibana-latest ./kibana

/dataに配置してシンボリックリンク作りました。(/dataにしているのはConohaで大きめに切られているパーティションだから。)

設定ですが、config.jsというファイルに記載されています。

ここだけ環境に合わせて変更します。

elasticsearch: "http://localhost:9200/es",

このパスでKibanaに接続するブラウザから接続できる必要があります。

elasticsearch: "http://{ドメイン名}/es",

とかにして私の環境では、nginxで以下のように設定しました。

location /kibana {

root /data/; #Kibanaを展開したディレクトリを指定

index index.html index.htm;

auth_basic 'closed site';

auth_basic_user_file /etc/nginx/.htpasswd;

}

location /es/ {

proxy_pass http://127.0.0.1:9200/;

}

はい、これでkibanaが使える環境ができました。

Kibanaの使い方はまたいじってみてから。

ダッシュボードの設定と可視化したいログ収集の設定をもう少しする必要があるかなと。