Azure Monitor REST API를 통해 진단 로그 설정

이 문서에서는 Azure Monitor REST API를 사용하여 Azure Data Factory에 대한 진단 로그를 설정하는 방법을 설명합니다.

진단 설정

진단 설정을 사용하여 비컴퓨트 리소스에 대한 진단 로그를 구성합니다. 리소스 컨트롤에 대한 설정에는 다음과 같은 기능이 있습니다.

  • 진단 로그가 전송되는 위치를 지정합니다. 예를 들어 Azure Storage 계정, Azure 이벤트 허브 또는 모니터 로그가 있습니다.
  • 전송되는 로그 범주를 지정합니다.
  • 각 로그 범주를 스토리지 계정에 유지할 기간을 지정합니다.
  • 0일의 보존은 로그가 영원히 유지된다는 것을 의미합니다. 그렇지 않으면 값은 1에서 2,147,483,647까지의 일 수일 수 있습니다.
  • 보존 정책을 설정했지만 스토리지 계정에 로그를 저장할 수 없으면 보존 정책이 적용되지 않습니다. 예를 들어 이 조건은 이벤트 허브 또는 모니터 로그 옵션만 선택된 경우에 발생할 수 있습니다.
  • 보존 정책은 하루에 적용됩니다. 일 간의 경계는 자정 UTC(협정 세계시)에 발생합니다. 하루가 끝나면 보존 정책을 벗어난 일의 로그가 삭제됩니다. 예를 들어 보존 정책이 하루인 경우 오늘 시작 시 어제 이전의 로그가 삭제됩니다.

모니터 REST API를 통해 진단 로그를 활성화합니다.

REST API 모니터링을 사용하여 진단 로그를 사용하도록 설정합니다.

MONITOR REST API에서 진단 설정 만들기 또는 업데이트

요청

PUT
https://management.azure.com/{resource-id}/providers/microsoft.insights/diagnosticSettings/service?api-version={api-version}

헤더

  • {api-version}2016-09-01로 교체합니다.
  • {resource-id}를 진단 설정을 편집하려는 리소스의 ID로 바꾸십시오. 자세한 내용은 리소스 그룹을 사용하여 Azure 리소스 관리를 참조하세요.
  • Content-Type 헤더를 application/json로 설정합니다.
  • 권한 부여 헤더를 Microsoft Entra ID에서 얻은 JSON 웹 토큰으로 설정합니다. 자세한 내용은 요청 인증을 참조하세요.

{
    "properties": {
        "storageAccountId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Storage/storageAccounts/<storageAccountName>",
        "serviceBusRuleId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>/providers/Microsoft.EventHub/namespaces/<eventHubName>/authorizationrules/RootManageSharedAccessKey",
        "workspaceId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<LogAnalyticsName>",
        "metrics": [
        ],
        "logs": [
                {
                    "category": "PipelineRuns",
                    "enabled": true,
                    "retentionPolicy": {
                        "enabled": false,
                        "days": 0
                    }
                },
                {
                    "category": "TriggerRuns",
                    "enabled": true,
                    "retentionPolicy": {
                        "enabled": false,
                        "days": 0
                    }
                },
                {
                    "category": "ActivityRuns",
                    "enabled": true,
                    "retentionPolicy": {
                        "enabled": false,
                        "days": 0
                    }
                }
            ]
    },
    "location": ""
}
재산 유형 설명
storageAccountId 스트링 진단 로그를 보낼 스토리지 계정의 리소스 ID입니다.
serviceBusRuleId 스트링 스트리밍 진단 로그에 대해 이벤트 허브를 만들려는 service-bus 네임스페이스의 서비스 버스 규칙 ID입니다. 규칙 ID의 형식 {service bus resource ID}/authorizationrules/{key name}은 다음과 같습니다.
workspaceId 스트링 로그를 저장할 작업 영역의 작업 영역 ID입니다.
메트릭 호출된 파이프라인에 전달할 파이프라인 실행의 매개 변수 값 매개 변수 이름을 인수 값에 매핑하는 JSON 개체입니다.
로그 복합 형식 리소스 종류에 대한 진단 로그 범주의 이름입니다. 리소스에 대한 진단 로그 범주 목록을 얻으려면 GET 진단 설정 작업을 수행합니다.
카테고리 스트링 로그 범주 및 해당 보존 정책의 배열입니다.
timeGrain 스트링 ISO 8601 기간 형식으로 캡처되는 메트릭의 세분성입니다. 속성 값은 1분을 지정하는 값이어야 PT1M합니다.
사용 가능 불리언 (Boolean) 이 리소스에 대해 메트릭 또는 로그 범주의 컬렉션을 사용할 수 있는지 여부를 지정합니다.
retentionPolicy 복합 형식 메트릭 또는 로그 범주에 대한 보존 정책을 설명합니다. 이 속성은 스토리지 계정에만 사용됩니다.
정수 (Int) 메트릭 또는 로그를 보관할 일 수를 정하는 것입니다. 속성 값이 0이면 로그가 영원히 유지됩니다. 이 속성은 스토리지 계정에만 사용됩니다.

응답

200 OK.

{
    "id": "/subscriptions/<subID>/resourcegroups/adf/providers/microsoft.datafactory/factories/shloadobetest2/providers/microsoft.insights/diagnosticSettings/service",
    "type": null,
    "name": "service",
    "location": null,
    "kind": null,
    "tags": null,
    "properties": {
        "storageAccountId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>//providers/Microsoft.Storage/storageAccounts/<storageAccountName>",
        "serviceBusRuleId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>//providers/Microsoft.EventHub/namespaces/<eventHubName>/authorizationrules/RootManageSharedAccessKey",
        "workspaceId": "/subscriptions/<subID>/resourceGroups/<resourceGroupName>//providers/Microsoft.OperationalInsights/workspaces/<LogAnalyticsName>",
        "eventHubAuthorizationRuleId": null,
        "eventHubName": null,
        "metrics": [],
        "logs": [
            {
                "category": "PipelineRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "TriggerRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "ActivityRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            }
        ]
    },
    "identity": null
}

모니터 REST API에서 진단 설정에 대한 정보 가져오기

요청

GET
https://management.azure.com/{resource-id}/providers/microsoft.insights/diagnosticSettings/service?api-version={api-version}

헤더

  • {api-version}2016-09-01로 교체합니다.
  • {resource-id}를 진단 설정을 편집하려는 리소스의 ID로 바꾸십시오. 자세한 내용은 리소스 그룹을 사용하여 Azure 리소스 관리를 참조하세요.
  • Content-Type 헤더를 application/json로 설정합니다.
  • 권한 부여 헤더를 Microsoft Entra ID에서 얻은 JSON 웹 토큰으로 설정합니다. 자세한 내용은 요청 인증을 참조하세요.

응답

200 OK.

{
    "id": "/subscriptions/<subID>/resourcegroups/adf/providers/microsoft.datafactory/factories/shloadobetest2/providers/microsoft.insights/diagnosticSettings/service",
    "type": null,
    "name": "service",
    "location": null,
    "kind": null,
    "tags": null,
    "properties": {
        "storageAccountId": "/subscriptions/<subID>/resourceGroups/shloprivate/providers/Microsoft.Storage/storageAccounts/azmonlogs",
        "serviceBusRuleId": "/subscriptions/<subID>/resourceGroups/shloprivate/providers/Microsoft.EventHub/namespaces/shloeventhub/authorizationrules/RootManageSharedAccessKey",
        "workspaceId": "/subscriptions/<subID>/resourceGroups/ADF/providers/Microsoft.OperationalInsights/workspaces/mihaipie",
        "eventHubAuthorizationRuleId": null,
        "eventHubName": null,
        "metrics": [],
        "logs": [
            {
                "category": "PipelineRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "TriggerRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            },
            {
                "category": "ActivityRuns",
                "enabled": true,
                "retentionPolicy": {
                    "enabled": false,
                    "days": 0
                }
            }
        ]
    },
    "identity": null
}

자세한 내용은 진단 설정을 참조하세요.

Azure Monitor를 사용하여 SSIS 작업 모니터링