springbootで構築されたwebサービスのバックエンドをAWS EKS on fargagteにて運用しています
各アプリケーションのログはこちらを参考にcloudwatchへデリバリーしています。
アプリケーションがデプロイされて数日経過したころcloudwatchへのログの配信がされていない状況となってしまいました。
詳しい状況は以下です
- kubectl logs にて出力されるログ自体がcloudwatchへの配信が停止したタイミング移行のログが出力されず、最後の一行は文字列が途中で途切れている。
- kubectl execにてコンテナへ入ろうとたところ
no space left on device
エラーが発生。 - アプリケーションそのものの動作は正常。
現状実施した対応
springbootアプリケーションではコンテナ内でログをapplication.logに出力しており、そのためコンテナディスク容量が一杯となってしまいログの書き込みが出来ないのでは無いかと考え、ログ出力を標準出力へ変更
上記を踏まえた質問
- 上記awsリンクにて設定されたcloudwatchへ配信されるログは一体どこからログを拾ってきてcloudwatchへ配信されているのか?
- コンテナは状態を持つべきではないため標準出力へログを流すべきと考えているがその考えは正しいか?
- ログ配信が途中で止まるのはディスク容量が一杯になるためと仮定しているが、コンテナを長期に運用する上で気をつけるべきことが他にも無いか?(logファイル以外に堆積していくようなものが無いか等)なにかまとまっているサイトが有ればご教示ください
あなたの回答
tips
プレビュー