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を実際に動かしてみる。
とりあえずapacheのaccess_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>
次に、tcpでaccess_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に指定したファイルにも出力される。