ども、 cloudpackかっぱ (@inokara) です。

はじめに

fluent-plugin-file-alternative で日付毎にログを吐きたいけど監視ツールからそのログを監視したいと思った時に監視ツールの設定ファイルを日付毎に用意、書き換えるのは現実的ではないと思ったので fluent-plugin-file-alternative で何とか対応出来ないかなと思っていたら symlink_path というオプションがあったので使ってみたメモ。

参考

メモ

プラグインのインストール

/usr/lib64/fluent/ruby/bin/gem install fluent-plugin-file-alternative --no-ri --no-rdoc -V

td-agent.conf

以下のように用意する。


  type forest
  subtype copy
  

試す

sudo service td-agent start

しばらく(半日程放置)すると…
fluent-plugin-file-alternative の symlink_path の使い方: 動作確認 (1)

上記例の場合には最新の test.20150217_00.log にリンクが張られるのかなーと思っていたけど、バッファファイルにシンボリックが張られている。

ログの出力が無くなると…
fluent-plugin-file-alternative の symlink_path の使い方: 動作確認 (2) ログの出力がなくなった場合

ログファイルが入ってこない状態でバッファファイルがフラッシュされた状態となるのでリンク切れが発生する。

ログの出力が再開すると…
fluent-plugin-file-alternative の symlink_path の使い方: 動作確認 (3) ログの出力が再開した場合

おお、リンクが復活!
これなら安心!
symlink_path オプション超便利!

ということで…

ログの流入が無い場合にはリンク切れとなってしまうが、ログ監視等でファイルが存在しなければ監視をスキップしてしまう仕組みを入れてしまえば対処出来そうなので時系列でログを保存しつつ最新のログを監視(別のツールで)したい場合等には fluent-plugin-file-alternativesymlink_path オプションは便利!(かも)

元記事はこちらです。
fluentd – fluent-plugin-file-alternative の symlink_path メモ