Member-only story
Kubernetes Logging Tools: A Comparison(前半)
ロギングは、Kubernetesのような分散システムにおいて、アプリケーションの活動を監視し、可観測性を高め、知見を引き出すための重要な機能です。この機能を実現するための最適なツールを厳選し、それぞれのツールを使い始めるための簡単なガイドも用意しました。
この記事はThe Chief I/O:Kubernetesのロギングツール:比較vに掲載されたものです。
今回の記事は長いので、前半と後半の二つに分けて投稿します。
現代のアプリケーションは複雑です。これらのアプリケーションは、コンテナやマイクロサービスをデプロイされます。例えば、マイクロサービスアプリケーションでは、Kubernetesクラスタで複数のアプリケーションが動作します。このようなアプリケーションからログデータを観察し、収集することは非常に困難です。このような複雑なアプリケーションからのログデータを中央のプラットフォームに集めることで、負担を軽減し、ログデータを有用なものにすることができます。
Why do you need log data?
Kubernetes のログデータにはいくつかの有益な使い方がありますが、最も一般的なものはデバッグです。ログを取ることで、何か問題があったときにアプリケーションのデバッグに役立つ情報を相関させることができます。
Log data is also helpful for business intelligence and detecting suspicious activities.
また、ログデータはビジネスインテリジェンスや不審な活動の検出にも役立ちます。
また、アプリケーションからのデータに関連する特定のポリシーを遵守する必要がある業界にいる場合は、ログデータが必要です。
しかし、Kubernetesクラスタ内の異なるアプリケーションからのログデータは散在しており、このため、上記の目的には使用できません。また、ネイティブのkubectlを使用してKubernetesポッドからログを収集しても、ポッドごとに10MiBのデフォルトサイズでログが保存されるため、効果がありません。このサイズは大きく、アプリケーションがより多くのログを生成し続ける中で、長期間にわたって持続させることは容易ではありません。
Kubernetesアプリケーションからの膨大なログデータを有用なものにするためには、それらを構造化されたフォーマットで収集・集約する必要があります。これには、Kubernetesのログデータを取得、相関、インタラクティブなインターフェースで表示し、分析や技術的な利用に役立てることができるログ管理ツールが必要です。