適用対象: Windows Server 上の AKS
この記事では、Azure Kubernetes Service (AKS) のデプロイを監視し、Windows Server 上の AKS でログ データを収集する方法について説明します。 Prometheus
とGraphana
を使用してオンプレミスの監視を設定してアクセスする方法と、Elasticsearch
、Fluent Bit
、Kibana
(EFK) を使用してログを収集して表示する方法について説明します。
次の表に示すように、2 種類の監視とログ記録のソリューションを使用できます。
解決策 | Azure 接続 | サポートとサービス | 費用 | デプロイメント |
---|---|---|---|---|
Azure Monitor | Azure Arc for Kubernetes を使用して Kubernetes クラスターを Azure に接続する必要があります。 | Microsoft からの完全なサポートとサービス。 | Azure Monitor サービスにサインアップする必要があります。 | クラスターの監視には Azure Arc を使用します。 |
オンプレミスの監視とログ記録 | Azure 接続は必要ありません。 | Microsoft (サポート契約または SLA なし)、コミュニティ、外部ベンダーによってオープンソース ソフトウェアとしてサポートされます。 | ベンダー依存。 | 顧客主導。 オンプレミスの監視を使用したクラスターの監視を参照してください。 |
Kubernetes クラスターで Azure Monitor を使用するには、 Azure Monitor の概要を参照してください。
オンプレミス監視を使用する
運用環境でアプリを実行するときは、クラスター上のコントロール プレーン ノードとワークロードの正常性、パフォーマンス、およびリソースの使用状況を監視することが重要です。 推奨される監視ソリューションには、次の 2 つのツールが含まれています。
- Prometheus は、コンテナー化されたワークロードの監視に使用できる監視およびアラート ツールキットです。 Prometheus は、さまざまな種類のコレクターやエージェントと連携してメトリックを収集し、データのクエリを実行してレポートを表示できるデータベースに格納します。 AKS Arc を使用すると、この記事で後述する Prometheus を簡単にデプロイできます。
- Grafana は、Grafana ダッシュボードでメトリックを表示、クエリ、視覚化するために使用されるツールです。 データ ソースとして Prometheus を使用するように Grafana を構成することもできます。 AKS Arc と共に、Grafana のライセンスを持っている必要があります。
監視ソリューションの概要
Windows Server 上の AKS の Prometheus ソリューションの一部として、次のコンポーネントが展開され、自動的に構成されます。
デプロイは、一般公開されている Kube-Prometheus-stack Helm チャートに基づいています。これは、Windows エクスポーターをサポートするように拡張され、Prometheus とエージェント間のメトリックスクレイピングをセキュリティで保護します。 Prometheus ソリューションがデプロイされると、ノード エクスポーターは各 Linux ノードで実行され、Windows エクスポーターは各 Windows ノードで実行されます。
注
Prometheus オペレーター、Prometheus、および Kube 状態メトリック コンポーネントは Linux でのみサポートされているため、このソリューションをデプロイするには、AKS クラスターに少なくとも 1 つの Linux ノードをプロビジョニングする必要があります。
Prometheus ソリューションがスクレーピングするオブジェクトとエンドポイントには、次のものが含まれます。
- Kubernetes によって提供されるさまざまなメトリックを収集する Kube 状態メトリック
- Kubernetes API サーバー
- kubelet
- Linux ノードのメトリックを収集するノード エクスポーター
- Windows ノードのメトリックを収集する Windows エクスポーター
AKS Arc で使用できる Grafana ダッシュボードを表示するには、 AKS Arc で使用できる Grafana ダッシュボードを参照してください。
PowerShell を使用して監視ソリューションをデプロイする
このセクションでは、ワークロード クラスターに監視をデプロイするために使用できる 2 つのオプションについて説明します。
オプション 1: ワークロード クラスターの作成時に監視ソリューションをデプロイする
監視を有効にするには、次の例に示すように、New-AksHciCluster を使用してワークロード クラスターを作成するときに、-enableMonitoring
パラメーターを指定します。
New-AksHciCluster -name mynewcluster -enableMonitoring
監視は、次の既定の構成でインストールされます。
- メトリック (
storageSizeGB
) を格納するためにプロビジョニングされる永続ボリュームのサイズは 100 GB です。 - 収集されたメトリック (
retentionTimeHours
) の保持時間は 240 時間 (または 10 日間) です。
オプション 2: 既存のワークロード クラスターに監視ソリューションをデプロイする
次のように 、Install-AksHciMonitoring コマンドを 実行して、監視ソリューションを既存のワークロード クラスターにデプロイします。
Install-AksHciMonitoring -Name mycluster -storageSizeGB 100 -retentionTimeHours 240
-storageSizeGB
パラメーターは、メトリックを格納するためにプロビジョニングされる永続ボリュームのサイズを設定し、-retentionTimeHours
パラメーターは収集されたメトリックが保持される時間を設定します。
監視ソリューションは、 monitoring
と呼ばれる別の名前空間にインストールされ、 monitoring-sc
と呼ばれる StorageClass を使用します。 Prometheus は、 http://akshci-monitoring-prometheus-svc.monitoring:9090
のクラスター内でのみアクセスできる内部エンドポイントで公開されます。
PowerShell を使用して監視ソリューションをアンインストールする
Uninstall-AksHciMonitoring
PowerShell コマンドを実行して、次のように AKS Arc 監視ソリューションをアンインストールします。
Uninstall-AksHciMonitoring -Name <target cluster name>
アンインストール プロセスでは、名前空間、StorageClass、永続ボリュームの実際のデータとメトリックなど、すべてを削除します。
Grafana をデプロイし、Prometheus を使用するように構成する
一般公開されている Grafana をデプロイするための任意のガイダンスに従うことができます。 また、Grafana を使用するための Microsoft のデプロイ ガイダンスを確認することもできます。このガイダンスでは、Grafana をデプロイして AKS Prometheus インスタンスに接続するように構成する方法について詳しく説明しています。 この GitHub ページでは、Microsoft が Windows Server 上の AKS で使用できるようにする Grafana ダッシュボードを追加する方法についても説明します。
オンプレミスのログ記録
ログ記録は、トラブルシューティングと診断に不可欠です。 AKS Arc のログ ソリューションは、Elasticsearch、Fluent Bit、Kibana (EFK) に基づいています。 これらのコンポーネントはすべてコンテナーとしてデプロイされます。
- Fluent Bit は、さまざまなソースからデータとログを収集するログ プロセッサとフォワーダーです。 その後、Elasticsearch に書式設定、統合、および格納します。
- Elasticsearch は、高速な検索とデータ分析のためにログを一元的に格納できる分散検索および分析エンジンです。
- Kibana は、Web ダッシュボードで対話型の視覚化を提供します。 このツールを使用すると、Elasticsearch に格納されているログを表示してクエリを実行できます。その後、グラフとダッシュボードを使用してそれらを視覚化できます。
オンプレミスのログ ソリューションを設定するには、 Kibana にアクセスするためのログ記録を設定する手順を参照してください。 この記事には、クラスター全体のコンテナー ログの収集、集計、クエリに必要なすべてのコンポーネントが含まれています。
詳細な構成手順については、 Windows ログを参照してください。
次のステップ
- Kubernetes クラスター に Linux アプリケーションをデプロイする
- Kubernetes クラスターに Windows Server アプリケーションをデプロイする
- Kubernetes のコア概念