Azure Monitor を使用して Azure Cosmos DB for MongoDB 仮想コア診断ログを監視する
適用対象: MongoDB 仮想コア
Azure の診断ログは、Azure Cosmos DB for MongoDB 仮想コア アカウントの Azure リソース ログをキャプチャするために不可欠です。 これらのログは、アカウントに伴うリソースの操作に関する詳細で頻繁な分析情報を提供します。
重要
この機能は、M25
(バースト可能) または M30
(Free レベル) SKU では使用できません。
前提条件
- 既存の Azure Cosmos DB for MongoDB 仮想コア クラスター。
- Azure サブスクリプションをお持ちでない場合は、無料でアカウントを作成します。
- 既存の Azure サブスクリプションがある場合は、新しい Azure Cosmos DB for MongoDB 仮想コア クラスターを作成します。
- 既存の Log Analytics ワークスペース、または Azure Storage アカウントです。
診断設定の作成
プラットフォーム メトリックとアクティビティ ログは自動的に収集されます。 リソース ログを収集し、Azure Monitor から外部にルーティングするには、診断設定を確立する必要があります。 Azure Cosmos DB アカウントの診断設定をアクティブ化するときは、それらを Log Analytics ワークスペース、または Azure Storage アカウントにルーティングするよう選択する必要があります。
clusterName
とresourceGroupName
のシェル変数を作成します。# Variable for API for MongoDB vCore cluster resource clusterName="<resource-name>" # Variable for resource group resourceGroupName="<resource-group-name>"
workspaceName
、diagnosticSettingName
のシェル変数を作成します。# Variable for workspace name workspaceName="<storage-account-name>" # Variable for diagnostic setting name diagnosticSettingName="<diagnostic-setting-name>"
Note
たとえば、Log Analytics ワークスペースの名前が
test-workspace
で、診断設定の名前がtest-setting
である場合は、次のようになります。workspaceName="test-workspace" diagnosticSettingName:"test-setting"
MongoDB 仮想コア クラスター用 API のリソース識別子を取得します。
az cosmosdb mongocluster show \ --resource-group $resourceGroupName \ --cluster-name $clusterName clusterResourceId=$(az cosmosdb mongocluster show \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --query "id" \ --output "tsv" \ )
Log Analytics ワークスペースのリソース識別子を取得します。
az monitor log-analytics workspace show \ --resource-group $resourceGroupName \ --name $workspaceName workspaceResourceId=$(az monitor log-analytics workspace show \ --resource-group $resourceGroupName \ --name $workspaceName \ --query "id" \ --output "tsv" \ )
az monitor diagnostic-settings create
を使用して設定を作成します。az monitor diagnostic-settings create \ --resource-group $resourceGroupName \ --name $diagnosticSettingName \ --resource $clusterResourceId \ --export-to-resource-specific true \ --logs '[{category:vCoreMongoRequests,enabled:true,retention-policy:{enabled:false,days:0}}]' \ --workspace $workspaceResourceId
重要
--export-to-resource-specific true
設定を有効にすると、MongoDB 仮想コア要求ログ イベント用 API が、専用スキーマで特別に設計されたvCoreMongoRequests
テーブルに効率的に取り込まれます。これに対し、
--export-to-resource-specific true
の構成を行わない場合、MongoDB 仮想コア要求ログ イベントの API が一般的なAzureDiagnostics
テーブルにルーティングされます。ポータルで診断設定を作成する場合、現在は、ログ イベントが
AzureDiagnostics
テーブルに送られることに注意してください。 リソース固有のVCoreMongoRequests
テーブルにログをエクスポートする方がよい場合は、Azure CLI を利用して--export-to-resource-specific true
オプションを指定することをお勧めします。
診断設定の管理
場合によっては、設定を見つけたり削除したりして、設定を管理する必要があります。 az monitor diagnostic-settings
コマンド・グループには、診断設定を管理するためのサブコマンドが含まれています。
MongoDB 仮想コア クラスターの API に関連付けられているすべての診断設定を一覧表示します。
az monitor diagnostic-settings list \ --resource-group $resourceGroupName \ --resource $clusterResourceId
関連付けられているリソースと設定の名前を使用して、特定の設定を削除します。
az monitor diagnostic-settings delete \ --resource-group $resourceGroupName \ --name $diagnosticSettingName \ --resource $clusterResourceId
高度な診断のクエリを使用する
これらのリソース固有のクエリを使用して、MongoDB 仮想コア クラスター用 API での一般的なトラブルシューティング調査を実行します。
重要
このセクションでは、リソース固有のログで Log Analytics ワークスペースを使用していることを前提としています。
MongoDB 仮想コア クラスター用 API の Logs セクションに移動します。 サンプル クエリの一覧を確認します。
このクエリを実行して、エラー コード でグループ化された MongoDB 仮想コア要求の失敗した API の数をカウントします。
VCoreMongoRequests // Time range filter: | where TimeGenerated between (StartTime .. EndTime) // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name" | where ErrorCode != 0 | summarize count() by bin(TimeGenerated, 5m), ErrorCode=tostring(ErrorCode)
このクエリを実行して、操作名ごとの MongoDB 仮想コア要求の API
P99
のランタイム期間を取得します。// Mongo vCore requests P99 duration by operation // Mongo vCore requests P99 runtime duration by operation name. VCoreMongoRequests // Time range filter: | where TimeGenerated between (StartTime .. EndTime) // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name" | summarize percentile(DurationMs, 99) by bin(TimeGenerated, 1h), OperationName
このクエリを実行して、ランタイム期間の合計でグループ化された MongoDB 仮想コア要求の API の数を取得します。
// Mongo vCore requests binned by duration // Count of Mongo vCore requests binned by total runtime duration. VCoreMongoRequests // Time range filter: | where TimeGenerated between (StartTime .. EndTime) // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name" | project TimeGenerated, DurationBin=tostring(bin(DurationMs, 5)) | summarize count() by bin(TimeGenerated, 1m), tostring(DurationBin)
このクエリを実行して、ユーザー エージェントごとの MongoDB 仮想コア要求の API の数を取得します。
// Mongo vCore requests by user agent // Count of Mongo vCore requests by user agent. VCoreMongoRequests // Time range filter: | where TimeGenerated between (StartTime .. EndTime) // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name" | summarize count() by bin(TimeGenerated, 1h), UserAgent
関連するコンテンツ
- MongoDB との機能の互換性について詳細を確認する。
- MongoDB から Azure Cosmos DB for MongoDB 仮想コアに移行するためのオプションを確認する。
- アカウントの作成から始める。