kidoOooOoooOOom

IT系で開発やってます

fluentdをインストールしてちょっと触ってみる

fluentdは ruby 1.9以上じゃないと動かないのでインストール。今回はまっさらな環境(CentOS 5.4)にruby1.9.3コンパイルしてインストールする。

wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
tar xvfz ruby-1.9.3-p0.tar.gz
cd ruby-1.9.3-p0
./configure

./configureで、Cのコンパイラが無いというエラーが出た。gccを入れる。

yum install gcc

これで ./cofigureが成功するので makeする。

make && make install

次に、gemで fluentdを入れようとすると次のようなエラーが発生。
「It seems your ruby installation is missing psych (for YAML output)」

とりあえずググって解決策を探し、yumで以下を入れてみる。

yum install zlib-devel

これでも警告が消えないのでyamlを入れる。

wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
tar -zxvf yaml-0.1.4.tar.gz
cd yaml-0.1.4
./configure
make;make install

rubyをもっかいmake

cd ruby-1.9.3-p0
make clean
./configure
make
make install

これでようやっとgemが動くので fluentdをインスコ

gem install fluentd
fluentd --setup /opt/fluentd

これでfluent.confファイルができるので編集していく。

【追記】
apacheが動いているサーバで fluentdを実際に動かしてみる。
とりあえずapacheaccess_logを受け取って、指定したflunetdフォルダに出力する。

まずは、 access_logをtailして locahostに tcpで渡す用のconfファイルを作成。fluent_apache.confとする。

<source>
  type tail
  path /usr/local/apache/logs/access_log
  format apache
  tag apache.access
</source>
 
<match apache.access>
  type tcp
  host localhost
</match>

次に、tcpaccess_logを受け取って、fluetndフォルダに出力する用のconfファイルを作成。 fluent_aggre.confとする。

<source>
  type tcp
</source>
 
<match apache.access>
  type file
  path /opt/fluentd/log/access_log
</match>

fluentdをそれぞれ起動。

fluentd -c fluent_apache.conf &
fluentd -c fluent_aggre.conf &

これで access_logの内容が fluent_aggre.confに指定したファイルにも出力される。