ども、 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 # for debug # # type stdout # type file_alternative path /opt/logs/test.log time_slice_format %Y%m%d_%H localtime buffer_type file buffer_path /var/log/td-agent/buffer/${tag}-buffer flush_interval 60s output_data_type json output_include_time true output_include_tag true add_newline true symlink_path /opt/logs/test.log
試す
sudo service td-agent start
上記例の場合には最新の test.20150217_00.log
にリンクが張られるのかなーと思っていたけど、バッファファイルにシンボリックが張られている。
ログファイルが入ってこない状態でバッファファイルがフラッシュされた状態となるのでリンク切れが発生する。
おお、リンクが復活!
これなら安心!symlink_path
オプション超便利!
ということで…
ログの流入が無い場合にはリンク切れとなってしまうが、ログ監視等でファイルが存在しなければ監視をスキップしてしまう仕組みを入れてしまえば対処出来そうなので時系列でログを保存しつつ最新のログを監視(別のツールで)したい場合等には fluent-plugin-file-alternative
と symlink_path
オプションは便利!(かも)
元記事はこちらです。
「fluentd – fluent-plugin-file-alternative の symlink_path メモ」