highlight js

2013年4月8日月曜日

AmzonLinuxにfluentdをinstallしたったメモ。


以下、id-agentとfluentd(fluentd-0.10.33)をinstallした時の手順メモ。

fluentd入れたあとで、td-agentの存在に気がついた。。。

td-agentとは、fluentdの安定稼働版。。らしい。
Ruby1.8*でも動作。

------------------------------------------------

fluentd install

sudo yum install ruby19-devel rubygems19-devel gcc make
sudo gem1.9 install rdoc
sudo gem1.9 install fluentd
nginxのLogFormatをApacheのフォーマットと合わせる $ sudo vim /etc/nginx/nginx.conf
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent"'; 
2013/04時点では、 msgpack-0.5.4との絡みで、fluentdが上手く動かなかったのでダウングレードしてmsgpack-0.4.7にしてやる。 ※とりあえずの処理。もっと良い方法有るはず。。 gemの確認
gem1.9 list
msgpack をUNINSTALL
gem1.9 uninstall msgpack

このまま入れなおそうとするとERRORなので、cacheを消す AMAZON LINUXでは
cd /root/.gem/specs/rubygems.org%80/quick/Marshal.4.8
rm msgpack*

gem1.9 install msgpack -v=0.4.7

fluentd setup configファイルを作る
sudo su 
/usr/local/bin/fluentd --setup /etc/fluentd
fluentd -c /etc/fluent/fluent.conf -vv &

起動
/usr/local/bin/fluentd -c /etc/fluentd/fluent.conf -vv &

停止する時はKILLで終わらせる。


fluentd 設定 

  1. LOGディレクトリ作成
    1. $ mkdir -p /var/log/fluentd
  1. ポジションファイル置場作成
    1. $ mkdir -p /tmp/fluentd
  2. sudo vim /etc/fluentd/fluent.conf
    1. <source>
        type tail
        format apache
        path /var/log/nginx/access.log
        tag nginx.access
        pos_file /tmp/fluentd/nginx.pos
      </source>
      <match nginx.access>
        type file
        path /var/log/fluentd/access_log
      </match>
      
  3. fluentdをKILLして再度start



td-agent install


ついでにS3に入れる形で。

# td-agent,plugin が依存するパッケージをインストール
yum -y install libxml2-devel.x86_64 libxslt-devel.x86_64 gcc make
# td-agent のリポジトリを登録
cat <<'EOF' > /etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
enabled=0
EOF
# td-agentをインストール
yum --enablerepo=treasuredata -y install td-agent
# nginxのログにtd-agentからアクセスできるよう権限を調整
chgrp td-agent /var/log/nginx/
chmod g+rx /var/log/nginx/

mkdir /tmp/td-agent
chgrp td-agent /tmp/td-agent
chmod g+rwx /tmp/td-agent
# td-agentの設定
cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf.bk
cat <<_EOF_ 1>/etc/td-agent/td-agent.conf
####
## Output descriptions:
##

## match tag=debug.** and dump to console

 type stdout



## File input
## read apache logs continuously and tags td.apache.access

  type tail
  format apache
  path /var/log/nginx/access.log
  tag nginx.access
  pos_file /tmp/td-agent/nginx-access.pos
</source>

   type s3

   aws_key_id [ここにaccess keyを入力]
   aws_sec_key [ここにsecret keyを入力]
   s3_bucket [ここにバケット名を入力]
   s3_endpoint s3-ap-northeast-1.amazonaws.com

# バケットの下記パスに保存されます。
   path logs/
   buffer_path /var/log/td-agent/buffer/s3

   time_slice_format %Y%m%d-%H
#   time_slice_wait 10m
   flush_interval 5s
   utc

_EOF_
#nokogiri対応
/usr/lib64/fluent/ruby/bin/gem install nokogiri -- --with-xml2-lib=/usr/lib64 --with-xml2-include=/usr/include/libxml2/ --with-xslt-dir=/usr/include/libxslt