Ubuntu 14.04 LTS でNginx + Fluentd + Easticsearch + Kibana を試してみた
1.はじめに
Ubuntu 14.04 LTSで、Kibanaの実行WebサーバをNginxとした、Nginxのアクセスログ可視化環境を試してみました。
ポイントとしては、Aptリポジトリには、FluetndのパッケージがUbuntu 10.04用と12.04用のものしかありません。そこで、gemパッケージマネージャを用いてFluentdをインストールしました。
- 「debパッケージからFluentdをインストールする」より抜粋
現在、"Ubuntu 12.04 LTS / Precise" と “Ubuntu 10.04 LTS / Lucid” がサポートされています。
<Kibana実行画面>
なお、アクセスログを取得しているNginxは、Kibanaを表示しているNginxのアクセスログです。つまり、Kibanaを操作する度にアクセスログが記録されます。
2.方法
下記の参考サイトを参照しながら、構築しました。各サイトを執筆された方、ありがとうございました。
<参考サイト>
1. Ruby GemからFluentdをインストールする
2. Fluentd + ElasticSearch + Kibana3で簡単に様々なログを可視化・解析する
2.1 前提
- マシンはVirtualBoxの仮想マシン1台のみ
- OSはUbuntu 14.04 Desktop
(bashはアップデート済み。関係ないけど…。) - Nginxはapt-getでインストール済み
- 全作業はrootで実施
2.2 作業時のポイント
(1) Fluentd実行ディレクトリのセットアップ
(2) 不足パッケージ
(3) Fluentd実行シェル
2.2(1) Fluentd実行ディレクトリのセットアップ
実行ディレクトリのセットアップは、Fluentd公式サイトのインストール手順にある通りです。ポイントとしては、1台のマシンでFluentdの送信側・受信側を構成する点です。具体的には、下記のように同一ディレクトリに2つのFluentd実行ディレクトリをセットアップしました。
# tree fluentd/
fluentd
|-- fluent.conf
|-- fluentd.pid
|-- log
| |-- fluentd.log
|-- plugin
|-- run_fluentd.sh
2 directories, 4 files
# tree fluentdRecv/
fluentdRecv/
|-- fluent.conf
|-- fluentd.pid
|-- log
| |-- fluentd.log
|-- plugin
|-- run_fluentd.sh
2 directories, 4 files
2.2(2) 不足パッケージ
「mkmf」(Fluentdインストール時)および「curl-lib」(FluentdのElasticsearchプラグインインストール時)が不足していました。不足は、gemコマンドによりパッケージをインストールする際に不足エラーメッセージが出力されます。mkmfおよびcurl-libは、OS側でapt-get installによりパッケージ追加を行って下さい。
2.2(3) Fluentd実行シェル
最後は、Fluentdの実行シェルです。これは、fluentdコマンドのヘルプを見れば誰でも作れる物で恐縮ですが、こうやって組んだよ、というサンプルとして掲載しておきます。(備忘録用)
<run_fluentd.sh>
#! /bin/sh
fluentd -d fluentd.pid -c ./fluent.conf -o ./log/fluentd.log
fluent.confについては、送信側・受信側それぞれについて、参考サイト2をご参照下さい。また、ログ出力先として、Fluentd実行ディレクトリ内にlogディレクトリを作成し、そこへ出力するようにしました。
3.Kibana実行
下記のコマンドで、各プロセスを実行しました。
# /opt/elasticsearch/elasticsearch -d
# ./run_fluentd.sh ←各実行ディレクトリで実行
# service nginx start
あとは、http://localhost/kibana をブラウザで参照すればOKです。なお、小ネタとして下記をメモしておきます。
- Elasticsearchは、/opt/elasticsearchへインストール
- Kibanaは、/opt/kibanaへインストール
- KibanaをNginxのコンテンツディレクトリへ入れるため、/opt/kibanaのシンボリックリンクを/usr/share/nginx/htmlに作成