自作プラグインの紹介です。
https://github.com/tomohisaota/fluent-plugin-forward-aws
小規模なプロジェクトでは、「スケールし、落ちないログ転送先」を確保するのはなかなか難しいものです。Fluentdには再送機能があるおかげで一時的な障害には対応しやすいですが、Auto Scaleのようにダイナミックにインスタンスが増減する構成だとログサーバの生死が大きな問題になります。
また、ログの転送先には様々なニーズがあるため、一台のログ転送先ですべてに対応しその構成を変更する度にログ転送先を止めるのは不便だと思います。
- Elastic Search + Kibanaで可視化したい
- GrowthForecastでグラフ化したい
- 自作のスクリプトで監視をしたい
その対策として作成したのが、fluent-plugin-forward-awsです。
すべてのログをAWSのS3+SNS+SQSを経由して転送することで、ログの転送元と転送先を疎結合にします。転送元の追加、削除はもちろん、負荷分散のために転送先を増やしたり、転送先を複数種類作ることも出来ます。
また、すべての通信がAWS経由となるため、ログ転送元とログ転送先を同じネットワークに接続する必要もありません。必要であれば自分のローカルPCや、モバイル端末にでもログを転送できます。
基本的なコンセプトはWikiに図としてまとめてあります。
https://github.com/tomohisaota/fluent-plugin-forward-aws/wiki/Forward-AWS-plugin-concept
僕はRuby初心者なので、より信頼性の高い実装にするために強力してくれる方を募集中です。