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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Fluentd

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

Q&A

解決済

1回答

691閲覧

Fluentdで自作プラグインを作ってLabelを変更したい

custom

総合スコア6

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Fluentd

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

0グッド

0クリップ

投稿2019/08/01 03:58

編集2019/08/01 10:57

Fluentdで以下のように動作するモノを作成したいです。


ログをtailで読み込み

copy →→→ 原本をOnline上にバックアップ(外部プラグイン利用)

中身を解析・整形して種類分け…★

種類ごとにDBなどに振り分けて保存(外部プラグイン利用)

★の部分は自作のFilterプラグインを作成しています。


自作のプラグインで内容に応じてlabelを付け替えてあげ、
後ろに控えたlabelディレクティブのなかでプラグインを用いて各所に保存すれば行けそうだと思い以下のようなconfを組みました。

<source> @type tail path /var/log/mylog pos_file /var/log/td-agent/mylog.pos tag mylog format none </source> <match mylog> @type copy <store> #外部バックアップ用プラグイン @type online_bk </store> <store> @type relabel @label edit </store> </match> <label edit> <filter> #種類分割・整形用自作プラグイン #labelにtype_a type_bとつける @type myplugin </filter> </label> <label type_a> <match> @type bk_a </match> </label> <label type_b> <match> @type bk_b </match> </label>

上記のような構造で動きそうでしょうか。

また、自作プラグイン(ruby)でlabelを付け替える方法がわかりません。
付け替えることは可能でしょうか。
可能な場合、どのようなコードを組めばlabelを付け替えられるでしょうか。

何かアイディアなどが有れば合わせていただけますと幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

filter プラグインでラベルを書き換えるのはおすすめしません。
一応、できなくはありませんが、新しいイベントを作って emit しないといけないので filter にする意味がなくなります。

output プラグインだとたぶん以下のようにすれば動きます。
ただし、出力先の <label> は設定ファイルに全て列挙してある必要があります。

ruby

1class OutSuperRelabel < Fluent::Plugin::Output 2 def process(tag, es) 3 es.each do |time, record| 4 label = find_label_from_record(record) 5 event_router = event_emitter_router(label) 6 event_router.emit(tag, time, record) 7 end 8 end 9 10 def find_label_from_record(record) 11 # ラベルを見つけるためのコード 12 end 13end

最終的にfilterプラグインでレコードを加工してoutputプラグインでレコードの内容を見て好きなラベルに飛ばす、という感じになると思います。

投稿2019/09/05 21:57

okkez

総合スコア87

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問