fluentdからrtailにログを送る


rtailというリモートサーバからログを受信してまとめて表示するCloudWatch LogsのようなOSSがありまして、クライアントのソースコードを読んだところUDPでメッセージを送っているだけだったので、fluentdのプラグインを書いてみました。

winebarrel/fluent-plugin-rtail: Fluentd output plugin for rtail.

インストール

gem install fluent-plugin-rtail

動かしてみる

rtail-serverを起動して、localhost:8888にアクセスします。

rtail-server

fluentdを以下のような設定で起動します。

<source>
  @type forward
  @id forward_input
  @label @forward_input
</source>

<label @forward_input>
  <match **>
    @type rtail
    flush_interval 0s
  </match>
</label>

fluentdにログを投げます。

echo '{"id":"foo","content":"Zzz.."}' | fluent-cat -t rtail.data

rtailのほうで、fooというストリームが作成されて、fluentdから送られてきたログが表示されます。

そのた

  • use_tag_as_id: trueとすると、タグをストリームIDにします
  • use_record_as_content: trueとすると、フィールドの値ではなくレコードそのものをrtailに送信します(rtailはJSONを構造化されたデータとして扱います)

どうぞご利用ください。
メリークリスマス