Azure 서비스 리소스 로그 수집 점검

주요 Azure 서비스에서 필요한 리소스 로그를 수집하고 중앙 저장소로 전달하세요.

설명

App Service, Storage Account, Event Hubs, Service Bus와 Application Gateway의 리소스 로그는 서비스 동작과 요청을 조사하는 자료입니다. 필요한 로그를 수집하지 않으면 장애 원인 분석과 보안 추적이 어려워질 수 있습니다.

지원되는 카테고리를 진단 설정으로 내보내고 서비스별 로깅 사전 조건을 확인하세요. 진단 설정이 없다고 애플리케이션 로그나 자동 수집되는 Activity Log까지 모두 없는 것은 아닙니다.

잠재적 영향

  • 서비스 장애나 이상 동작을 분석할 자료가 부족해질 수 있습니다.
  • 여러 서비스의 관련 이벤트를 중앙에서 연결해 조사하기 어려워질 수 있습니다.

해결 방법

  • 핵심 서비스별로 필요한 로그 카테고리와 기존 수집 경로를 확인하세요.
  • azurerm_monitor_diagnostic_setting에 지원되는 로그와 Log Analytics, Storage Account 또는 Event Hubs 대상을 구성하세요.
  • 서비스의 추가 로깅 설정, 대상의 접근 권한과 보존 기간을 확인하고 실제 요청으로 로그 도착 여부를 시험하세요.

예시

기존 azurerm_app_service 형식의 발췌입니다. 참조 리소스는 생략했으며 사용하는 AzureRM 버전에 맞는 웹 앱 리소스 형식을 선택하세요.

변경 전

hcl
resource "azurerm_app_service" "example" {
  name                = "example-app-service"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  app_service_plan_id = azurerm_app_service_plan.example.id
}

이 발췌에는 리소스 로그 내보내기가 없습니다. 기존에 다른 방식으로 필요한 로그를 수집하는지도 확인하세요.

변경 후

hcl
resource "azurerm_app_service" "example" {
  name                = "example-app-service"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  app_service_plan_id = azurerm_app_service_plan.example.id
}

resource "azurerm_monitor_diagnostic_setting" "example" {
  name               = "app-service-diagnostics"
  target_resource_id = azurerm_app_service.example.id
  storage_account_id = azurerm_storage_account.example.id

  enabled_log {
    category = "AppServiceHTTPLogs"
  }
}

AppServiceHTTPLogs 카테고리의 수신 HTTP 요청 로그를 저장 계정으로 보냅니다. 이 카테고리만으로 모든 감사·애플리케이션 이벤트가 포함되지는 않습니다.

참조