サーバーがスケールするので、ログをサーバ内に持たせたくない!
json形式だと見にくい or json形式だと扱いにくい!
→だから生ログのままs3に転送したい!!!
といった場合の方法
1.fluentdインストール
至って基本的なインストール方法になります。
※rubyは既にインストール済みとします
curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
mkdir /tmp/td-agent
chown td-agent:td-agent /tmp/td-agent
mkdir /var/log/td-agent/buffer
chown td-agent:td-agent /var/log/td-agent/buffer
2.fluentdのconfを書き換えます
ここでは/var/www_logs/へ吐かれているapacheのアクセスログを生転送する場合を記載します。
formatをnoneにする事がキモです
/var/log/messages等を転送したい場合は各自書き換えてください
vi /etc/td-agent/td-agent.conf
<source>
type tail
format none
path /var/www_logs/test.com-access_log.%Y%m%d
tag rawlog.test.com
pos_file /tmp/td-agent/rawlog.test.com.pos
</source>
<match rawlog.**>
type s3
aws_key_id [アクセスキー]
aws_sec_key [シークレットキー]
s3_bucket [バケット]
check_apikey_on_start false
s3_object_key_format %{path}%{time_slice}%{hostname}raw_apachelog%{index}.%{file_extension}
path www_logs/
time_slice_format %Y/%m/%d/
buffer_path /var/log/td-agent/buffer/CloudStorage_raw
flush_interval 600s
</match>
3. fluentd起動
/etc/init.d/td-agent start
ここでエラーが出る場合、/var/log/td-agent/td-agent.logを見ると原因解決のヒントになると思います
4. s3のバケット内を確認して、10分ごとに転送されている事を確認
サーバ内にログが増大してディスク容量が足りないよ!
なんて古い時代とはこれでオサラバできます。
ディスク容量を気にされる方はぜひ検討を!
投稿者プロフィール
-
2013年入社の平成生まれです。
初めて触ったコンピュータはPC9821でダイヤルアップでした。
その時に鯖落ちや人大杉の対応をしてくださる鯖缶になりたいと憧れ、
みなさんのお役に立てればと思っております!
#今では個人所有のパソコン・サーバだけで20台ほどあります…。
サーバー大好き!