イベント、メトリック、ログを使用して、Azure Blob Storage ライフサイクル管理ポリシーの実行を監視できます。 イベントをサブスクライブすることで、ライフサイクル管理の実行がいつ完了するかを判断できます。 イベント プロパティを使用して問題を特定し、メトリックとログを使用してそれらの問題を診断できます。
実行が完了したときに通知を受信する
ライフサイクル管理の実行が完了したときに通知を受け取るために、 LifecyclePolicyCompleted
イベントをサブスクライブします。 このイベントは、ライフサイクル管理ポリシーによって定義されたアクションが実行されるときに生成されます。 ポリシー定義に含まれるアクションごとに、概要セクションが表示されます。 次の JSON は、ポリシーの LifecyclePolicyCompleted
エントリの例を示しています。
delete
、tierToCool
、tierToCold
、およびtierToArchive
アクションの概要セクションが表示されます。 次の JSON は、イベント通知の例を示しています。
{
"topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/contosoresourcegroup/providers/Microsoft.Storage/storageAccounts/contosostorageaccount",
"subject": "BlobDataManagement/LifeCycleManagement/SummaryReport",
"eventType": "Microsoft.Storage.LifecyclePolicyCompleted",
"eventTime": "2022-05-26T00:00:40.1880331",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"data": {
"scheduleTime": "2022/05/24 22:57:29.3260160",
"policyRunSummary": {
"completionStatus": "Completed/CompletedWithError/Incomplete"
},
"deleteSummary": {
"totalObjectsCount": 5,
"successCount": 3,
"errorList": ["testFile4.txt", "testFile5.txt"]
},
"tierToCoolSummary": {
"totalObjectsCount": 0,
"successCount": 0,
"errorList": ""
},
"tierToColdSummary": {
"totalObjectsCount": 0,
"successCount": 0,
"errorList": ""
},
"tierToArchiveSummary": {
"totalObjectsCount": 0,
"successCount": 0,
"errorList": ""
}
},
"dataVersion": "1",
"metadataVersion": "1"
}
イベントをサブスクライブするさまざまな方法の詳細については、 Azure Event Grid のイベント ハンドラーに関するページを参照してください。
メトリックとログを使用したエラーの調査
前のセクションのイベント応答の例は、ライフサイクル管理ポリシーが 5 つのオブジェクトを削除しようとしましたが、そのうちの 3 つだけで成功したことを示しています。
testFile4.txt
ファイルとtestFile5.txt
ファイルは、その実行の一部として正常に削除されませんでした。 一部のオブジェクトが正常に処理されなかった理由を診断するには、メトリック ス エクスプローラーを使用し、Azure Monitor でリソース ログにクエリを実行します。
メトリック
操作が失敗した 正確なタイミング を確認するには、メトリックス エクスプローラーを使用します。
scheduleTime
とeventTime
プロパティに表示されるLifecyclePolicyCompleted
値の間の時間枠で、アカウントに対して適用されたすべてのトランザクションを確認できます。
次のメトリック フィルターを使用して、ポリシーによって実行されるトランザクションを絞り込みます。
フィルター | オペレーター | 価値 |
---|---|---|
トランザクションの種類 | 等しい | system |
API 名 | 等しい | DeleteBlob |
応答の種類 | 等しくない | Success |
次の図は、クエリの例とクエリ結果を示しています。 クエリ結果に表示される折れ線グラフには、これらの操作が失敗した時刻が表示されます。
ログ
オブジェクトがポリシーによって正常に処理されなかった理由を確認するには、リソース ログを確認します。 ログをエラーの時間枠に絞り込みます。 次に、 UserAgentHeader フィールドが ObjectLifeCycleScanner または OLCMScanner に設定されているエントリを確認します。 Azure Monitor Log Analytics ワークスペースにログを送信するように診断設定を構成した場合は、Kusto クエリを使用してそれらのログ エントリを見つけることができます。 診断設定を構成する方法の詳細については、「 Blob Storage の監視」を参照してください。
次のクエリ例では、ライフサイクル管理ポリシーによって開始された失敗した削除操作のログ エントリを検索します。
StorageBlobLogs
| where OperationName contains "DeleteBlob" and UserAgentHeader contains "ObjectLifeCycleScanner"
| project TimeGenerated, StatusCode, StatusText
StatusCode と StatusText は、エラーの原因を示します。 次の図は、そのクエリの出力を示しています。 どちらのログ エントリにも、LeaseIdMissing の StatusText 値が表示されます。 これは、操作が成功する前に、両方のオブジェクトのアクティブなリースを破棄または解放する必要があることを意味します。