다음을 통해 공유


Azure Monitor의 활동 로그

Azure Monitor 활동 로그는 Azure 리소스의 컨트롤 플레인 이벤트에 대한 플랫폼 로그입니다. 여기에는 리소스가 수정되거나 배포 오류가 발생하는 경우와 같은 정보가 포함됩니다. 활동 로그를 사용하여 모니터링하는 리소스에 대해 이 정보를 검토하거나 감사하거나 이벤트가 생성될 때 사전에 알림을 받을 경고를 만듭니다.

팁 (조언)

배포 작업 오류에서 이 문서로 전달된 경우 일반적인 Azure 배포 오류 문제 해결을 참조하세요.

활동 로그 항목

활동 로그의 항목은 기본적으로 필수 구성 없이 수집됩니다. 시스템이 생성되며 변경하거나 삭제할 수 없습니다. 항목은 일반적으로 변경(만들기, 업데이트, 삭제 작업) 또는 시작된 작업의 결과입니다. 리소스의 세부 정보를 읽는 데 중점을 두는 작업은 일반적으로 캡처되지 않습니다. 활동 로그 범주에 대한 설명은 Azure 활동 로그 이벤트 스키마를 참조하세요.

비고

컨트롤 플레인 위의 작업은 Azure 리소스 로그에 기록됩니다. 기본적으로 수집되지 않으며 진단 설정을 수집해야 합니다.

보존 기간

활동 로그 이벤트는 90일 동안 Azure에 보관된 후 삭제됩니다. 볼륨에 관계없이 이 시간 동안 항목에 대한 요금이 부과되지 않습니다. 더 긴 보존과 같은 더 많은 기능을 위해 진단 설정을 만들고 필요에 따라 항목을 다른 위치로 라우팅 합니다.

활동 로그 보기 및 검색

Azure Portal의 대부분의 메뉴에서 활동 로그에 액세스할 수 있습니다. 이 메뉴를 여는 메뉴에 따라 초기 필터가 결정됩니다. 모니터 메뉴에서 열면 구독에 관한 필터만 있습니다. 리소스 메뉴에서 열면 필터가 해당 리소스로 설정됩니다. 언제든지 필터를 변경하여 다른 모든 항목을 볼 수 있습니다. 필터 추가를 선택하여 필터에 속성을 추가합니다.

활동 로그를 보여 주는 스크린샷

다음 방법을 사용하여 활동 로그 이벤트에 액세스할 수도 있습니다.

변경 기록 보기

일부 이벤트의 경우 해당 이벤트 시간에 발생한 변경 기록이 표시된 변경 기록을 볼 수 있습니다. 활동 로그에서 더 자세히 보려는 이벤트를 선택합니다. 변경 기록 탭을 선택하여 작업 시간 전후 최대 30분 전에 리소스의 변경 내용을 확인합니다.

이벤트의 변경 기록 목록을 보여 주는 스크린샷.

이벤트와 관련된 변경 내용이 있는 경우 선택할 수 있는 변경 내용 목록이 표시됩니다. 변경 내용을 선택하면 변경 내용 페이지가 열립니다. 이 페이지는 리소스에 대한 변경 내용을 표시합니다. 다음 예에서는 VM의 크기가 변경된 것을 볼 수 있습니다. 페이지에는 변경 전과 변경 후의 VM 크기가 표시됩니다. 변경 기록에 대한 자세한 내용은 리소스 변경 가져오기를 참조하세요.

차이점을 보여 주는 변경 기록 페이지를 보여 주는 스크린샷.

활동 로그 인사이트

활동 로그 인사이트는 구독의 리소스 및 리소스 그룹에 대한 변경 내용을 모니터링하는 대시보드 집합을 제공하는 통합 문서입니다. 또한 대시보드에는 구독에서 작업을 수행한 사용자 또는 서비스 및 활동 상태에 대한 데이터도 표시됩니다.

활동 로그 인사이트를 사용하도록 설정하려면 활동 로그 내보내기에서 설명한 대로 활동 로그를 Log Analytics 작업 영역 으로 내보냅니다. 그러면 활동 로그 인사이트에서 AzureActivity 사용하는 테이블로 이벤트를 보냅니다.

활동 로그 인사이트 대시보드를 보여 주는 스크린샷.

구독 또는 리소스 수준에서 활동 로그 인사이트를 열 수 있습니다. 구독하려면 모니터 메뉴의 통합 문서 섹션에서 활동 로그 인사이트를 선택하십시오.

규모 수준에서 활동 로그 인사이트 통합 문서를 찾고 여는 방법을 보여 주는 스크린샷

개별 리소스의 경우 리소스 메뉴의 통합 문서 섹션에서 활동 로그 인사이트를 선택합니다.

리소스 수준에서 활동 Logs Insights 통합 문서를 찾아 여는 방법을 보여 주는 스크린샷

활동 로그 내보내기

추가 보존 시간 및 기능을 위해 활동 로그 항목을 다른 대상으로 보내는 진단 설정을 만듭니다. 진단 설정을 만드는 자세한 단계는 Azure Monitor 의 진단 설정을 참조하세요.

활동 로그, 리소스 로그 및 플랫폼 메트릭의 컬렉션을 보여 주는 다이어그램

아래 정보는 리소스 로그를 보낼 수 있는 다양한 대상에 대한 자세한 정보를 제공합니다.

다음 기능을 위해 활동 로그를 Log Analytics 작업 영역 으로 보냅니다.

기본 보존 기간인 90일 동안 활동 로그에 대한 데이터 수집 또는 보존 요금이 있습니다. 보존 기간을 최대 12년까지 늘릴 수 있습니다.

Log Analytics 작업 영역의 활동 로그 데이터는 AzureActivity라는 테이블에 저장됩니다. 이 테이블의 구조는 로그 항목의 범주에 따라 달라집니다.

예를 들어 각 범주에 대한 활동 로그 레코드 수를 보려면 다음 쿼리를 사용합니다.

AzureActivity
| summarize count() by CategoryValue

관리 범주에 있는 모든 레코드를 검색하려면 다음 쿼리를 사용합니다.

AzureActivity
| where CategoryValue == "Administrative"

중요합니다

어떤 시나리오에서는 AzureActivity 필드의 값의 대/소문자가 다른 경우와 동등할 수 있습니다. 데이터를 AzureActivity에서 쿼리할 때 문자열 비교에 대소문자를 구분하지 않는 연산자를 사용하거나, 스칼라 함수를 사용하여 비교 전에 필드를 대소문자를 일치시키도록 강제 변환합니다. 예를 들어 문자열 비교를 수행할 때 필드의 tolower() 함수를 사용하여 항상 소문자 또는 =~ 연산자로 강제 적용합니다.

CSV로 내보내기

CSV로 다운로드를 선택하여 Azure Portal을 사용하여 활동 로그를 CSV 파일로 내보냅니다.

CSV로 내보내는 옵션을 보여 주는 스크린샷

중요합니다

로그 항목이 많은 경우 내보내는 데 과도한 시간이 걸릴 수 있습니다. 성능을 향상시키려면 내보내기의 시간 범위를 줄입니다. Azure Portal에서 이 설정은 Timespan 설정으로 설정됩니다.

다음 예제와 같이 PowerShell 또는 Azure CLI를 사용하여 활동 로그를 CSV 파일로 내보낼 수도 있습니다.

az monitor activity-log list --start-time "2024-03-01T00:00:00Z" --end-time "2024-03-15T23:59:59Z" --max-items 1000 > activitylog.json
Get-AzActivityLog -StartTime 2021-12-01T10:30 -EndTime 2022-01-14T11:30 | Export-csv operations_logs.csv

다음 예제 PowerShell 스크립트는 각각 별도의 파일에 저장되는 1시간 간격으로 활동 로그를 CSV 파일로 내보냅니다.

# Parameters
$subscriptionId = "Subscription ID here"  # Replace with your subscription ID
$startTime = [datetime]"2025-05-08T00:00:00" # Adjust as needed
$endTime = [datetime]"2025-05-08T12:00:00"  # Adjust as needed
$outputFolder = "\Logs"    # Change path as needed
 
# Ensure output folder exists
if (-not (Test-Path $outputFolder)) {
    New-Item -Path $outputFolder -ItemType Directory
}
 
# Set subscription context
Set-AzContext -SubscriptionId $subscriptionId
 
# Loop through 1-hour intervals
$currentStart = $startTime
while ($currentStart -lt $endTime) {
    $currentEnd = $currentStart.AddHours(1)
    $timestamp = $currentStart.ToString("yyyyMMdd-HHmm")
    $csvFile = Join-Path $outputFolder "ActivityLog_$timestamp.csv"
 
    Write-Host "Fetching logs from $currentStart to $currentEnd..."
    Get-AzActivityLog -StartTime $currentStart -EndTime $currentEnd |
        Export-Csv -Path $csvFile -NoTypeInformation
 
    $currentStart = $currentEnd
}
 
Write-Host "Export completed. Files saved to $outputFolder."

다음 단계

자세히 알아보기: