実現したいこと
集約側のfluentdにてfowardされたログを条件によって複数のログファイルに出力したいと思っています。
要件としては以下の通りです。
- 全てのログはsample.logとして出力
- loggerレコードが"jp.sample.*"と一致する場合、1.と合わせて以下のログも出力
2-1. level(ログレベル)がERRORの場合はsample-error.logにも出力
2-2. level(ログレベル)がWARN以下はsample-app.logにも出力
fluentdは初心者なのですが、上記要件を満たすために便利なプログインなどはありますでしょうか?
rewrite_tag_filterやcopy、forestを利用して設定しているのですが、もっと簡単に書けるものがあるのではと思いご質問させて頂きました。
よろしくお願いします。
現在の設定
<source> type forward port 24224 bind 0.0.0.0 </source> # rewrite pattern of logger (jp.sample or not) # tag: forward.{hostname}.app <match forward.*.app> type rewrite_tag_filter rewriterule1 logger ^jp.sample.* rewrited.${tag_parts[1]}.app.sample rewriterule2 logger .* rewrited.${tag_parts[1]}.app.other </match> # rewrite pattern of log level (error or not) # tag: rewrited.{hostname}.app.sample <match rewrited.*.app.sample> type rewrite_tag_filter rewriterule1 level ^ERROR$ rewrited.${tag_parts[1]}.app.sample.error rewriterule2 level .* rewrited.${tag_parts[1]}.app.sample.app </match> # Output plain log # tag: rewrited.{hostname}.app.{package}.{pattern} <match rewrited.*.app.**> type copy <store> type forest subtype file <template> format single_value path /var/aggregate/${tag_parts[1]}/sample time_slice_format %Y%m%d append true buffer_type file buffer_path /var/tmp/td-agent/file_${tag}*.buffer flush_interval 1s </template> </store> <store> type record_reformer tag rewrited2.${tag_parts[1]}.app.${tag_parts[3]}.${tag_parts[4]} </store> </match> # Output sample error pattern # tag: rewrited2.{hostname}.app.sample.error <match rewrited2.*.app.sample.error> type forest subtype file <template> format single_value path /var/aggregagte/${tag_parts[1]}/sample-error time_slice_format %Y%m%d append true buffer_type file buffer_path /var/tmp/td-agent/file_${tag}*.buffer flush_interval 1s </template> </match> # Output sample other patterns # tag: rewrite2.{hostname}.app.sample.{pattern} <match rewrited2.*.app.sample.*> subtype file type forest <template> format single_value path /var/aggregate/${tag_parts[1]}/sample-${tag_parts[4]} time_slice_format %Y%m%d append true buffer_type file buffer_path /var/tmp/td-agent/file_${tag}*.buffer flush_interval 1s </template> </match>
あなたの回答
tips
プレビュー