Azure Monitorの診断設定を使用して、リソース ログを収集し、platform メトリックおよびactivity log をさまざまな宛先に送信できます。 データを収集するリソースごとに個別の診断設定を作成します。 各設定では、収集するリソースのデータと、そのデータの送信先を定義します。 この記事では、診断設定の作成方法や、データの送信に使用できる宛先など、診断設定の詳細について説明します。
次のビデオでは、診断設定を使用してリソース プラットフォーム ログをルーティングする方法について説明します。 ビデオの録画以降、診断設定に次の変更が加えられましたが、この記事ではこれらのトピックについて説明します。
Warning
そのリソースを削除または名前変更する場合、またはリソース グループまたはサブスクリプション間で移行する場合は、リソースの診断設定を削除します。 診断設定が削除されず、このリソースが再作成された場合は、削除されたリソースの診断設定を新しいリソースに適用できます。 一部のリソースの種類では、この状況では、診断設定で定義されているリソース ログの収集が再開されます。
Sources
診断設定では、次の表のソースからデータを収集できます。 各ソースが収集するデータとその形式の詳細については、リンクされた記事を参照してください。
| データ ソース | Description |
|---|---|
| プラットフォームのメトリック | 構成なしで自動的に収集されます。 診断設定を使用して、プラットフォーム メトリックを他の宛先に送信します。 |
| アクティビティ ログ | 構成なしで自動的に収集されます。 診断設定を使用して、アクティビティ ログ エントリを他の宛先に送信します。 |
| リソース ログ | 既定では収集されません。 リソース ログを収集するための診断設定を作成します。 |
診断設定を構成した後、各データ ソースが分析に使用できるようになるまでの時間は異なります。 プラットフォーム メトリック、リソース ログ、アクティビティ ログの予想される待機時間については、 Azure Monitor でのログ データ インジェスト時間に関するページを参照してください。
Destinations
診断設定は、次の表の宛先にデータを送信します。 転送中のデータのセキュリティを確保するために、すべての宛先エンドポイントが TLS 1.2 をサポートするように構成されています。
1 つの診断設定で、各宛先を 1 つ以上定義することはできません。 特定の種類の複数の宛先 (たとえば、2 つのLog Analytics ワークスペース) にデータを送信する場合は、複数の設定を作成します。 各リソースには、最大 5 つの診断設定を作成できます。
設定を作成するには、診断設定で使用する宛先が存在している必要があります。 設定を構成するユーザーが両方のサブスクリプションに対する適切なAzureロールベースのアクセス制御 (RBAC) アクセス権を持っている場合、宛先はログを送信するリソースと同じサブスクリプションに存在する必要はありません。 Azure Lighthouseを使用して、別のMicrosoft Entra テナントに宛先を含めます。
| Destination | Description | Requirements |
|---|---|---|
| Log Analytics ワークスペース | ログ クエリとワークブックを使用してデータを取得します。 ログ アラートを使用して、データに対して事前にアラートを生成します。 さまざまなAzure リソースで使用されるテーブルについては、Azure Monitor リソース ログリファレンスを参照してください。 | Log Analytics ワークスペース内のすべてのテーブルは、最初のデータがワークスペースに送信されるときに自動的に作成されるため、ワークスペース自体のみが存在する必要があります。 |
| Azure Storage アカウント | 監査、静的分析、またはバックアップ用に保存します。 ストレージは他のオプションよりもコストが低く、無期限に保持できます。 変更を防ぐために、変更できないストレージにデータを送信します。 「BLOB バージョンの不変ポリシーを構成する」の説明に従って、ストレージ アカウントの不変ポリシーを設定します。 | リソースがリージョンに属する場合、ストレージ アカウントも監視対象のリソースと同じリージョンにある必要があります。 仮想ネットワークが有効になっている場合、診断設定からストレージ アカウントにアクセスできません。 信頼された Microsoft サービスを有効にして、ストレージ アカウントでこのファイアウォール設定をバイパスし、Azure Monitor診断設定サービスにストレージ アカウントへのアクセスが許可されるようにする必要があります。 Azure DNS ゾーン エンドポイント (プレビュー)および Premium ストレージ アカウントは、宛先としてサポートされていません。 Standard ストレージ アカウントはすべてサポートされています。 |
| Azure Event Hubs | Microsoft 以外のセキュリティ情報およびイベント管理 (SIEM) ソリューションやその他のLog Analytics ソリューションなどの外部システムにデータをストリーミングします。 | イベント ハブは、監視しているリソースがリージョナルである場合、そのリソースと同じリージョンに存在する必要があります。
compacted イベント ハブを使用することはできません。メッセージにはパーティション キーが必要であり、Azure Monitorには含まれません。 仮想ネットワークが有効になっている場合、診断設定はイベント ハブにアクセスできません。 信頼された Microsoft サービスを許可を有効にすることで、イベント ハブのこのファイアウォール設定をバイパスし、Azure Monitor 診断設定サービスがイベント ハブ リソースにアクセスできるようにする必要があります。 Event Hubs 名前空間の共有アクセス ポリシーは、ストリーミング メカニズムに与えるアクセス許可を定義します。 イベント ハブへのストリーミングには、 Manage、 Send、および Listen のアクセス許可が必要です。 ストリーミングを含むように診断設定を更新するには、その Event Hubs 承認規則に対する ListKey アクセス許可が必要です。 |
| Azure Monitor パートナー ソリューション | Azure Monitorと他の Microsoft 以外の監視プラットフォームの間で、特殊な統合が可能です。 ソリューションはパートナーによって異なります。 | 詳細については、Azure Native ISV Services のドキュメントを参照してください。 |
診断設定を作成するためのメソッド
診断設定は、次のいずれかの方法を使用して作成できます。
Azure ポータルを使用してアクティビティ ログの診断設定を作成するには、Export アクティビティ ログを参照してください。 管理グループの診断設定を作成するには、「管理グループの 診断設定」を参照してください。
次の手順を使用して、新しい診断設定を作成するか、Azure ポータルで既存の診断設定を編集します。
リソースのメニューの [ 監視 ] セクションで、[ 診断設定] を選択します。 または、Azure Monitor メニューで、Settings>Diagnostic settings を選択します。 次に、リソースを選択します。
[ 診断設定の追加] を選択して新しい設定を追加するか、[ 設定の編集] を選択して既存の設定を編集します。
同じ種類の複数の宛先に送信する場合は、リソースに対して複数の診断設定が必要になる場合があります。 次の例はキー ボールト リソースの設定を示していますが、他のリソースの設定画面も似たようなものになります。
まだ設定されていない場合は、わかりやすい名前を付けます。
このスクリーンショットは、キー ボールトの例を示しています。 その他の種類のリソースには、カテゴリのセットが異なります。
[ログ] では、カテゴリ グループを選択するか、送信先に送信するデータの各カテゴリの個々のチェック ボックスをオンにします。 カテゴリの一覧は、Azure サービスごとに異なります。
プラットフォーム メトリックを収集する場合は、[メトリック] で [AllMetrics] を選択します。
[ 宛先の詳細] で、診断設定に含める各宛先のチェック ボックスをオンにします。 次に、各宛先の詳細を指定します。
Log Analytics ワークスペースを宛先として選択した場合は、コレクション モードの指定が必要になる場合があります。 詳細については、「 コレクション モード」を参照してください。
Warning
ストレージ アカウントまたは Event Hubs 名前空間の診断設定を作成または更新する場合、そのアカウントまたは名前空間をリソース ログまたはメトリック データの宛先として選択することはできません。 この制限は仕様です。 リソースログまたはメトリックをリソースから同じリソースに送信すると、データの生成と書き込みの無限ループが生成されます。
この設計は、Azure ポータル UX レイヤーにのみ適用されます。 同じリソースにデータを書き込む必要があり、関連するリスクを受け入れる場合は、Azure PowerShell、Azure CLI、REST API、Resource Manager テンプレート、またはサポートされている Microsoft SDK を使用して診断設定を作成できます。
カテゴリ グループ
カテゴリ グループを使用すると、個々のログ カテゴリを選択する代わりに、定義済みのグループに基づいてリソース ログを収集できます。 Microsoft では、一般的なユース ケースの監視に役立つグループを定義します。 グループ内のカテゴリが更新されると、ログ コレクションが自動的に変更されます。
すべてのAzure サービスでカテゴリ グループが使用されるわけではありません。 特定のリソースに対してカテゴリ グループを使用できない場合、診断設定を作成するときにこのオプションは使用できません。
診断設定でカテゴリ グループを使用する場合、個々のカテゴリの種類を選択することはできません。 現時点では、次の 2 つのカテゴリグループがあります。
-
allLogs: リソースのすべてのカテゴリ。 -
audit: データまたはサービスの設定に対する顧客の対話を記録するすべてのリソース ログ。allLogsカテゴリ グループを選択する場合は、このカテゴリ グループを選択する必要はありません。
Note
Azure SQL Databaseの診断設定で audit カテゴリを有効にしても、データベースの監査はアクティブになりません。 データベース監査を有効にするには、Azure SQL Databaseの監査ウィンドウから有効にする必要があります。
メトリクスの制約
診断設定を使用して、すべてのメトリックを Log Analytics ワークスペースに送信できるわけではありません。 サポートされているメトリックの一覧の [エクスポート可能] 列を参照してください。
現在、診断設定では多次元メトリックはサポートされていません。 ディメンションを持つメトリックは、フラット化された 1 次元メトリックとしてエクスポートされ、ディメンション値間で集計されます。 たとえば、ブロックチェーンの IOReadBytes メトリックは、ノード単位のレベルで調査およびグラフ化できます。 メトリックが診断設定でエクスポートされると、すべてのノードのすべての読み取りバイトが表示されます。
特定のメトリックの制限を回避するには、 Metrics REST API を使用して手動で抽出します。 その後、Logs Ingestion API を使用して、Log Analytics ワークスペースにインポートできます。
コストの制御
診断設定によって収集されるデータのコストが発生する場合があります。 コストは、選択した宛先と収集されたデータの量によって異なります。 詳細については、「 Azure Monitor の価格 」を参照するか、「 よく寄せられる質問」セクションを参照してください。
各サービスに必要なカテゴリのみを収集します。 メトリックは既にこのデータを収集しているため、Azure リソースからプラットフォーム メトリック を収集したくない場合もあります。 ログ クエリを使用してより複雑な分析を行うためにワークスペースにメトリック データが必要な場合にのみ、メトリックを収集するように診断データを構成します。
診断設定では、選択したカテゴリ内で細かいフィルター処理を行うことはできません。 変換を使用して、Log Analytics ワークスペースでサポートされているテーブルのデータをフィルター処理できます。 詳細については、Azure Monitor の
データが宛先に到達するまでの時間
診断設定を作成すると、90 分以内に選択した宛先へのデータのフローが開始されます。 Log Analytics ワークスペースにデータを送信する場合、テーブルがまだ存在しない場合は自動的に作成されます。 テーブルは、宛先が最初のログ レコードを受信した場合にのみ作成されます。
24 時間以内に情報が表示されない場合は、次のいずれかの問題が発生している可能性があります。
- ログが生成されていない。
- 根本的なルーティング メカニズムに問題が発生している。
構成を無効にしてから、再度有効にしてみてください。 問題が解決しない場合は、Azure ポータルからAzure supportにお問い合わせください。
Application Insights
Application Insights アプリケーションの診断設定については、次の情報を考慮してください。
- 宛先は、Application Insights リソースの基になっているLog Analyticsワークスペースと同じにすることはできません。
- Application Insights ユーザーは、両方のワークスペースにアクセスできません。 Log Analytics アクセス制御モードを Requires ワークスペースのアクセス許可に設定します。 Azure RBAC を使用して、ユーザーが Application Insights リソースの基になっているLog Analytics ワークスペースにのみアクセスできることを確認します。
Application Insights は、完全なエンドツーエンドのトランザクション操作と正確なアプリケーション マップを提供するために、リソース間でデータにアクセスするため、これらの手順が必要です。 これらのリソースには、Log Analyticsワークスペースが含まれます。 診断ログでは同じテーブル名が使用されるため、ユーザーが同じデータを含む複数のリソースにアクセスできる場合は、重複データが表示される可能性があります。
Troubleshooting
メトリック カテゴリはサポートされていません
Resource Manager テンプレート、REST API、Azure CLI、またはAzure PowerShellを使用している場合、"メトリック カテゴリ 'xxxx' はサポートされていません" のようなエラー メッセージが表示されることがあります。
AllMetrics 以外のメトリック カテゴリはサポートされていません。ただし、Azure サービスの数は限られています。
AllMetrics以外のメトリック カテゴリ名を削除し、デプロイを繰り返します。
リソース ID の ASCII 以外の文字が原因で設定が消える
診断設定では、ASCII 以外の文字 ( Preproduccón など) を持つリソース ID はサポートされていません。 Azure内のリソースの名前を変更できないため、ASCII 以外の文字を使用せずに新しいリソースを作成する必要があります。 文字がリソース グループ内にある場合は、そのリソースを新しいグループに移動できます。
リソースが非アクティブです
リソースが非アクティブで、ゼロ値メトリックをエクスポートしている場合、診断設定のエクスポート メカニズムは増分的に戻り、ゼロ値のエクスポートと格納の不要なコストを回避します。 このバックオフにより、次の 0 以外の値のエクスポートが遅延する可能性があります。 この動作は、エクスポートされたメトリックにのみ適用され、メトリックベースのアラートや自動スケーリングには影響しません。
リソースが 1 時間非アクティブになると、エクスポート メカニズムは 15 分に戻ります。 この状況は、次の 0 以外の値がエクスポートされるまでに最大 15 分の待機時間が発生する可能性があることを意味します。 リソースは、7 日間非アクティブになってから 2 時間の最大バックオフ時間に達します。 リソースが 0 以外の値のエクスポートを開始すると、エクスポート メカニズムは 3 分の元のエクスポート待機時間に戻ります。
すべてのソースの種類の通常の運用条件下での予想される待機時間については、 Azure Monitor でのログ データ インジェスト時間に関するページを参照してください。