抑えるべきポイント
- /var/log/containers/*-json.logにkubeletが全podのログを出力する
- それを何らかのアプリケーションに集約・ログの蓄積先・分析システムに送付することで、あとでログを閲覧・分析しやすくすることが目的
- *-json.logには、pod内のコンテナが標準出力・標準エラー出力に書き出したものがそのまま含まれる
- ログの出力元であるKubernetesのクラスタ、ノードの、pod、コンテナの情報(メタデータ)は含まれていない。
- これらのメタデータがないと、ログを集約しても分析のしようがない(例: 何かエラーログが出ているけど、どのクラスタのどのノードのどのpodのエラーログかわからない!)
- ログを収集して、集約先に送りつける前にどのような変換をするか?
- ETL
- ELT(ログを抽出して、集約先システムに送りつけてから、その後変換)でも良いかもしれないけど、T(ransform)してからやっとログが閲覧可能になるわけなので、リアルタイム性が少しでも欲しい場合には不向き