サーバーおよびアプリケーションのログ記録は、開発者、運用、セキュリティ チームが運用環境で実行されているアプリケーションの状態を把握するための重要なツールです。 ログ記録により、オペレーターはアプリケーションと必要なコンポーネントがスムーズに実行されているかどうかを判断し、異常が発生しているかどうかを検出して状況に対応できるようになります。 開発者にとって、ログ記録は開発中および開発後にコードのトラブルシューティングを行うための可視性を提供します。実稼働環境では、開発者はデバッグ ツールを使用せずにログ ツールに依存することがよくあります。システム ログと組み合わせることで、開発者は運用スタッフと連携して問題を効率的に解決できます。 ログ ツールの最も重要な受益者は、特にクラウド ネイティブ環境のセキュリティ チームです。アプリケーション ログとシステム ログから情報を収集できるため、セキュリティ チームは認証、アプリケーション アクセス、マルウェア アクティビティからのデータを分析し、必要に応じて対応できます。 Kubernetes は主要なコンテナ プラットフォームであり、Kubernetes を使用して本番環境にデプロイされるアプリケーションが増えています。 Kubernetes のロギング アーキテクチャを理解することは、すべての開発、運用、セキュリティ チームが真剣に取り組む必要がある非常に重要なタスクであると私は考えています。 この記事では、Kubernetes でさまざまなコンテナ ログ モードがどのように機能するかについて説明します。 システムログとアプリケーションログKubernetes のロギング アーキテクチャについて詳しく説明する前に、さまざまなロギング アプローチと、これら 2 つの機能が Kubernetes ロギングの重要な機能である理由について説明します。 システム コンポーネントには、コンテナー内で実行されるものと、コンテナー内で実行されないものの 2 種類があります。例えば:
コンテナ ログと同様に、システム コンテナ ログは /var/log ディレクトリに保存され、定期的にローテーションする必要があります。 ここではコンテナのログ記録について見ていきます。まず、クラスター レベルのログ記録と、それがクラスター オペレーターにとってなぜ重要であるかについて説明します。クラスター ログは、クラスターのパフォーマンスに関する情報を提供します。ポッドがオフラインになった理由やノードが停止した理由などの情報。クラスター ログでは、クラスターとアプリケーションのアクセス、アプリケーションによるコンピューティング リソースの利用方法などの情報も取得できます。全体として、クラスター ログ ツールは、クラスター オペレーターにクラスターの操作とセキュリティに役立つ情報を提供します。 コンテナ ログをキャプチャする別の方法は、アプリケーションのネイティブ ログ ツールを使用することです。最新のアプリケーション設計には、開発者が標準出力 (stdout) とエラー ストリーム (stderr) を通じてアプリケーションのパフォーマンスの問題をトラブルシューティングするのに役立つログ記録メカニズムが備わっている可能性があります。 効果的なログ記録インストルメンテーションを実現するには、Kubernetes 実装にアプリケーション ログ記録コンポーネントとシステム ログ記録コンポーネントの両方が必要です。 Kubernetes コンテナ ログの 3 つの種類今日のほとんどの Kubernetes 実装で見られるクラスター レベルのログ記録には、主に 3 つのアプローチがあります。
ノードレベルのログエージェントノード レベルのログ エージェントを検討したいと思います。通常、これを実装するには、DaemonSet をデプロイメント戦略として使用し、ポッド (ログ エージェントとして機能) をすべての Kubernetes ノードにデプロイします。次に、ログ エージェントはすべての Kubernetes ノードからログを読み取るように構成されます。通常、エージェントは、ノードの /var/logs ディレクトリを読み取り、stdout/stderr ストリームをキャプチャして、ログ記録バックエンド ストレージに送信するように構成します。 次の図は、すべてのノードでエージェントとして実行されているノード レベルのログ記録を示しています。 ノードレベルのログエージェント fluentd メソッドを使用してノードレベルのログ記録を設定するには、次の手順を実行する必要があります。 (1)まず、fluentddというサービスアカウントを作成する必要があります。 Fluentd ポッドは、このサービス アカウントを使用して Kubernetes API にアクセスします。ラベル app: fluentd を使用して、ログ名前空間に作成する必要があります。
完全な例はこのリポジトリでご覧いただけます。 (2)次に、fluentd-configmapという名前のConfigMapを作成する必要があります。これにより、必要なすべてのプロパティを含む fluentd デーモンセットの構成ファイルが提供されます。
完全な例はこのリポジトリでご覧いただけます。 ここで、fluentd デーモンセットをロギング エージェントとしてデプロイする方法のコードを見てみましょう。
これをまとめると、次のようになります:
ログ記録用のサイドカーコンテナアプリケーションもう 1 つの方法は、ログ エージェントを備えた専用のサイドカー コンテナーを使用することです。コンテナの最も一般的な実装は、ログ コレクターとして Fluentd を使用することです。エンタープライズ展開(コンピューティング リソースのオーバーヘッドを心配する必要がない)では、fluentd(または同様のもの)で実装されたサイドカー コンテナーにより、クラスター レベルのログ記録の柔軟性が実現します。これは、キャプチャする必要があるログの種類、頻度、およびその他の可能な調整に基づいて、コレクター エージェントを調整および構成できるためです。 次の図は、ログ記録エージェントとして機能するサイドカー コンテナーを示しています。 ログ エージェントとしてのサイドカー コンテナー たとえば、ポッドは、2 つの異なる形式を使用して 2 つの異なるログ ファイルに書き込む単一のコンテナーを実行します。ポッドの構成ファイルは次のとおりです。
これらすべてを組み合わせると、次のポッドを実行できます。
サイドカー コンテナがログ エージェントとして動作していることを確認するには、次の操作を実行します。
期待される出力は次のとおりです。
アプリケーションログをログバックエンドに直接公開する3 番目のアプローチは、Kubernetes コンテナとアプリケーション ログに対する最も柔軟なログ ソリューション (私の意見では) であり、ログをログ バックエンド ソリューションに直接プッシュすることです。このパターンはネイティブの Kubernetes 機能に依存しませんが、次のようなほとんどの企業が必要とする柔軟性を提供します。
この 3 番目のアプローチは、各アプリケーションから直接ログをプッシュすることによって Kubernetes 以外の機能に依存しているため、Kubernetes の範囲外となります。 結論はKubernetes ロギング ツールは、エンタープライズ Kubernetes クラスターのデプロイメントにおいて非常に重要なコンポーネントです。使用できる可能性のある 3 つのモードについて説明しました。ニーズに合ったモデルを見つける必要があります。 前述のように、デーモンセットを使用したノードレベルのログ記録は最も使いやすいデプロイメント モードですが、いくつかの制限もあり、組織のニーズに適さない可能性があります。一方、サイドカー モードでは柔軟性とカスタマイズ性が提供され、キャプチャするログの種類をカスタマイズできますが、コンピューターのリソース オーバーヘッドが増加します。最後に、アプリケーション ログをバックエンド ログ ツールに直接公開することは、さらなるカスタマイズを可能にするもう 1 つの魅力的なアプローチです。 選択はあなた次第です。組織の要件に合った方法を見つけるだけです。 |
<<: プラットフォーム・アズ・ア・サービス(PaaS)環境を保護する方法
>>: 生産失敗 | Kafka のメッセージ送信が数十秒も遅延する原因は、実は...
1. ユーザーの閲覧習慣に適合し、検索トラフィックが増加し、より良い結果が得られます検索エンジンユー...
[51CTO.comより引用] 現在、人工知能は医療、交通、製造、教育、金融など、人間生活のあらゆる...
SEO は Baidu のためではなく、ユーザーのために行われます。ウェブサイトが混乱しているときは...
インターネットでは、ウェブサイトのコンテンツ構築に関する意見がたくさんあります。 「ウェブサイトのコ...
以下は、Huizhou SEO Blog のために Ye Jianhui が書いたウェブサイト SE...
IBM と Red Hat の強力な組み合わせは、まさに開発者が望んでいるものです。 Red Hat...
imidc は、香港と台湾のデータ センターの独立サーバーを 30% 割引という大幅な割引価格で提供...
コンテナは今日の企業のデジタル変革の焦点となっていますが、多くの企業幹部がコンテナがもたらす大きなメ...
• 導入•人間性の小さな亀裂から富が流れ込むのです。不安を抱える人は、ある程度の金額を費やすことで不...
ソフトな記事を書いてから長い時間が経ちました。ウェブマスターになるのは簡単ではないことは誰もが知って...
大手ブランドといえば、コカコーラの独特な赤と白のフォント、ナイキのスウッシュ、アディダスのスリースト...
9月25日午後、蘇寧ドットコムが業界の合併や買収を行うという噂がついに決着した。蘇寧ドットコムは本日...
セントジュード小児研究病院はゲノムデータベースをクラウドに移行し、世界中の科学者に共同プラットフォー...
Kafka コア コントローラKafka クラスターには 1 つ以上のブローカーがあり、そのうちの ...
百度ウェイトという用語はかなり前から提案されており、主要なSEOツールもこの機能を導入しています。現...