Kubernetes の監視とログ記録

Azure Kubernetes Service (AKS)
Azure Log Analytics
Azure Monitor

この記事では、Azure Kubernetes Service (AKS) の監視と Amazon Elastic Kubernetes Service (Amazon EKS) の比較について説明します。 この記事では、AKS クラスターとそのワークロードのログを監視および管理するためのさまざまなオプションについて説明します。

注意

この記事は、Amazon EKS に詳しいプロフェッショナルの方を対象に、AKS についてわかりやすく説明した連載記事の一部です。

Amazon EKS の監視とログ記録

Kubernetes サービスと同様に、EKS にはコントロール プレーンとワーカー ノードという 2 つの主要なコンポーネントがあります。 レイヤーごとに特定の機能があります。

Amazon EKS のコントロール プレーンとクラスターの監視

Amazon EKS は、Amazon CloudWatch Logs と統合して、Amazon EKS コントロール プレーンのログ記録と監視の機能を提供します。 この統合は既定では有効になっていませんが、構成すると、次のログが収集されます。

  • API サーバーと API 呼び出し。
  • 監査ログとユーザー操作。
  • 認証システムのログ。
  • スケジューラとコントローラーのログ。

Amazon EKS は、/metrics エンドポイントで Prometheus テキスト形式でコントロール プレーンのメトリックを公開します。 CloudWatch Container Insights で、Prometheus メトリックを収集して格納できます。 EKS クラスター上に Prometheus をデプロイして自己管理することも、Amazon Managed service for Prometheus を使用することもできます。

Amazon EKS をアマゾン ウェブ サービス (AWS) の CloudTrail と統合して、アクションと API 呼び出しを追跡することもできます。 詳細については、「AWS CloudTrail を使用した Amazon EKS API コールのログ記録」を参照してください。

Amazon EKS ワークロードの監視

CloudWatch Container Insights では、EKS にデプロイされたコンテナー化されたアプリケーションからメトリックとログを収集して集計できます。 CloudWatch エージェントのコンテナー化されたバージョンを使用するか、デーモンセットとして AWS Distro for OpenTelemetry を使用して、Amazon EKS に Container Insights を実装できます。 FluentBit を使用してログを送信できます。

AKS の監視とログ記録

AKS は、他の Azure リソースと同様に、プラットフォーム メトリックとリソース ログを生成します。これは、その基本的な正常性とパフォーマンスを監視するために使用できます。

AKS のログ記録と監視を示す図。

このアーキテクチャの Visio ファイルをダウンロードします。

Azure Monitor

AKS は Azure Monitor とネイティブに統合されます。 Azure Monitor は、Log Analytics ワークスペースと呼ばれる中央の場所にメトリックとログを格納します。 このデータを処理および分析して、分析情報とアラートが提供されます。 詳細については、「Azure Monitor のコンテナー正常性機能を使用して Azure Kubernetes Service (AKS) を監視する」を参照してください。

Container Insights は、AKS クラスターによって生成されたデータの収集、インデックス作成、および格納を実行する Azure Monitor の機能です。 AKS やその他のクラスター構成でホストされているマネージド Kubernetes クラスターを監視するように Container Insights を構成できます。 Container Insights では、Kubernetes 環境に合わせた視覚化を使用して、AKS の正常性とパフォーマンスを監視できます。 EKS と同様に、AKS クラスターに対して Container Insights を有効にすると、Log Analytics エージェントのコンテナー化されたバージョンがデプロイされます。これは、Log Analytics ワークスペースへのデータ送信を担当します。

Microsoft Sentinel

Microsoft Sentinel は、インテリジェントなセキュリティ分析と脅威インテリジェンスを企業全体に提供します。 Microsoft Sentinel を使用すると、攻撃の検出、脅威の可視化、予防的ハンティング、脅威への対応のための単一ソリューションが得られます。

Microsoft Sentinel は AKS に接続されている必要があります。 このコネクタを使用すると、Azure Kubernetes Service (AKS) の診断ログを Microsoft Sentinel にストリーミングできます。これにより、すべてのインスタンスでのアクティビティを継続的に監視できます。

Microsoft Sentinel にデータ ソースを接続した後、Microsoft Sentinel と Azure Monitor ブックを使用してデータを視覚化および監視できます。これにより多様なカスタム ダッシュボードを作成できます。

AKS クラスターとワークロードの監視

AKS デプロイは、クラスター レベルのコンポーネント、マネージド AKS コンポーネント、Kubernetes オブジェクトとワークロード、アプリケーション、および外部リソースに分割できます。 AKS クラスターとワークロード アプリケーションを監視するための一般的な戦略を次の表に示します。 各レベルには、別個の監視要件があります。

Level 説明 要件の監視
クラスター レベルのコンポーネント AKS ノードとノード プールとして抽象化された仮想マシン スケール セット ノードの状態と、CPU、メモリ、ディスク、ネットワークなどのリソースの使用状況
マネージド AKS コンポーネント API サーバー、クラウド コントローラー、kubelet などの AKS コントロール プレーン コンポーネント kube-system 名前空間のコントロール プレーンのログとメトリック
Kubernetes オブジェクトとワークロード デプロイ、コンテナー、レプリカ セットなどの Kubernetes オブジェクト リソースの使用状況とエラー
アプリケーション AKS クラスターで実行されているアプリケーション ワークロード アーキテクチャに固有の監視 (ただし、アプリケーション ログとサービス トランザクションを含む)
外部 AKS の一部ではないが、クラスターのスケーラビリティと管理に必要な外部リソース 各コンポーネントに固有
  • クラスター レベルのコンポーネント: 既存の Container Insights ビューとレポートを使用してクラスター レベルのコンポーネントを監視し、それらの正常性、準備状態、パフォーマンス、CPU とメモリのリソースの使用状況、および傾向を把握できます。

  • マネージド AKS コンポーネント: メトリックス エクスプローラーを使用して、配信要求カウンターを表示できます。 このビューには、要求の待機時間と作業キューの処理時間が含まれます。

  • Kubernetes オブジェクトとワークロード: 既存の Container Insights ビューとレポートを使用して、デプロイ、コントローラー、ポッド、コンテナーを監視できます。 ノードコントローラーのビューを使用して、ノードとコントローラーで実行されているポッドの正常性とパフォーマンス、および CPU とメモリの観点でのそれらのリソース消費量を表示します。

Container Insights のコンテナー ビューで、コンテナーの正常性とパフォーマンスを表示したり、個々のコンテナーを選択してそのイベントとログをリアルタイムで監視したりできます。 このビューの使用、およびコンテナーの正常性とパフォーマンスの分析の詳細については、「Container insights を使用して Kubernetes クラスターのパフォーマンスを監視する」を参照してください。

  • アプリケーション:Application Insights を使用して、AKS やその他の環境で実行されているアプリケーションを監視できます。 Application Insights は、多くのプログラミング言語をサポートするアプリケーション パフォーマンス管理ツールです。 ニーズに応じて、アプリケーション コードをインストルメント化して、要求、トレース、ログ、例外、カスタム メトリック、エンド ツー エンド トランザクションをキャプチャし、このデータを Application Insights に送信できます。 Java アプリケーションがある場合は、コードをインストルメント化せずに監視機能を提供できます。 詳細については、「Kubernetes に対するゼロ インストルメンテーション アプリケーション監視」を参照してください。

  • 外部コンポーネント: Azure Monitor の機能を使用して、データベースをはじめとする Azure リソースなど、ワークロード アプリケーションで使用される Azure のサービスとしてのプラットフォーム (PaaS) を監視できます。

Prometheus 用の Azure Monitor マネージド サービス

Prometheus は、Cloud Native Compute Foundation の一般的なオープンソース メトリック監視ソリューションであり、Kubernetes クラスターからメトリック データを収集および分析するために使用される最も一般的なツールです。 Prometheus 用の Azure Monitor マネージド サービスは、Azure のフル マネージド Prometheus 互換監視ソリューションであり、Azure Monitor ワークスペース (Grafana ワークスペースにリンクされているため、Azure Managed Grafana でデータを分析可能) にデータを格納します。

Prometheus は、Azure Kubernetes Service クラスター内のセルフマネージド ソリューションとして個別にデプロイすることもできます。 セルフホステッド Prometheus と Azure Monitor を統合できます。 Container Insights は Prometheus メトリックを収集するように構成できます。 エクスポーターまたはポッド アプリケーション を使用して Prometheus メトリック エンドポイントを公開でき、Container Insights 向けのコンテナー化されたエージェントがメトリックをスクレイピングします。

Azure Managed Grafana

Azure Managed GrafanaGrafana 上に構築されたデータ視覚化プラットフォームです。 これは、Microsoft が運用およびサポートするフル マネージド Azure サービスとして構築されています。 Kubernetes の監視とフル スタックのトラブルシューティングのために、複数の定義済みの Grafana ダッシュボードを使用できます。

Azure Managed Grafana は Azure 環境に合わせて最適化されており、多くの Azure サービスと連携し、シンプルな統合機能を提供します。 Grafana をセルフマネージド ソリューションとして個別にデプロイすることもできます。 詳細については、「Grafana での Azure サービスの監視」を参照してください。

AKS の監視コスト

Azure Monitor の価格モデルは、主に、Log Analytics ワークスペースに 1 日あたりに取り込まれるデータ量に基づきます。 コストは、選択するプランと保有期間によって異なります。

Container Insights を有効にする前に、コストを見積もり、データ インジェストとそのコストを制御する方法を確認しましょう。 詳細なガイダンスについては、「AKS クラスターを監視するためのコストの見積もり」を参照してください。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパルの作成者:

その他の共同作成者:

  • Chad Kittel | プリンシパル ソフトウェア エンジニア
  • Ed Price | シニア コンテンツ プログラム マネージャー
  • Theano Petersen | テクニカル ライター

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ