監視は、クラウド内の HPC 環境を管理し、最適なパフォーマンス、信頼性、セキュリティを確保する上で重要となります。 効果的な監視によって、管理者はシステムのパフォーマンスに関するリアルタイムの分析情報を取得し、問題を迅速に検出して対処し、リソース使用量を最適化するための情報に基づいた意思決定を行うことができます。 CPU とメモリの使用量、ジョブの実行時間、ネットワーク スループットなどの主要なメトリックは、インフラストラクチャの正常性と効率性に関する重要な情報を提供します。
Azure Monitor、Azure Managed Grafana、Azure Managed Prometheus などのツールを使用することで、管理者はこれらのメトリックを視覚化し、クリティカルなイベントのアラートを設定し、トラブルシューティングのためにログを分析することができます。 堅牢な監視プラクティスを実装することは、高可用性を維持し、ユーザーの満足度を高め、クラウド環境が HPC ワークロードの動的なニーズを満たすようにする上で役に立ちます。
HPC ワークロードを Azure に移行する際には、オンプレミス上に存在した監視機能をレプリケートして強化することが重要になります。 このプロセスには、同じメトリックの追跡と、場合によってはクラウド環境に関連する新しいメトリックの追加が含まれます。 Azure 固有の監視ツールを使用することで、クラウド リソースに関するより深い分析情報を得ることができ、これはクラウド インフラストラクチャを効果的に管理して最適化する上で重要です。 たとえば、クラウド環境において追跡する価値のある新しいメトリックはコストであり、これは通常、オンプレミスのセットアップでは監視されていません。
監視の主要なメトリックのニーズを定義する
一般的な HPC メトリック:
- インフラストラクチャ メトリック: CPU、メモリ使用量、ディスク I/O、ネットワーク スループット。
- アプリケーション メトリック: ジョブ キューの長さ、ジョブの失敗率、実行時間。
- ユーザー メトリック: アクティブ ユーザー、ジョブ送信率。
クラウド固有の HPC メトリック:
- コスト メトリック: リソースごとのコスト、毎月のコスト、予算アラート。
- スケーラビリティ メトリック: 自動スケーリング イベント、リソース使用量。
- プロビジョニング メトリック: プロビジョニング時間、プロビジョニングの成功率。
ツールとサービス
Azure Monitor:
- すべてのリソースからメトリックとログを収集するように Azure Monitor を構成します。
- クリティカルなしきい値 (例: CPU 使用率 > 80%) のアラートを設定します。
- Log Analytics を使用して、ログのクエリと分析を行います。
Azure Managed Grafana:
- ダッシュボードの視覚化のために Grafana を Azure Monitor と統合します。
- さまざまなペルソナ (例: HPC 管理者、ビジネス マネージャー) 用のカスタム ダッシュボードを作成します。
Azure マネージド Prometheus:
- Azure 内に Prometheus インスタンスをデプロイして管理します。
- HPC ノードとアプリケーションからメトリックをスクレイピングするように Prometheus を構成します。
- 高度なダッシュボード用に Prometheus を Grafana と統合します。
アズール・モネオ:
- 複数の GPU システムにわたってメトリックを収集するように Moneo を構成します。
- Moneo に関する情報は、GitHub で確認できます
ベスト プラクティス
監視のベスト プラクティスを実装することで、HPC 環境が効率的で安全で回復性がある状態を確保できます。 以下に、いくつかの主要なベスト プラクティスを示します。
監視構成の定期的なレビューと更新:
- 監視構成がインフラストラクチャとビジネスのニーズに沿うものであることを確認するために、それらの定期的なレビューをスケジュールします。
- 履歴データと変化するパフォーマンスに関する要件に基づいて、しきい値とアラートの設定を更新します。
包括的なログの実装:
- ログ データを集計して分析するために、Azure Log Analytics などの一元的なログ ソリューションを使用します。
- パターンと潜在的な問題がエスカレートする前にそれらを特定するためにログ データを定期的にレビューします。
冗長性とフェールオーバーのメカニズムの設定:
- クリティカルな監視コンポーネントに対して冗長性を実装し、継続的な可用性を確保します。
- プライマリ システムの障害が発生した場合に、自動的にバックアップ システムに切り替えるためのフェールオーバー メカニズムを設定します。
一般的な問題への対応の自動化:
- 一般的な問題に対する自動応答を作成するために、Azure Automation や Logic Apps などの自動化ツールを使用します。
- サービスの再起動やリソースのスケーリングなど、既知の問題を自動的に修復できる Runbook とワークフローを開発します。
セキュリティ メトリックの監視:
- 未承認アクセスの試行、構成の変更、コンプライアンスの状態など、セキュリティ関連のメトリックを監視セットアップ内に含めます。
- クリティカルなセキュリティ イベントのアラートを設定して、迅速な対応と軽減策を確保します。
正常性チェックの設定
- スクリプトまたは Azure Automation を使用して、自動化された正常性チェックを実装します。
- 正常性チェックを監視し、問題に対する自動応答またはアラートをトリガーします。
- 自動スケーリング イベントが発生したときに通知するように、Azure Monitor 内のアラートを設定します。
セットアップとデプロイの手順の例
このセクションでは、HPC 環境を効率的に監視するために、Azure Monitor を設定し、Grafana ダッシュボードを構成するための包括的なガイドを提供します。 これには、Azure Monitor ワークスペースの作成、それのリソースへのリンク、データ収集の構成、Azure Managed Grafana のデプロイ、アラートと自動化された正常性チェックの設定に関する詳細な手順が含まれています。
Azure Monitor の設定
Azure Monitor への移動:
- Azure ポータルにアクセスします。
- 左側のナビゲーション ウィンドウで、[監視] を選択します。
Azure Monitor ワークスペースの作成:
- [監視] セクションの下にある [ワークスペース] を選択します。
- [作成] を選択して、新しい Azure Monitor ワークスペースを設定します。
- 名前を入力し、サブスクリプション、リソース グループ、場所を選択します。
- [確認と作成]、[作成] の順に選択して、ワークスペースをデプロイします。
リソースへの Azure Monitor ワークスペースのリンク:
- 監視したいリソース (例: 仮想マシン) に移動します。
- [監視] セクションで、[診断設定] を選択します。
- [診断設定の追加] を選択し、Azure Monitor ワークスペースに送信されるログとメトリックを構成します。
データ収集の構成:
- [Azure Monitor] セクションで、[データ収集ルール] を選択して、さまざまな Azure リソースからログとメトリックを収集するためのルールを設定して管理します。
注
Azure Monitor に関する詳細については、「Azure Monitor メトリックの概要」ページを参照してください。
Grafana ダッシュボードの構成
Azure Managed Grafana のデプロイ:
- Azure Marketplace に移動します。
- "Azure Managed Grafana" を検索し、[作成] を選択します。
- サブスクリプション、リソース グループ、インスタンスの詳細など、必要な詳細を入力します。
- [確認と作成]、[作成] の順に選択して、Grafana インスタンスをデプロイします。
Azure Monitor への Grafana の接続:
- Grafana がデプロイされたら、Azure portal を通して、またはパブリック エンドポイント経由で直接それにアクセスします。
- Grafana で、[構成] -> [データ ソース] -> [データ ソースの追加] に移動します。
- 利用可能なデータ ソースの一覧から [Azure Monitor] を選択します。
- サブスクリプション ID、テナント ID、クライアント ID などの必要な詳細を指定し、Azure 資格情報を使用して認証します。
カスタム ダッシュボードの作成:
- データ ソースが追加されたら、[ダッシュボード] -> [管理] -> [新しいダッシュボード] に移動します。
- パネル エディターを使用して、Azure Monitor によって収集されたメトリックに基づく視覚化 (グラフ、チャートなど) を追加します。
- ダッシュボードをカスタマイズして、CPU 使用率、メモリ使用量、ディスク I/O、ネットワーク スループット、ジョブ キューの長さ、ジョブの実行時間などの主要なメトリックを表示します。
- ダッシュボードを保存し、それを関連のある関係者と共有します。
注
Azure Managed Grafana の詳細については、「Azure Managed Grafana」ページを参照してください。
Prometheus の構成
Azure Managed Prometheus のデプロイ:
- Azure Marketplace に移動します
- "Azure Managed Prometheus" を検索し、[作成] を選択します。
- 必要事項を入力します。
- サブスクリプション、リソース グループ、インスタンスの詳細などの必要な情報を指定します。
- 設定を確認し、[作成] を選択してインスタンスをデプロイします。
注
Azure Managed Prometheus の詳細については、「Prometheus 用の Azure Monitor マネージド サービス」ページを参照してください。
Prometheus を Grafana と統合する
-
Grafana 内のデータ ソースとしての Prometheus の追加:
- Grafana で、[構成] -> [データ ソース] -> [データ ソースの追加] に移動します。
- [Prometheus] を選択し、Prometheus のエンドポイント URL を指定します。
-
カスタム ダッシュボードの作成:
- [ダッシュボード] -> [管理] -> [新しいダッシュボード] に移動します。
- Prometheus によって収集されたメトリックに基づく視覚化を追加します。
- 主要なメトリックを表示するためのダッシュボードをカスタマイズして保存します。
アラートの作成
Azure Monitor に移動し、[アラート] を選択します。
[新しいアラート ルール] を選択して新しいアラートを作成します。
監視したいリソース (VM、ストレージ アカウント、ネットワーク インターフェイスなど) を選択して、スコープを定義します。
メトリックまたはログ データに基づく条件を設定します。 たとえば、80% を超える CPU 使用率、90% を超えるディスク領域の使用、または応答していない VM に対するアラートを設定します。
-
アクション グループの定義:
- メールの送信、Azure 関数のトリガー、Webhook の実行など、アラートがトリガーされたときに実行するアクションを指定します。
- これらの応答を効率的に管理して整理するためのアクション グループを作成します。
-
アクション グループの定義:
高度な監視のための追加の手順
アラートの設定:
- Azure Monitor で、[アラート] -> [新しいアラート ルール] に移動します。
- 監視したいリソースを選択して、スコープを定義します。
- アラートの条件 (例: CPU 使用率 > 80%) を設定します。
- メール通知の送信や Azure 関数のトリガーなどのアクションを構成します。
自動化された正常性チェックの実装:
- Azure Automation を使用して、HPC 環境上で正常性チェックを実行する Runbook を作成してスケジュールします。
- これらの Runbook で、クリティカルなサービス、リソースの可用性、システムのパフォーマンスの状態を確認するようにします。
- 何らかの正常性チェックが失敗したり、問題を示している場合に、管理者に通知するアラートを設定します。
監視構成の定期的なレビューと更新:
- Azure Monitor と Grafana で構成されたメトリックとアラートを定期的にレビューします。
- HPC 環境またはビジネス要件の変更に基づいて、しきい値の調整、新しいメトリックの追加、視覚化の変更を行います。
- 監視ダッシュボードの解釈、アラートへの対応、監視ツールの効果的な使用についてスタッフをトレーニングします。
実装例
自動化された正常性チェック スクリプト:
#!/bin/bash
# Check if a VM is running
vm_status=$(az vm get-instance-view --name <vm-name> --resource-group <resource-group> --query instanceView.statuses[1] --output tsv)
if [[ "$vm_status" != "PowerState/running" ]]; then
# Restart VM if not running
az vm start --name <vm-name> --resource-group <resource-group>
fi