質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Fluentd

Fluentdは、オープンソースのログ収集ツールです。ログの収集方法、ログの記録先などのログデータ処理を柔軟にカスタマイズでき、インプットおよびアウトプットが全てプラグインとして実装されています。

Q&A

0回答

4049閲覧

fluentdにて一つのログを複数ファイルに出力する方法

turubee

総合スコア10

Fluentd

Fluentdは、オープンソースのログ収集ツールです。ログの収集方法、ログの記録先などのログデータ処理を柔軟にカスタマイズでき、インプットおよびアウトプットが全てプラグインとして実装されています。

0グッド

0クリップ

投稿2016/06/26 15:17

実現したいこと

集約側のfluentdにてfowardされたログを条件によって複数のログファイルに出力したいと思っています。

要件としては以下の通りです。

  1. 全てのログはsample.logとして出力
  2. 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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問