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の使い方はまたいじってみてから。
ダッシュボードの設定と可視化したいログ収集の設定をもう少しする必要があるかなと。