다음을 통해 공유


수명 주기 관리 정책 실행 모니터링

이벤트, 메트릭 및 로그를 사용하여 실행되는 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.txttestFile5.txt 파일들이 해당 실행의 일부로 성공적으로 삭제되지 않았습니다. 일부 개체가 성공적으로 처리되지 않은 이유를 진단하려면 Azure Monitor에서 메트릭 탐색기 및 쿼리 리소스 로그를 사용할 수 있습니다.

지표

작업이 실패한 시기를 정확하게 확인하려면 메트릭 탐색기를 사용합니다. scheduleTime 속성에 나타나는 eventTimeLifecyclePolicyCompleted 값 사이의 시간 범위 내에서 계정에 대해 적용된 모든 트랜잭션을 볼 수 있습니다.

다음 메트릭 필터를 사용하여 정책에 의해 실행된 트랜잭션으로 트랜잭션 범위를 좁힐 수 있습니다.

필터 오퍼레이터 가치
거래 유형 동등하다 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

StatusCodeStatusText는 오류의 원인을 나타냅니다. 다음 이미지는 해당 쿼리의 출력을 보여줍니다. 두 로그 항목 모두 LeaseIdMissingStatusText 값을 표시합니다. 즉, 두 개체 모두 작업이 성공하기 전에 끊어지거나 해제되어야 하는 활성 임대가 있습니다.

kusto 쿼리 및 실패한 개체 삭제 시도를 보여 주는 쿼리 결과를 보여 주는 스크린샷

참고하십시오