Azure Monitor で AIOps と機械学習を使用して潜在的な問題を検出して軽減する
IT 操作のための人工知能 (AIOps) は、機械学習を使用して、アプリケーション、サービス、IT リソースから Azure Monitor に収集したデータを処理して自動的に処理することで、サービスの品質と信頼性を向上させる強力な方法を提供します。
Azure Monitor の組み込み AIOps 機能は分析情報を提供し、問題のトラブルシューティングを支援します。また、容量の使用状況と自動スケーリングの予測、アプリケーションのパフォーマンスの問題の特定と分析、仮想マシン、コンテナー、その他のリソースでの異常な動作の検出など、データドリブン タスクを自動化します。 これらの機能により、機械学習の知識とさらなる投資を必要とせずに、IT の監視と操作が向上します。
Azure Monitor には、新しい分析と応答の機能を導入し、Azure Monitor ログ内のデータに対して操作するための独自の機械学習パイプラインを作成できるツールも用意されています。
この記事では、Azure Monitor の組み込みの AIOps 機能について説明し、カスタマイズされた機械学習モデルを作成して実行し、Azure Monitor ログのデータに対して自動機械学習パイプラインを構築する方法について説明します。
組み込みの Azure Monitor AIOps と機械学習の機能
監視シナリオ | 機能 | 説明 |
---|---|---|
ログの監視 | Log Analytics Workspace Insights | Log Analytics ワークスペースの統合ビューを提供し、機械学習を使用してインジェストの異常を検出します。 |
Kusto 照会言語 (KQL) 時系列分析と機械学習関数 | データ サイエンスとプログラミング言語に関する詳細な知識を必要とせずに、時系列データの生成、異常の検出、予測、根本原因分析を Azure Monitor ログで直接実行するための使いやすいツール。 | |
Microsoft Copilot in Azure | Log Analytics を使用したデータ分析と問題のトラブルシューティングに役立ちます。 "コンテナー ログにエラーがあるか" などのプロンプトに基づいて、KQL クエリの例を生成します。 | |
アプリケーション パフォーマンス監視 | アプリケーション マップのインテリジェント ビュー | サービス間の依存関係をマッピングし、分散アプリケーションのすべてのコンポーネントを対象にパフォーマンスのボトルネックや障害のホットスポットを特定できます。 |
スマート検出 | アプリケーションから Application Insights に送信されるテレメトリ、パフォーマンスの問題とエラーの異常に関するアラートを分析し、アプリケーションのパフォーマンスの問題の潜在的な根本原因を特定します。 | |
メトリック アラート | メトリック アラートの動的しきい値 | メトリック パターンを学習し、履歴データに基づいてアラートのしきい値を自動的に設定し、サービスの問題を示す可能性のある異常を特定します。 |
仮想マシン スケール セット | 予測自動スケーリング | 過去の CPU 使用率パターンに基づいて仮想マシン スケール セットの全体的な CPU 要件を予測し、これらのニーズを満たすように自動的にスケールアウトします。 |
Azure Monitor ログでの機械学習
Kusto 照会言語の組み込みの時系列分析と機械学習の関数、オペレーター、プラグインを使用して、サービスの正常性、使用状況、容量、その他の傾向に関する分析情報を得て、Azure Monitor ログで予測を生成し、異常を検出します。
柔軟性を高め、データを分析して操作する機能を拡張するために、Azure Monitor ログのデータに対して独自の機械学習パイプラインを実装することもできます。
次の表では、KQL の組み込みの機械学習機能を使用する場合と、独自の機械学習パイプラインを作成する場合の利点と制限事項を比較し、それぞれを実装する方法を示すチュートリアルへのリンクを示します。
組み込みの KQL 機械学習機能 | 独自の機械学習パイプラインを作成する | |
---|---|---|
シナリオ | ✅ 異常検出、根本原因、時系列分析 |
✅ 異常検出、根本原因、時系列分析 ✅高度な分析と AIOP のシナリオ |
長所 | 🔹非常に迅速に開始します。 🔹データ サイエンスの知識とプログラミングスキルは必要ありません。 🔹 最適なパフォーマンスとコスト削減。 |
🔹より大きなスケールをサポートします。 🔹高度で複雑なシナリオを有効にします。 🔹ライブラリ、モデル、パラメーターを柔軟に選択できます。 |
サービスの制限とデータ ボリューム | Azure portal またはクエリ API ログクエリの制限は、ポータルで作業しているか、ノートブックから API を使用しているかによって異なります。 | 🔹機械学習パイプラインの一部として Azure Monitor ログ内のデータにクエリを実行する場合のクエリ API ログクエリの制限。 それ以外の場合は、Azure サービスの制限はありません。 🔹より大きなデータ ボリュームをサポートできます。 |
統合 | 必要ありません。 Azure portal または統合 Jupyter Notebook から Log Analytics を使用して実行します。 | Jupyter Notebook などのツールとの統合が必要です。 通常は、Azure Synapse Analytics などの他の Azure サービスとも統合します。 |
パフォーマンス | Azure Data Explorer プラットフォームを使用して、分散方式で高スケールで実行される最適なパフォーマンス。 | 機械学習パイプラインの実装方法に応じて、データのクエリまたはエクスポート時に少量の待機時間が導入されます。 |
モデルの種類 | 一連の構成可能なパラメーターを持つ KQL 時系列関数でサポートされる線形回帰モデルとその他のモデル。 | 完全にカスタマイズ可能な機械学習モデルまたは異常検出方法。 |
コスト | 追加コストなし。 | 機械学習パイプラインの実装方法によっては、データのエクスポート、スコア付けされたデータの Azure Monitor ログへの取り込み、その他の Azure サービスの使用に対する料金が発生する場合があります。 |
チュートリアル | Azure Monitor で KQL 機械学習機能を使用して異常を検出して分析する | ノートブックを使用して Azure Monitor ログ データを分析する |
Azure Monitor ログのデータに対して独自の機械学習パイプラインを作成する
Azure Monitor ログのデータに対して独自の機械学習パイプラインを構築して、新しい AIOps 機能を導入し、次のような高度なシナリオをサポートします。
- KQL よりも高度なモデルを使用したセキュリティ攻撃のハンティング。
- Web アプリケーションでのパフォーマンスの問題の検出とエラーのトラブルシューティング。
- マルチステップ フローを作成し、前のステップの結果に基づいて各ステップでコードを実行します。
- Azure Monitor ログ データの分析を自動化し、インフラストラクチャの正常性や顧客の行動など、複数の領域に関する分析情報を提供します。
- Azure Monitor ログ内のデータと他のソースからのデータの関連付け。
Azure Monitor ログのデータを機械学習パイプラインで使用できるようにするには、次の 2 つの方法があります。
Azure Monitor ログのデータに対してクエリを実行する - Azure Monitor ログとノートブックを統合 するか、 Azure Monitor クエリ クライアント ライブラリ や MSTICPY などのライブラリを使用してログ データに対してスクリプトまたはアプリケーションを実行し、Azure Monitor ログから表形式でデータを取得します。たとえば、 を Pandas DataFrame に変換します。 クエリを実行するデータは、Log Analytics ワークスペースからデータをエクスポートせずに、サーバー上のメモリ内オブジェクトに取得されます。
Note
パイプラインの一部としてデータ形式を変換することが必要な場合があります。 たとえば、SynapseML などの Apache Spark 上に構築されたライブラリを使用するには、Pandas を PySpark DataFrame に変換する必要がある場合があります。
Azure Monitor ログからデータをエクスポートする - Log Analytics ワークスペースから通常は BLOB ストレージ アカウントにデータをエクスポートし、機械学習ライブラリを使用して機械学習パイプラインを実装します。
次の表は、機械学習パイプラインのデータを取得する方法の利点と制限事項を比較したものです。
Azure Monitor ログでデータをクエリする | データのエクスポート | |
---|---|---|
長所 | 🔹すぐに開始します。 🔹基本的なデータ サイエンスとプログラミングのスキルのみが必要です。 🔹待機時間とコスト削減を最小限に抑えます。 |
🔹より大きなスケールをサポートします。 🔹クエリの制限事項なし。 |
データはエクスポートされましたか? | いいえ | はい |
サービスの制限 | クエリ API ログ クエリの制限 と ユーザー クエリの調整。 より大きなクエリをチャンクに分割することで、クエリ API の制限をある程度克服できます。 | Azure Monitor からはなし。 |
データ ボリューム | 複数の GB のデータ、または 1 時間あたり数百万件のレコードを分析します。 | 大容量データをサポートします。 |
機械学習ライブラリ | 小規模から中規模のデータセットの場合は、通常、 Scikit Learn などの単一ノードの機械学習ライブラリを使用します。 | 大規模なデータセットの場合は、通常、 SynapseML などのビッグ データ機械学習ライブラリを使用します。 |
待機時間 | 最小限である。 | データのエクスポートにわずかな待機時間が発生します。 |
コスト | Azure Monitor では追加料金は発生しません。 Azure Synapse Analytics、Azure Machine Learning、またはその他のサービス (使用されている場合) のコスト。 |
データエクスポート と外部ストレージのコスト。 Azure Synapse Analytics、Azure Machine Learning、またはその他のサービス (使用されている場合) のコスト。 |
ヒント
両方の実装アプローチのメリットを最大限に活用するには、ハイブリッド パイプラインを作成します。 一般的なハイブリッド アプローチは、大量のデータを含むモデル トレーニング用のデータをエクスポートし、Azure Monitor ログでデータをクエリするアプローチを使用してデータを探索し、新しいデータをスコア付けして待機時間とコストを削減することです。
Azure Monitor ログに機械学習ライフサイクルの手順を実装する
機械学習パイプラインの設定には、通常、以下で説明するステップのすべてまたは一部が含まれます。
Scikit Learn、PyTorch、Tensorflow、Spark MLlib、SynapseML など、機械学習パイプラインを実装するために使用できるさまざまな Azure およびオープンソース機械学習ライブラリがあります。
この表では、各ステップについて説明し、「Azure Monitor ログのデータで独自の機械学習パイプラインを作成する」で説明されている実装方法に基づいて、これらのステップを実装する方法の概要といくつかの例を示します。
手順 | 説明 | Azure Monitor ログでデータをクエリする | データのエクスポート |
---|---|---|---|
データの探索 | 収集したデータを調べて理解します。 | データを探索する最も簡単な方法は Log Analytics を使用することです。Log Analytics には、Azure portal 内のデータを探索および視覚化するための豊富なツールセットが用意されています。 ノートブックを使用して Azure Monitor ログ データを分析することもできます。 | Azure Monitor の外部でログを分析するには、Log Analytics ワークスペースからデータをエクスポートし、選択したサービスで環境を設定します。 Azure Monitor の外部でログを探索する方法の例については、「 Synapse を使用して Log Analytics からエクスポートされたデータを分析する」を参照してください。 |
機械学習モデルを構築してトレーニングする | モデル トレーニングは反復的なプロセスです。 研究者またはデータ サイエンティストは、トレーニング データをフェッチしてクリーニングし、特徴をエンジニアリングし、さまざまなモデルとチューニング パラメーターを試し、モデルが正確で堅牢になるまでこのサイクルを繰り返すことで、モデルを開発します。 | 小規模から中規模のデータセットの場合は、通常、Scikit Learn などの単一ノードの機械学習ライブラリを使用します。 Scikit Learn ライブラリを使用して Azure Monitor ログのデータに対して機械学習モデルをトレーニングする方法の例については、「サンプル ノートブック: 機械学習手法を使用して Azure Monitor ログの異常を検出する」を参照してください。 |
大規模なデータセットの場合は、通常、SynapseML などのビッグ データ機械学習ライブラリを使用します。 |
モデルのデプロイとスコア付け | スコアリングは、新しいデータに機械学習モデルを適用して予測を取得するプロセスです。 通常、スコアリングは最小限の待機時間で大規模に行う必要があります。 | Azure Monitor ログの新しいデータに対してクエリを実行するには、 Azure Monitor クエリ クライアント ライブラリを使用します。 オープンソース ツールを使用してデータをスコア付けする方法の例については、「サンプル ノートブック: 機械学習手法を使用して Azure Monitor ログの異常を検出する」を参照してください。 |
|
スケジュールに従ってパイプラインを実行する | パイプラインを自動化して、現在のデータに対してモデルを定期的に再トレーニングします。 | Azure Synapse Analytics または Azure Machine Learning を使用して機械学習パイプラインをスケジュールします。 | 「Azure Monitor ログのデータのクエリ」列の例を参照してください。 |
Log Analytics ワークスペースにスコア付けされた結果を取り込むには、データを使用して高度な分析情報を取得し、アラートとダッシュボードを作成できます。 Azure Monitor インジェスト クライアント ライブラリを使用してスコア付けされた結果を取り込む方法の例については、「Log Analytics ワークスペースのカスタム テーブルに異常を取り込む」を参照してください。
次のステップ
各項目の詳細情報