Application Gateway에 대한 진단 로그

Application Gateway 로그는 리소스 및 해당 작업과 관련된 이벤트에 대한 자세한 정보를 제공합니다. 이러한 로그는 액세스, 활동, 방화벽 및 성능과 같은 이벤트에 사용할 수 있습니다(V1에만 해당). 로그의 세부적인 정보는 이 원시 데이터를 사용하여 문제를 해결하거나 분석 대시보드를 빌드할 때 유용합니다.

로그는 Application Gateway의 모든 리소스에 사용할 수 있습니다. 그러나 이를 사용하려면 선택한 스토리지 위치에서 해당 컬렉션을 사용하도록 설정해야 합니다. Azure Application Gateway의 로깅은 Azure Monitor 서비스를 통해 사용하도록 설정할 수 있습니다. 미리 정의된 쿼리를 쉽게 사용하고 특정 로그 조건에 따라 경고를 설정할 수 있으므로 Log Analytics 작업 영역을 사용하는 것이 좋습니다.

리소스 로그 형식

Azure에서 다양한 유형의 로그를 사용하여 Application Gateway를 관리하고 문제를 해결할 수 있습니다.

참고 항목

로그는 Azure Resource Manager 배포 모델에 배포된 리소스에만 사용할 수 있습니다. 클래식 배포 모델에서 리소스에 대한 로그를 사용할 수 없습니다. 두 모델에 대해 더 잘 이해하려면 리소스 관리자 배포 및 클래식 배포 이해 문서를 참조하세요.

작업 영역 변환을 사용한 액세스 로그 최적화의 예

예 1: 열의 선택적 프로젝션: 20개의 열이 있는 애플리케이션 게이트웨이 액세스 로그가 있지만 6개의 특정 열의 데이터만 분석하는 데 관심이 있다고 가정해 보세요. 작업 영역 변환을 사용하면 이러한 6개 열을 작업 영역에 프로젝션하고 나머지 14개 열은 효과적으로 제외할 수 있습니다. 제외된 열의 원본 데이터는 저장되지 않지만 해당 열에 대한 빈 자리 표시자는 여전히 로그 블레이드에 나타납니다. 이 방식은 스토리지를 최적화하고 관련 데이터만 분석을 위해 보존되도록 보장합니다.

참고 항목

로그 블레이드 내에서 새 Log Analytics 사용해 보기 옵션을 선택하면 사용자 인터페이스에 표시되는 열을 더 효과적으로 제어할 수 있습니다.

예 2: 특정 상태 코드에 포커스: 액세스 로그를 분석할 때 모든 로그 항목을 처리하는 대신 특정 HTTP 상태 코드(예: 4xx 및 5xx)가 있는 행만 쿼리하는 쿼리를 작성할 수 있습니다. 대부분의 요청은 이상적으로 2xx 및 3xx 범주(성공적인 응답을 나타냄)에 속하므로 문제가 있는 상태 코드에 포커스를 맞추면 데이터 세트의 범위가 좁아집니다. 이러한 대상 방식을 통해 가장 관련성이 높고 실행 가능한 정보를 추출할 수 있어 유익하고 비용 효율적입니다.

Azure 진단에서 리소스별 테이블로 이동하기 위한 권장 전환 전략:

  1. 현재 데이터 보존 평가: 데이터가 현재 Azure Diagnostics 테이블에 보존되는 기간을 결정합니다(예: 진단 테이블이 15일 동안 데이터를 보존한다고 가정).
  2. 리소스별 보존 설정: 리소스별 테이블을 사용하여 새로운 진단 설정을 구현합니다.
  3. 병렬 데이터 수집: 임시 기간 동안 Azure Diagnostics 및 리소스별 설정 모두에서 동시에 데이터를 수집합니다.
  4. 데이터 정확도 확인: 두 설정 모두에서 데이터 수집이 정확하고 일관되는지 확인합니다.
  5. Azure Diagnostics 설정 제거: 중복 데이터 수집을 방지하려면 Azure Diagnostics 설정을 제거합니다.

기타 스토리지 위치:

  • Azure Storage 계정: 스토리지 계정은 로그를 장기간 저장하고 필요할 때 검토하는 경우에 가장 적합합니다.
  • Azure Event Hubs: 이벤트 허브는 리소스에 대한 경고를 받기 위해 다른 SIEM(보안 정보 및 이벤트 관리) 도구와 통합하는 데 유용한 옵션입니다.
  • Azure Monitor 파트너 통합.

Azure Monitor의 진단 설정 대상에 대해 자세히 알아봅니다.

PowerShell을 통한 로깅 사용

활동 로깅은 모든 Resource Manager 리소스에 대해 사용하도록 설정됩니다. 이러한 로그를 통해 사용 가능한 데이터 수집을 시작하려면 액세스 및 성능 로깅을 사용하도록 설정해야 합니다. 로깅을 사용하려면 다음 단계를 사용합니다.

  1. 로그 데이터를 저장할 스토리지 계정의 리소스 ID를 적어 둡니다. 이 값의 형식은 /subscriptions/<subscriptionId>/resourceGroups/<리소스 그룹 이름>/providers/Microsoft.Storage/storageAccounts/<스토리지 계정 이름>입니다. 구독의 모든 스토리지 계정을 사용할 수 있습니다. Azure Portal을 사용하여 이 정보를 찾을 수 있습니다.

    스토리지 계정 엔드포인트의 스크린샷

  2. 로깅을 사용할 Application Gateway의 리소스 ID를 적어 둡니다. 이 값은 형식은 /subscriptions/<subscriptionId>/resourceGroups/<리소스 그룹 이름>/providers/Microsoft.Network/applicationGateways/<응용 프로그램 게이트웨이 이름>입니다. 포털을 사용하여 이 정보를 찾을 수 있습니다.

    앱 게이트웨이 속성의 스크린샷

  3. 다음 PowerShell cmdlet을 사용하여 진단 로깅을 사용하도록 설정합니다.

    Set-AzDiagnosticSetting  -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true     
    

활동 로그에는 별도의 스토리지 계정이 필요하지 않습니다. 액세스 및 성능 로깅에 스토리지를 사용할 경우 서비스 요금이 부과됩니다.

Azure Portal을 통한 로깅 사용

  1. Azure Portal에서 리소스를 찾고 진단 설정을 선택합니다.

    Application Gateway의 경우 다음 세 가지 로그를 사용할 수 있습니다.

    • 액세스 로그
    • 성능 로그
    • 방화벽 로그
  2. 데이터 수집을 시작하려면 진단 켜기를 선택합니다.

    진단 켜기

  3. 진단 설정 페이지에서는 진단 로그에 대한 설정을 제공합니다. 이 예제에서 Log Analytics는 로그를 저장합니다. 또한 이벤트 허브 및 스토리지 계정을 사용하여 진단 로그를 저장할 수도 있습니다.

    구성 프로세스 시작

  4. 설정의 이름을 입력하고 설정을 확인하고 저장을 선택합니다.

활동 로그 데이터를 보고 분석하려면 모니터링 데이터 분석을 참조하세요.

액세스, 성능 및 방화벽 로그 보기 및 분석

Azure Monitor 로그는 Blob Storage 계정에서 카운터 및 이벤트 로그 파일을 수집할 수 있습니다. 자세한 내용은 모니터링 데이터 분석을 참조하세요.

스토리지 계정에 연결하고 액세스 및 성능 로그에 대한 JSON 로그 항목을 검색할 수도 있습니다. JSON 파일을 다운로드한 후 CSV로 변환하여 Excel, Power BI 또는 기타 데이터 시각화 도구에서 볼 수 있습니다.

Visual Studio를 익숙하게 사용할 수 있고 C#에서 상수 및 변수에 대한 값 변경에 대한 기본 개념이 있는 경우 GitHub에서 제공하는 로그 변환기 도구를 사용할 수 있습니다.

다음 단계