メモ
普通のパターン
各エージェントから送られてきたログを単純に集約してコレクター側でファイルに吐くのであればコレで十分なはずです。
エージェント側
<source>
type tail
tag http.access
path /var/log/nginx/access.log
pos_file /var/log/td-agent/nginx.access.log.pos
format none
</source>
<match *.**>
type forward
<server>
name active
host log.local
port 24224
</server>
</match>
コレクター側
<source> type forward port 24224 bind 0.0.0.0 </source> <match http.access> type file_alternative output_include_time false output_include_tag false path /var/log/td-agent/http/access.*.log symlink_path /var/log/td-agent/http/access.log </match>
コレクター側でごにょごにょしたいとき
以下の例では何もしてないですが、recordの中身を見てファイル振り分けたいときとかrecordの中身を書き換えたいときとかのパターンです。
エージェント側は同じ
コレクター側
output_data_typeがltsvのとき、timeとtagは別扱いで、recordの部分しかltsvの形式になってくれないので、record_reformerでrecordの中にtimeを包含させてしまって、timeとtagをfile_alternativeで出力しないようにしてます。
output_include_time false、 output_include_tag falseしてあげてrecordのみ出力するようにしているのがミソです。
<source>
type forward
port 24224
bind 0.0.0.0
</source>
<match http.access>
type parser
add_prefix parsed
format ltsv
key_name message
</match>
<match parsed.http.access>
type record_reformer
renew_record false
tag local_store.http.access
<record>
time ${time}
</record>
</match>
<match local_store.http.access>
type file_alternative
path /var/log/td-agent/http/access.*.log
symlink_path /var/log/td-agent/http/access.log
output_include_time false
output_include_tag false
output_data_type ltsv
</match>plugin書けば良いという話もありますが、もう少しすっきり書きたいところ。