次の方法で共有


Kubernetes の監視とログ記録

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

この記事は、Amazon EKS に精通している専門家が Azure Kubernetes Service (AKS) を理解するのに役立つ一連の記事の一部です。

Amazon EKS の監視とログ記録

他の Kubernetes サービスと同様に、Amazon 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 にデプロイされているコンテナー化されたアプリケーションからメトリックとログを収集して集計します。 Amazon EKS に Container Insights を実装するには、CloudWatch エージェントのコンテナー化されたバージョンを使用するか、または DaemonSet として OpenTelemetry に AWS Distro を使用します。 Fluent Bit を使用してログを送信できます。

AKS の監視とログ記録

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

AKS のログ記録と監視ソリューションを示す図。

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

Azure Monitor

AKS は Azure Monitor とネイティブに統合されます。 Azure Monitor は、Log Analytics ワークスペースと呼ばれる中央の場所にメトリックとログを格納します。 Azure Monitor はメトリックとログを処理して分析し、分析情報とアラートを提供します。 詳細については、「 Azure Monitor を使用した AKS の監視」を参照してください。

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

Container Insights では、 Log Analytics ワークスペース のデータを使用して、Azure portal で視覚化を強化します。 メトリック収集に対してより安価で効率的なアプローチを提供する Prometheus 用の Azure Monitor マネージド サービスに切り替えることを検討してください。 コンテナーの分析情報を使用して、管理対象の Prometheus データのみを使用してメトリックを視覚化できます。 詳細については、「 コンテナー分析情報のマネージド Prometheus 視覚化に切り替える」を参照してください。

Kubernetes クラスターの包括的な監視を確実に行うには、次のサービスと Azure Monitor 機能を使用します。

Microsoft Sentinel

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

AKS コネクタを使用して、Microsoft Sentinel を AKS に接続する必要があります。 その後、AKS 診断ログを Microsoft Sentinel にストリーミングして、インスタンス内のアクティビティを継続的に監視できます。

データ ソースを Microsoft Sentinel に接続したら、 データを視覚化して監視できます。 Microsoft Sentinel ブックと Azure Monitor ブックは、カスタム ダッシュボードを作成するための汎用性を提供します。

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

AKS デプロイは、クラスター レベルのコンポーネント、マネージド AKS コンポーネント、Kubernetes オブジェクトとワークロード、アプリケーション、外部リソースで構成されます。 AKS クラスターとワークロード アプリケーションを監視するための一般的な戦略は、次の監視要件で構成されます。

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

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

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

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

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

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

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

Prometheus は、 Cloud Native Computing Foundation の一般的なオープンソース メトリック監視ソリューションです。 Prometheus は、Kubernetes クラスターからメトリック データを収集して分析します。 Prometheus 用の Azure Monitor マネージド サービス は、Azure でフル マネージドの Prometheus と互換性のある監視ソリューションです。 データは、Azure Managed Grafana ワークスペースにリンクされた Azure Monitor ワークスペースに保存されます。 Azure Managed Grafana を使用してデータを分析できます。

Prometheus は、AKS クラスター内の自己管理ソリューションとして個別にデプロイできます。 セルフホステッド Prometheus と Azure Monitor を統合するには、Prometheus メトリックを収集するようにコンテナーの分析情報を構成します。 Prometheus メトリック エンドポイントは、エクスポーターまたはポッド アプリケーションを通じて公開できます。 コンテナー分析情報用のコンテナー化されたエージェントは、これらのメトリックを収集します。

Azure Managed Grafana(Azureが管理するGrafana)

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

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

AKS の監視コスト

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

コンテナーの分析情報を有効にする前に、コストを見積もり、データ インジェストとそのコストを制御する方法を理解します。 詳細については、「 AKS クラスターを監視するためのコストの見積もり」を参照してください

貢献者

Microsoft では、この記事を保持しています。 次の共同作成者がこの記事を書きました。

主要な著者:

その他の共同作成者:

公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。

次のステップ