概要
dockerを本番運用する際にログの扱いに悩んだので情報をまとめてみました。
環境
- docker v1.12.1
コンテナのログは何処に渡すべきか
主に以下の3通りになると思います。
- コンテナ内に保存
- volume先に指定してに永続保存
- log driverを使って転送
dockerを本番運用する際にログの扱いに悩んだので情報をまとめてみました。
主に以下の3通りになると思います。
先日Goオールスターズ2で登壇させて頂き、その時プレゼン作成のために使ったpresent
の使い方を紹介します。
present
を使うと↓のようなスライドを作れます
http://go-talks.appspot.com/github.com/jun06t/go-all-stars/main.slide#1
実際に使ってみたメリット、デメリットを挙げます。
あまり融通のきかない感じに見えますが、スライド上でプログラムが実行できるのはやはりメリットは大きく、またプログラムを載せる時に簡単に導入できるのは便利でした。
続きを読むTerraformでECS環境の構築 - Carpe Diemでは書いてなかったオートスケールについてです。
terraform 0.7からServiceでのオートスケールにも対応したので、それを使って構築します。
完成形はこちら github.com
続きを読む以前はMongoRiverを使う - Carpe Diemで紹介したようにRiver
という機能を使って同期を実現させていました。
しかしながらElasticsearchがRiverを廃止することを決め、バージョン2.x以降は使うことができなくなりました。
そこで調べてみて挙がったのは以下です。
ツール | 用途 | デメリット |
---|---|---|
logstash | 様々なデータをElasticsearchへ投入するツール。 公式が薦めてる |
inputにmongoのプラグインがない |
beats | ログの解析に使える。ダッシュボードもすぐ用意できる | mongoのデータを送るようなプラグインがない |
embulk | バルクローダー。fluentdのバッチ版 | バッチ版というようにリアルタイム同期ではない |
fluentd | リアルタイムな同期システムを作れる | データがすでにあるものに対しての全同期には不向き |
transporter | 全同期可能。リアルタイムなデータ同期もできる | sharded mongo clusterに未対応 |
mongo-connector | 同上 | デフォルト設定だとログが少ない |
以上の結果からmongo-connector
を使用することにしました。