Posted at: 2017-08-13 09:01:07  Category: tech

はじめに

複数のコンテナで動いているアプリのログを集めたいという要件がありました。
やりようはいくらでもあると思いますが、fluentd使ったことがなかったので使ってみました。

構成

次の図の通り。
ログ集めの対象となるアプリが、3つのコンテナで動いています。
対象のアプリは1分に一度、ローカルのファイル(/home/ubuntu/log)に1行、メッセージを書き込む感じです


インストール

apt-get install curl
apt-get install ca-certificates
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent2.sh | sh

forwarder(fluentd-test0*)の設定



<source>
@type tail
path /home/ubuntu/log
pos_file /var/log/td-agent/cron.test.pos
format none
tag cron.test
</source>
<match cron.test>
@type forward
buffer_type memory
buffer_chunk_limit 8m
buffer_queue_limit 64
flush_interval 1s
<server>
host 192.168.4.40
port 24224
</server>
<secondary>
@type file
path /var/log/td-agent/forward-failed
</secondary>
</match>


aggregatorの設定

/var/log/td-agent/cron/testファイルに転送されてくるログを集めます


<source>
@type forward
port 24224
</source>
<match cron.test>
@type file
path /var/log/td-agent/cron/test
</match>