다음을 통해 공유


Azure Front Door 모니터링

Azure Monitor는 시스템에서 메트릭 및 로그를 수집 및 집계하여 가용성, 성능 및 복원력을 모니터링하고 시스템에 영향을 주는 문제를 알려 줍니다. Azure Portal, PowerShell, Azure CLI, REST API 또는 클라이언트 라이브러리를 사용하여 모니터링 데이터를 설정하고 볼 수 있습니다.

리소스 유형에 따라 다른 메트릭 및 로그를 사용할 수 있습니다. 이 문서에서는 이 서비스에 대해 수집할 수 있는 모니터링 데이터 유형과 해당 데이터를 분석하는 방법을 설명합니다.

보고서는 트래픽이 Azure Front Door, WAF(웹 애플리케이션 방화벽)을 통해 애플리케이션으로 흐르는 방식에 대한 정보를 제공합니다.

Important

Azure Front Door(클래식)는 2027년 3월 31일에 사용이 중지됩니다. 서비스가 중단되지 않도록 하려면 2027년 3월까지 Azure Front Door(클래식) 프로필을 Azure Front Door 표준 또는 프리미엄 계층으로 마이그레이션하는 것이 중요합니다. 자세한 내용은 Azure Front Door(클래식) 사용 중지를 참조하세요.

Azure Monitor를 사용하여 데이터 수집

이 표에서는 서비스를 모니터링하기 위해 데이터를 수집하는 방법과 수집된 데이터로 수행할 수 있는 작업을 설명합니다.

수집할 데이터 설명 데이터를 수집하고 라우팅하는 방법 데이터를 볼 수 있는 위치 지원되는 데이터
메트릭 데이터 메트릭은 시간상 특정 지점에서 시스템의 측면을 설명하는 숫자 값입니다. 메트릭은 다른 메트릭과 비교하여 알고리즘을 사용하여 집계하고 시간에 따른 추세를 분석할 수 있습니다. - 정기적으로 자동으로 수집됩니다.
- 일부 플랫폼 메트릭을 Log Analytics 작업 영역으로 라우팅하여 다른 데이터를 쿼리할 수 있습니다. 각 메트릭에 대한 DS 내보내기 설정을 확인하여 진단 설정을 사용하여 메트릭 데이터를 라우팅할 수 있는지 확인합니다.
메트릭 탐색기 Azure Monitor에서 지원하는 Azure Front Door 메트릭
리소스 로그 데이터 로그는 타임스탬프를 사용하여 기록된 시스템 이벤트입니다. 로그는 다양한 형식의 데이터를 포함할 수 있으며 구조화되거나 자유 형식의 텍스트일 수 있습니다. 쿼리 및 분석을 위해 리소스 로그 데이터를 Log Analytics 작업 영역으로 라우팅할 수 있습니다. 리소스 로그 데이터를 수집하고 라우팅하는 진단 설정을 만듭니다. Log Analytics Azure Monitor에서 지원하는 Azure Front Door 리소스 로그 데이터
활동 로그 데이터 Azure Monitor 활동 로그는 구독 수준 이벤트에 대한 인사이트를 제공합니다. 활동 로그에는 리소스가 수정되거나 가상 머신이 시작될 때와 같은 정보가 포함됩니다. - 자동으로 수집됩니다.
- 무료로 Log Analytics 작업 영역에 대한 진단 설정을 만듭니다.
활동 로그

Azure Monitor에서 지원하는 모든 데이터 목록은 다음을 참조하세요.

Azure Front Door에 대한 기본 제공 모니터링

로그는 Azure Front Door를 통과하는 모든 요청을 추적합니다. 로그를 처리하고 저장하는 데 몇 분 정도 걸릴 수 있습니다.

다양한 용도로 사용할 수 있는 여러 Front Door 로그가 있습니다.

  • 액세스 로그는 느린 요청을 식별하고, 오류율을 확인하고, Front Door의 캐싱 동작이 솔루션에서 어떻게 작동하는지 이해하는 데 사용할 수 있습니다.
  • WAF(웹 애플리케이션 방화벽) 로그를 사용하여 잠재적인 공격 및 WAF가 차단한 합법적인 요청을 나타낼 수 있는 가양성 검색을 검색할 수 있습니다. WAF 로그에 대한 자세한 내용은 Azure Web Application Firewall 모니터링 및 로깅을 참조하세요.
  • 상태 프로브 로그는 비정상이거나 지리적으로 분산된 일부 Front Door PoP의 요청에 응답하지 않는 원본을 식별하는 데 사용할 수 있습니다.
  • 활동 로그는 Azure Front Door 프로필에 대한 구성 변경과 같이 Azure 리소스에서 수행되는 작업에 대한 표시 유형을 제공합니다.

액세스 로그 및 WAF 로그에는 추적 참조가 포함되어 있으며 이는 X-Azure-Ref 헤더를 사용하여 원본 및 클라이언트 응답에 대한 요청에도 전파됩니다. 추적 참조를 사용하여 애플리케이션 요청 처리에 대한 엔드투엔드 보기를 얻을 수 있습니다.

액세스 로그, 상태 프로브 로그 및 WAF 로그는 기본적으로 사용할 수 없습니다. 진단 로그를 사용하도록 설정하고 저장하려면 Azure Front Door 로그 구성을 참조하세요. 활동 로그 항목은 기본적으로 수집되고 Azure Portal에서 볼 수 있습니다.

액세스 로그

모든 요청에 대한 정보는 액세스 로그에 로그됩니다. 각 액세스 로그 항목에는 다음 표에 나열된 정보가 포함되어 있습니다.

속성 설명
TrackingReference Azure Front Door에서 제공하는 요청을 식별하는 고유한 참조 문자열입니다. 추적 참조는 X-Azure-Ref 헤더를 사용하여 클라이언트와 원본으로 전송됩니다. 액세스 또는 WAF 로그에서 특정 요청을 검색할 때 추적 참조를 사용합니다.
Time Azure Front Door Edge가 요청한 콘텐츠를 클라이언트에 배달한 날짜 및 시간(UTC 기준)입니다. WebSocket 연결의 경우 연결이 닫힌 시간을 나타냅니다.
HttpMethod 요청에서 사용하는 HTTP 메서드이며 DELETE, GET, HEAD, OPTIONS, PATCH, POST 또는 PUT입니다.
HttpVersion 클라이언트가 요청에 지정한 HTTP 버전입니다.
RequestUri 수신된 요청의 URI입니다. 이 필드에는 전체 체계, 포트, 도메인, 경로 및 쿼리 문자열이 포함됩니다.
HostName 클라이언트의 요청에 있는 호스트 이름입니다. 사용자 지정 도메인을 사용하도록 설정하고 와일드카드 도메인(*.contoso.com)이 있는 경우 HostName 로그 필드의 값은 subdomain-from-client-request.contoso.com입니다. Azure Front Door 도메인(contoso-123.z01.azurefd.net)을 사용하는 경우 HostName 로그 필드의 값은 contoso-123.z01.azurefd.net입니다.
RequestBytes 요청 헤더 및 요청 본문을 포함하여 HTTP 요청 메시지의 크기(바이트)입니다. WebSocket 연결의 경우 이 값은 연결을 통해 클라이언트에서 서버로 전송된 총 바이트 수입니다.
ResponseBytes HTTP 응답 메시지의 크기(바이트)입니다. WebSocket 연결의 경우 이 값은 연결을 통해 서버에서 클라이언트로 전송된 총 바이트 수입니다.
UserAgent 클라이언트가 사용한 사용자 에이전트입니다. 일반적으로 사용자 에이전트는 브라우저 형식을 식별합니다.
ClientIp 원본에서 요청한 클라이언트의 IP 주소입니다. 요청에 X-Forwarded-For 헤더가 있으면 헤더에서 클라이언트 IP 주소를 가져옵니다.
SocketIp Azure Front Door Edge에 대한 직접 연결의 IP 주소입니다. 클라이언트에서 HTTP 프록시 또는 부하 분산 장치를 사용하여 요청을 보낸 경우 SocketIp의 값은 프록시 또는 부하 분산 장치의 IP 주소입니다.
TimeTaken Azure Front Door 에지가 클라이언트의 요청을 받은 시점부터 응답의 마지막 바이트가 클라이언트로 전송된 시점까지의 기간(초 단위)입니다. 이 메트릭은 네트워크 대기 시간 및 TCP 버퍼링을 제외합니다. WebSocket 연결의 경우 설정에서 종료까지의 연결 기간을 나타냅니다.
RequestProtocol 요청에서 클라이언트가 지정한 프로토콜입니다. 가능한 값은 HTTP, HTTPS입니다. WebSocket의 경우 프로토콜은 WS, WSS입니다. WebSocket으로 성공적으로 업그레이드된 요청에만 WS/WSS가 있습니다.
SecurityProtocol 요청에 사용된 TLS/SSL 프로토콜 버전 또는 요청이 암호화를 사용하지 않은 경우 null입니다. 가능한 값은 SSLv3, TLSv1, TLSv1.1, TLSv1.2입니다.
SecurityCipher 요청 프로토콜의 값이 HTTPS인 경우 이 필드는 클라이언트와 Azure Front Door에서 협상한 TLS/SSL 암호를 나타냅니다.
엔드포인트 Azure Front Door 엔드포인트의 도메인 이름(예: contoso-123.z01.azurefd.net)입니다.
HttpStatusCode Azure Front Door에서 반환된 HTTP 상태 코드입니다. 원본에 대한 요청 시간이 초과된 경우 HttpStatusCode 필드의 값은 0입니다. 클라이언트가 연결을 닫은 경우 HttpStatusCode 필드의 값은 499입니다.
사용자 요청에 응답한 Azure Front Door 에지 PoP(Point of Presence)입니다.
캐시 상태 Azure Front Door 캐시에서 요청을 처리하는 방법입니다. 가능한 값은 다음과 같습니다.
  • HITREMOTE_HIT: HTTP 요청이 Azure Front Door 캐시에서 제공되었습니다.
  • MISS: HTTP 요청이 원본에서 제공되었습니다.
  • PARTIAL_HIT: 일부 바이트는 Front Door 에지 PoP 캐시에서 제공되었고 다른 바이트는 원본에서 제공되었습니다. 이 상태는 개체 청크 시나리오를 나타냅니다.
  • CACHE_NOCONFIG: 무시 시나리오를 포함하여 캐싱 설정 없이 요청이 전달되었습니다.
  • PRIVATE_NOSTORE: 고객이 캐싱 설정에 구성한 캐시가 없습니다.
  • 해당 사항: 서명된 URL 또는 WAF 규칙이 요청을 거부했습니다.
MatchedRulesSetName 처리된 규칙 엔진 규칙의 이름입니다.
RouteName 요청에 일치하는 경로의 이름입니다.
ClientPort 요청한 클라이언트의 IP 포트입니다.
Referrer 요청을 시작한 사이트의 URL입니다.
TimetoFirstByte Azure Front Door 에지가 요청을 수신한 시점부터 첫 번째 바이트가 클라이언트에 전송된 시간까지의 시간(초)이며 Azure Front Door에서 측정됩니다. 이 속성은 클라이언트 데이터를 측정하지 않습니다.
ErrorInfo 요청을 처리하는 동안 오류가 발생한 경우 이 필드는 오류에 대한 자세한 정보를 제공합니다. 가능한 값은 다음과 같습니다.
  • NoError: 발견된 오류가 없음을 나타냅니다.
  • CertificateError: 제네릭 SSL 인증서 오류입니다.
  • CertificateNameCheckFailed: SSL 인증서의 호스트 이름이 잘못되었거나 요청된 URL과 일치하지 않습니다.
  • ClientDisconnected: 클라이언트 네트워크 연결 문제로 인해 요청이 실패했습니다.
  • ClientGeoBlocked: IP 주소의 지리적 위치로 인해 클라이언트가 차단되었습니다.
  • UnspecifiedClientError: 제네릭 클라이언트 오류입니다.
  • InvalidRequest: 요청이 잘못되었습니다. 이 응답은 잘못된 형식의 헤더, 본문 또는 URL을 나타냅니다.
  • DNSFailure: DNS 확인 중에 오류가 발생했습니다.
  • DNSTimeout: 원본 IP 주소를 확인하기 위한 DNS 쿼리가 시간 제한되었습니다.
  • DNSNameNotResolved: 서버 이름이나 주소를 확인할 수 없습니다.
  • OriginConnectionAborted: 원본과의 연결이 비정상적으로 끊어졌습니다.
  • OriginConnectionError: 제네릭 원본 연결 오류입니다.
  • OriginConnectionRefused: 원본과의 연결이 설정되지 않았습니다.
  • OriginError: 제네릭 원본 오류입니다.
  • Responseheadertoobig: 원본에서 너무 많은 응답 헤더를 반환했습니다.
  • OriginInvalidResponse: 원본이 유효하지 않거나 인식할 수 없는 응답을 반환했습니다.
  • OriginTimeout: 원본 요청의 제한 시간이 만료되었습니다.
  • Responseheadertoobig: 원본에서 너무 많은 응답 헤더를 반환했습니다.
  • RestrictedIP: 제한된 IP 주소 때문에 요청이 차단되었습니다.
  • SSLHandshakeError: SSL 핸드셰이크 실패로 인해 Azure Front Door가 원본과의 연결을 설정할 수 없습니다.
  • SSLInvalidRootCA: 루트 인증 기관의 인증서가 잘못되었습니다.
  • SSLInvalidCipher: 잘못된 암호를 사용하여 HTTPS 연결이 설정되었습니다.
  • OriginConnectionAborted: 원본과의 연결이 비정상적으로 끊어졌습니다.
  • OriginConnectionRefused: 원본과의 연결이 설정되지 않았습니다.
  • UnspecifiedError: 테이블의 오류에 맞지 않는 오류가 발생했습니다.
OriginURL 요청이 전송된 원본의 전체 URL입니다. URL은 체계, 호스트 헤더, 포트, 경로 및 쿼리 문자열로 구성됩니다.
URL 다시 쓰기: 규칙 엔진이 요청 URL을 다시 작성하는 경우 경로는 다시 작성된 경로를 참조합니다.
에지 PoP의 캐시: 요청이 Azure Front Door 캐시에서 제공된 경우 원본은 해당 사항 없음입니다.
대량 요청: 요청된 콘텐츠가 크고 원본으로 돌아가는 청크 분할 요청이 여러 개 있는 경우 이 필드는 원본에 대한 첫 번째 요청에 해당합니다. 자세한 내용은 개체 청크를 참조하세요.
OriginIP 요청을 제공한 원본의 IP 주소입니다.
에지 PoP의 캐시: 요청이 Azure Front Door 캐시에서 제공된 경우 원본은 해당 사항 없음입니다.
대량 요청: 요청된 콘텐츠가 크고 원본으로 돌아가는 청크 분할 요청이 여러 개 있는 경우 이 필드는 원본에 대한 첫 번째 요청에 해당합니다. 자세한 내용은 개체 청크를 참조하세요.
OriginName 원본의 전체 호스트 이름(DNS 이름)입니다.
에지 PoP의 캐시: 요청이 Azure Front Door 캐시에서 제공된 경우 원본은 해당 사항 없음입니다.
대량 요청: 요청된 콘텐츠가 크고 원본으로 돌아가는 청크 분할 요청이 여러 개 있는 경우 이 필드는 원본에 대한 첫 번째 요청에 해당합니다. 자세한 내용은 개체 청크를 참조하세요.
결과 SSLMismatchedSNI는 SNI와 호스트 헤더 간의 불일치 경고와 함께 성공적인 요청을 나타내는 상태 코드입니다. 이 상태 코드는 Azure Front Door의 서비스 약관을 위반하는 기술인 도메인 프론팅을 의미합니다. SSLMismatchedSNI가 포함된 요청은 2024년 1월 22일 이후 거부됩니다.
Sni 이 필드는 TLS/SSL 핸드셰이크 중에 전송되는 SNI(서버 이름 표시)를 지정합니다. SSLMismatchedSNI 상태 코드가 있는 경우 정확한 SNI 값을 식별하는 데 사용할 수 있습니다. 또한 requestUri 필드의 호스트 값과 비교하여 불일치 문제를 검색하고 해결할 수 있습니다.

상태 프로브 로그

Azure Front Door는 실패한 모든 상태 프로브 요청을 로그합니다. 이러한 로그는 원본의 문제를 진단하는 데 도움이 될 수 있습니다. 로그는 실패 이유를 조사한 다음 원본을 정상 상태로 되돌리는 데 사용할 수 있는 정보를 제공합니다.

이 로그가 유용할 수 있는 몇 가지 시나리오는 다음과 같습니다.

  • Azure Front Door 트래픽이 원본의 하위 집합으로 전송되었음을 확인했습니다. 예를 들어 4개 원본 중 3개만 트래픽을 수신하는 것을 알 수 있습니다. 원본이 정상 상태인지 알 수 있도록 원본이 상태 프로브를 수신하고 이에 응답하는지 알고 싶습니다.
  • 원본 상태 백분율 메트릭이 예상보다 낮습니다. 비정상으로 기록된 원본과 상태 프로브 실패의 원인을 알고 싶습니다.

각 상태 프로브 로그 항목에는 다음 스키마가 있습니다.

속성 설명
HealthProbeId 상태 프로브 요청을 식별하는 고유 ID입니다.
Time 상태 프로브가 전송된 날짜 및 시간(UTC)입니다.
HttpMethod 상태 프로브 요청에 사용된 HTTP 메서드입니다. 값에는 상태 프로브의 구성에 따라 GETHEAD가 포함됩니다.
결과 상태 프로브의 상태입니다. 값은 성공이거나 프로브가 수신한 오류에 대한 설명입니다.
HttpStatusCode 원본에서 반환한 HTTP 상태 코드입니다.
ProbeURL 프로브 요청이 전송된 전체 대상 URL입니다. URL은 체계, 호스트 헤더, 경로 및 쿼리 문자열로 구성됩니다.
OriginName 상태 프로브가 전송된 원본의 이름입니다. 이 필드는 원본이 FQDN을 사용하도록 구성된 경우 관심 있는 원본을 찾는 데 도움이 됩니다.
POP 프로브 요청을 보낸 에지 PoP입니다.
원본 IP 상태 프로브가 전송된 원본의 IP 주소입니다.
TotalLatency Azure Front Door 에지가 원본에 상태 프로브 요청을 보낸 시점부터 원본이 Azure Front Door에 마지막 응답을 보낸 시점까지의 시간입니다.
ConnectionLatency 원본에 HTTP 프로브 요청을 보내기 위해 TCP 연결을 설정하는 데 소요된 시간입니다.
DNSResolution 대기 시간 DNS 확인에 소요된 시간입니다. 원본이 IP 주소 대신 FQDN으로 구성된 경우에만 이 필드에 값이 있습니다. 원본이 IP 주소를 사용하도록 구성된 경우 값은 N/A입니다.

다음 예 JSON 코드 조각은 실패한 상태 프로브 요청에 대한 상태 프로브 로그 항목을 보여 줍니다.

{
  "records": [
    {
      "time": "2021-02-02T07:15:37.3640748Z",
      "resourceId": "/SUBSCRIPTIONS/mySubscriptionID/RESOURCEGROUPS/myResourceGroup/PROVIDERS/MICROSOFT.CDN/PROFILES/MyProfile",
      "category": "FrontDoorHealthProbeLog",
      "operationName": "Microsoft.Cdn/Profiles/FrontDoorHealthProbeLog/Write",
      "properties": {
        "healthProbeId": "9642AEA07BA64675A0A7AD214ACF746E",
        "POP": "MAA",
        "httpVerb": "HEAD",
        "result": "OriginError",
        "httpStatusCode": "400",
        "probeURL": "http://www.example.com:80/",
        "originName": "www.example.com",
        "originIP": "PublicI:Port",
        "totalLatencyMilliseconds": "141",
        "connectionLatencyMilliseconds": "68",
        "DNSLatencyMicroseconds": "1814"
      }
    }
  ]
}

웹 애플리케이션 방화벽 로그

Front Door WAF(웹 애플리케이션 방화벽) 로그에 대한 자세한 내용은 Azure Web Application Firewall 모니터링 및 로깅을 참조하세요.

클래식 Azure Front Door의 경우 기본 제공 모니터링에는 진단 로그가 포함됩니다.

진단 로그

진단 로그는 감사 및 문제 해결에 중요한 작업 및 오류에 관한 풍부한 정보를 제공합니다. 진단 로그는 활동 로그와 다릅니다.

활동 로그는 Azure 리소스에서 수행된 작업에 대한 인사이트를 제공합니다. 진단 로그는 리소스가 수행하는 작업에 대한 인사이트를 제공합니다. 자세한 내용은 Azure Monitor 진단 로그를 참조하세요.

진단 로그

Azure Front Door(클래식)에 대한 진단 로그를 구성하려면:

  1. Azure Front Door(클래식) 프로필을 선택합니다.

  2. 진단 설정을 선택합니다.

  3. 진단 켜기를 선택합니다. 진단 로그를 메트릭과 함께 스토리지 계정에 보관하고, 이벤트 허브로 스트림하고, Azure Monitor 로그로 보냅니다.

Front Door는 현재 진단 로그를 제공합니다. 원시 로그는 각 항목에 다음 스키마가 포함된 개별 API 요청을 제공합니다.

속성 설명
BackendHostname 요청이 백 엔드에 전달되는 경우 이 필드는 백 엔드의 호스트 이름을 나타냅니다. 요청이 리디렉션되거나 지역 캐시(라우팅 규칙에 캐싱이 설정됨)로 전달되는 경우 이 필드는 비어 있습니다.
CacheStatus 캐싱 시나리오의 경우 이 필드는 POP에서 캐시 적중/누락을 정의합니다.
ClientIp 요청한 클라이언트의 IP 주소입니다. 요청에 X-Forwarded-For 헤더가 있는 경우 클라이언트 IP는 동일한 곳에서 선택됩니다.
ClientPort 요청한 클라이언트의 IP 포트입니다.
HttpMethod 요청에서 사용된 HTTP 메서드
HttpStatusCode 프록시에서 반환된 HTTP 상태 코드입니다. 원본에 대한 요청 시간이 초과되면 HttpStatusCode 값이 0으로 설정됩니다.
HttpStatusDetails 요청의 결과 상태입니다. 이 문자열 값의 의미는 상태 참조 테이블에서 찾을 수 있습니다.
HttpVersion 요청 또는 연결의 유형입니다.
POP 요청이 도달한 에지의 약식 이름입니다.
RequestBytes 요청 헤더 및 요청 본문을 포함하여 HTTP 요청 메시지의 크기(바이트)입니다.
RequestUri 받은 요청의 URI
ResponseBytes 백 엔드 서버에서 응답으로 보낸 바이트 수입니다.
RoutingRuleName 요청과 일치하는 라우팅 규칙의 이름입니다.
RulesEngineMatchNames 요청과 일치하는 규칙의 이름입니다.
SecurityProtocol 요청에 사용되는 TLS/SSL 프로토콜 버전이거나, 암호화가 없는 경우 null입니다.
SentToOriginShield
(사용되지 않음) * 다음 섹션에서 사용 중단에 대한 참고 사항을 참조하세요.
True이면 요청이 에지 POP가 아닌 원본 보호 캐시에서 응답되었음을 의미합니다. 원본 보호는 캐시 적중률을 향상하는 데 사용되는 부모 캐시입니다.
isReceivedFromClient True인 경우 요청이 클라이언트에서 나온 것을 의미합니다. False인 경우 요청이 에지(자식 POP)에서 누락되고 원본 보호(부모 POP)에서 응답됩니다.
TimeTaken 요청의 첫 번째 바이트부터 마지막 응답 바이트까지의 시간(초)입니다.
TrackingReference Front Door에서 제공하는 요청을 식별하는 고유한 참조 문자열로, 클라이언트에 X-Azure-Ref 헤더로 전송됩니다. 특정 요청의 액세스 로그에서 세부 정보를 검색하는 데 필요합니다.
UserAgent 클라이언트에서 사용한 브라우저 유형입니다.
ErrorInfo 이 필드에는 추가 문제 해결을 위한 구체적인 오류 유형이 포함됩니다.
가능한 값은
NoError: 오류가 없음을 나타냅니다.
CertificateError: 제네릭 SSL 인증서 오류입니다.
CertificateNameCheckFailed: SSL 인증서의 호스트 이름이 잘못되었거나 일치하지 않습니다.
ClientDisconnected: 클라이언트 네트워크 연결 때문에 요청이 실패했습니다.
UnspecifiedClientError: 제네릭 클라이언트 오류입니다.
InvalidRequest: 요청이 잘못되었습니다. 이 오류는 잘못된 형식의 헤더, 본문 및 URL 때문에 발생할 수 있습니다.
DNSFailure: DNS 오류가 발생했습니다.
DNSNameNotResolved: 서버 이름이나 주소를 확인할 수 없습니다.
OriginConnectionAborted: 원본과의 연결이 갑자기 중지되었습니다.
OriginConnectionError: 제네릭 원본 연결 오류입니다.
OriginConnectionRefused: 원본과의 연결을 설정할 수 없습니다.
OriginError: 제네릭 원본 오류입니다.
OriginInvalidResponse: 원본이 잘못되었거나 인식할 수 없는 응답을 반환했습니다.
OriginTimeout: 원본 요청의 제한 시간이 만료되었습니다.
ResponseHeaderTooBig: 원본에서 너무 많은 응답 헤더를 반환했습니다.
RestrictedIP: 제한된 IP로 인해 요청이 차단되었습니다.
SSLHandshakeError: SSL 핸드셰이크 오류로 인해 원본과의 연결을 설정할 수 없습니다.
UnspecifiedError: 테이블의 오류에 맞지 않는 오류가 발생했습니다.
SSLMismatchedSNI: HTTP 메시지 헤더가 SSL/TLS 연결 설정 중에 TLS SNI 확장에 제공된 값과 일치하지 않아 요청이 잘못되었습니다.
결과 SSLMismatchedSNI는 SNI와 호스트 헤더 간의 불일치 경고와 함께 성공적인 요청을 나타내는 상태 코드입니다. 이 상태 코드는 Azure Front Door의 서비스 약관을 위반하는 기술인 도메인 프론팅을 의미합니다. SSLMismatchedSNI가 포함된 요청은 2024년 1월 22일 이후 거부됩니다.
Sni 이 필드는 TLS/SSL 핸드셰이크 중에 전송되는 SNI(서버 이름 표시)를 지정합니다. SSLMismatchedSNI 상태 코드가 있는 경우 정확한 SNI 값을 식별하는 데 사용할 수 있습니다. 또한 requestUri 필드의 호스트 값과 비교하여 불일치 문제를 검색하고 해결할 수 있습니다.

원본 보호로 전송됨 사용 중단

원시 로그 속성인 isSentToOriginShield는 더 이상 사용되지 않으며 새 필드인 isReceivedFromClient로 바뀌었습니다. 사용 중단된 필드를 이미 사용하고 있는 경우 새 필드를 사용하세요.

원시 로그는 CDN 에지(자식 POP)와 원본 보호 모두에서 생성된 로그를 포함합니다. 원본 보호는 전 세계에 전략적으로 배치되는 부모 노드를 말합니다. 이러한 노드는 원본 서버와 통신하여 원본에 대한 트래픽 부하를 줄입니다.

원본 보호로 이동하는 모든 요청에는 두 가지 로그 항목이 있습니다.

  • 에지 노드에 대한 항목 하나
  • 원점 방패용 1개

에지 노드 및 원본 보호에 대한 송신 또는 응답을 구분하려면 isReceivedFromClient 필드를 사용하여 올바른 데이터를 가져올 수 있습니다.

값이 false인 경우 요청이 원본 보호에서 에지 노드로 응답되는 것을 의미합니다. 이 방법은 원시 로그를 청구 데이터와 비교하는 데 효과적입니다. 원본 보호에서 에지 노드로의 송신에는 요금이 부과되지 않습니다. 에지 노드에서 클라이언트로의 송신에는 요금이 부과됩니다.

Log Analytics에서 원본 보호에 생성된 로그를 제외하는 Kusto 쿼리 샘플

AzureDiagnostics | where Category == "FrontdoorAccessLog" and isReceivedFromClient_b == true

참고 항목

다양한 라우팅 구성 및 트래픽 동작의 경우 backendHostname, cacheStatus, isReceivedFromClient 및 POP 필드와 같은 일부 필드가 다른 값으로 응답할 수 있습니다. 다음 표에서는 이러한 필드가 다양한 시나리오에 대해 갖는 다양한 값을 설명합니다.

시나리오 로그 항목 수 POP BackendHostname isReceivedFromClient CacheStatus
캐싱을 사용하지 않는 라우팅 규칙 1 에지 POP 코드 요청이 전달된 백 엔드 True CONFIG_NOCACHE
캐싱을 사용하는 라우팅 규칙 에지 POP에서 캐시 적중 1 에지 POP 코드 비어 있음 True HIT
캐싱을 사용하는 라우팅 규칙 에지 POP에서 캐시가 누락되지만 부모 캐시 POP에서 캐시 적중 2 1. 에지 POP 코드
2. 부모 캐시 POP 코드
1. 부모 캐시 POP 호스트 이름
2. 비어 있음
1. True
2. False
1. MISS
2. HIT
캐싱을 사용하는 라우팅 규칙 에지 POP에서 캐시가 누락되지만 부모 캐시 POP에서 부분 캐시 적중 2 1. 에지 POP 코드
2. 부모 캐시 POP 코드
1. 부모 캐시 POP 호스트 이름
2. 캐시를 채우는 데 도움이 되는 백 엔드
1. True
2. False
1. MISS
2. PARTIAL_HIT
캐싱을 사용하는 라우팅 규칙 에지 POP에서 부분 적중되지만 부모 캐시 POP에서 캐시 적중 2 1. 에지 POP 코드
2. 부모 캐시 POP 코드
1. 에지 POP 코드
2. 부모 캐시 POP 코드
1. True
2. False
1. PARTIAL_HIT
2. HIT
캐싱을 사용하는 라우팅 규칙 에지 및 부모 캐시 POP에서 캐시 누락 2 1. 에지 POP 코드
2. 부모 캐시 POP 코드
1. 에지 POP 코드
2. 부모 캐시 POP 코드
1. True
2. False
1. MISS
2. MISS
요청을 처리하는 중 오류가 발생했습니다. 해당 없음

참고 항목

캐싱 시나리오의 경우 요청에 대한 바이트 중 일부가 Azure Front Door 에지 또는 원본 보호 캐시에서 제공되는 반면 일부 바이트는 큰 개체의 원본에서 제공되는 경우 캐시 상태 값은 PARTIAL_HIT.

Azure Front Door는 개체 청크라는 기술을 사용합니다. 대용량 파일이 요청되면 Azure Front Door가 원본에서 파일의 더 작은 파일 조각을 검색합니다. Azure Front Door POP 서버가 요청된 파일의 전체 또는 바이트 범위를 수신한 후 Azure Front Door 에지 서버는 원본에서 파일을 8MB 청크로 요청합니다.

청크가 Azure Front Door 에지에 도착하면 캐시되고 사용자에게 즉시 제공됩니다. 그런 다음 Azure Front Door는 다음 청크를 병렬로 미리 가져옵니다. 이 프리페치를 사용하면 콘텐츠가 사용자보다 먼저 하나의 청크로 유지되도록 하여 대기 시간을 줄일 수 있습니다. 이 프로세스는 전체 파일을 다운로드하거나(요청된 경우), 모든 바이트 범위를 사용할 수 있거나(요청된 경우), 클라이언트에서 연결을 종료할 때까지 계속됩니다. 바이트 범위 요청에 대한 자세한 내용은 RFC 7233을 참조하세요. Azure Front Door는 수신되는 모든 청크를 캐시합니다. Front Door 캐시에서 전체 파일을 캐시할 필요는 없습니다. 파일 또는 바이트 범위에 대한 후속 요청은 Azure Front Door 캐시에서 제공됩니다. 모든 청크가 Azure Front Door에 캐시되지 않으면 프리페치를 사용하여 원본에서 청크를 요청합니다. 이 최적화는 원본 서버에서 바이트 범위 요청을 지원하는 기능을 사용합니다. 원본 서버에서 바이트 범위 요청을 지원하지 않으면 이 최적화가 적용되지 않습니다.

Azure Monitor 도구를 사용하여 데이터 분석

이러한 Azure Monitor 도구는 모니터링 데이터를 분석하는 데 도움이 되는 Azure Portal에서 사용할 수 있습니다.

더 복잡한 시각화를 허용하는 도구는 다음과 같습니다.

  • 대시보드: 다양한 종류의 데이터를 Azure Portal에서 하나의 창에 결합할 수 있습니다.
  • 통합 문서: Azure Portal에서 만들 수 있는 사용자 지정 가능한 보고서입니다. 통합 문서에는 텍스트, 메트릭, 로그 쿼리가 포함될 수 있습니다.
  • Grafana: 뛰어난 운영 대시보드를 제공하는 개방형 플랫폼 도구입니다. Grafana를 사용하여 Azure Monitor 외의 여러 소스에서 온 데이터를 포함하는 대시보드를 만들 수 있습니다.
  • Power BI: 다양한 데이터 소스에서 대화형 시각화를 제공하는 비즈니스 분석 서비스입니다. Azure Monitor에서 자동으로 로그 데이터를 가져오도록 Power BI를 구성하여 이러한 시각화를 활용할 수 있습니다.

Azure Monitor 데이터 내보내기

다음을 사용하여 Azure Monitor에서 다른 도구로 데이터를 내보낼 수 있습니다.

Azure Monitor REST API를 시작하려면 Azure 모니터링 REST API 연습을 참조 하세요.

Kusto 쿼리를 사용하여 로그 데이터 분석

KQL(Kusto 쿼리 언어)을 사용하여 Azure Monitor 로그 데이터를 분석할 수 있습니다. 자세한 내용은 Azure Monitor의 로그 쿼리를 참조하세요.

Azure Monitor 경고를 사용하여 문제 알림

Azure Monitor 경고를 사용하면 시스템에서 문제를 식별하고 해결할 수 있으며, 고객이 이를 확인하기 전에 모니터링 데이터에 특정 조건이 발견되면 사전에 알릴 수 있습니다. Azure Monitor 데이터 플랫폼의 모든 메트릭 또는 로그 데이터 원본에 대해 경고할 수 있습니다. 모니터링하는 서비스 및 수집하는 모니터링 데이터에 따라 다양한 유형의 Azure Monitor 경고가 있습니다. 올바른 유형의 경고 규칙 선택을 참조하세요.

Azure 리소스에 대한 일반적인 경고의 예는 샘플 로그 경고 쿼리를 참조하세요.

대규모 경고 구현

일부 서비스의 경우 동일한 Azure 지역에 존재하는 동일한 형식의 여러 리소스에 동일한 메트릭 경고 규칙을 적용하여 대규모로 모니터링할 수 있습니다. AMBA(Azure Monitor 기준 경고) 는 중요한 플랫폼 메트릭 경고, 대시보드 및 지침을 대규모로 구현하는 반자동 방법을 제공합니다.

Azure Advisor를 사용하여 개인 설정된 권장 사항 가져오기

일부 서비스의 경우 리소스 작업 중에 위험한 상태 또는 임박한 변경 사항이 발생하는 경우 해당 서비스에서 포털의 개요 페이지에 경고가 표시됩니다. 왼쪽 메뉴의 모니터링 아래 Advisor 권장 사항에서 해당 경고에 대한 자세한 정보와 권장 수정 사항을 찾을 수 있습니다. 정상적으로 작동하는 중에는 Advisor 권장 사항이 표시되지 않습니다.

Azure Advisor에 대한 자세한 내용은 Azure Advisor 개요를 참조하세요.