이벤트, 메트릭 및 로그를 사용하여 실행되는 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 값을 표시합니다. 즉, 두 개체 모두 작업이 성공하기 전에 끊어지거나 해제되어야 하는 활성 임대가 있습니다.