본문으로 건너뛰기

요청 분석

요청 분석은 게이트웨이를 통과한 HTTP 요청을 추세, 성능, 유입 경로 및 보안 관점으로 집계하면서 문제 해결용 개별 로그도 유지합니다. 게이트웨이 요청 로그를 분석하는 기능이며 로그인 이벤트나 HTTP 게이트웨이에 들어오지 않은 원시 포트 연결은 포함하지 않습니다.

요청 분석분석, 로그, WAF 로그 탭에서 통계, 요청 상세, 보안 이벤트를 전환합니다.

데이터 수집 활성화

시스템 설정 → 로그에서 게이트웨이 요청 로그를 활성화하고 최소 1일의 보관 기간을 설정합니다. Go 게이트웨이는 기본적으로 실행 디렉터리의 logs 폴더에 날짜별 구조화 JSON 파일을 기록하며 요청 분석 페이지는 이 파일을 직접 읽습니다. 로그를 끄면 새 분석 데이터가 생성되지 않고, 보관 기간이 지나 삭제된 파일은 과거 분석에도 사용할 수 없습니다. 저장 공간과 쓰기 부하를 고려해 보관 일수를 정합니다.

로컬 루프백 127.0.0.1 요청 기록은 기본적으로 꺼져 있습니다. 따라서 로컬 상태 확인, 같은 호스트의 리버스 프록시 및 127.0.0.1을 통해 게이트웨이에 들어오는 다른 요청은 일반적으로 목록에 표시되지 않습니다. 로컬 호출 경로를 추적할 때만 활성화합니다. 이 옵션은 로그 기록 범위만 바꾸며 루프백 출발지의 접근 권한은 변경하지 않습니다.

로그 쓰기에는 비동기 큐를 사용합니다. 설정 페이지에 누적 누락 수가 표시되면 큐가 혼잡해 일부 요청이 디스크에 기록되지 않았다는 뜻입니다. 이 수치는 게이트웨이가 거부한 요청 수가 아닙니다. 게이트웨이의 리버스 프록시 스로틀링으로 연결이 바로 끊긴 요청도 접근 로그에 남지 않습니다.

로그 저장 디렉터리 변경

시스템 설정 → 로그에서 저장 경로를 입력하거나 폴더 선택로 게이트웨이가 접근할 수 있는 폴더를 선택한 뒤 저장합니다. 요청 로그 탭에서도 설정으로 이동할 수 있습니다. 실제 경로와 기본 경로가 별도로 표시됩니다. 비우거나 기본값 복원을 누른 뒤 저장하면 기본 위치로 돌아갑니다.

탐색기는 게이트웨이 서버의 파일 시스템을 보여 줍니다. Docker에서는 컨테이너 내부 경로이므로 먼저 저장소를 마운트합니다. 로그 디렉터리 선택기는 정적 콘텐츠 탐색기가 숨기는 보호 디렉터리도 탐색할 수 있지만 이를 정적 사이트로 공개할 수 있다는 뜻은 아닙니다. 저장 시 경로와 쓰기 권한을 검증합니다. 실패하면 오류를 확인하고 실제 경로를 다시 조회합니다.

경로 변경은 기존 로그를 이동하지 않습니다. 저장 후 조회, 분석, 보관 기간 정리는 현재 디렉터리에만 적용됩니다. 이전 디렉터리는 별도로 보관하거나 정리합니다. 메모리 디렉터리의 로그는 재부팅 시 사라지며 외부 영구 저장소는 내부 FLASH 쓰기를 줄일 수 있습니다. 저장 후 외부에서 요청을 보내 실제 경로와 새 로그를 확인합니다.

‘분석’ 탭 사용

오늘, 최근 7일 또는 최근 30일을 선택할 수 있습니다. 통계는 게이트웨이 시간대를 기준으로 집계하며 최대 범위는 연속 30일입니다. 로그 보관 기간이 더 짧으면 이전 날짜에는 데이터가 없습니다.

상단 지표는 요청 수, 고유 클라이언트, 5xx 오류율, P95 응답 시간 및 송신 트래픽을 보여 줍니다. 추세 차트는 전체 요청, 4xx 및 5xx를 비교하며 다음 항목으로 세분화할 수 있습니다.

  • 요청 대상: 경로, 라우트, Host 및 업스트림
  • 유입 경로: Referrer, UTM 소스, 매체 및 캠페인
  • 국가와 지역: 중복을 제거한 유효 클라이언트 IP로 집계
  • 클라이언트: 기기 유형, 브라우저 및 운영체제
  • 응답: 상태 코드, 메서드 및 지연 시간 구간
  • 인증과 보안: 인증 결정 및 WAF 동작

지역 정보는 IP 위치 캐시를 사용합니다. 처음에는 확인 중이거나 일부만 집계될 수 있으므로 지역 정보 새로 고침을 시작한 뒤 다시 확인합니다. 분석 API는 집계된 국가 및 지역 버킷만 반환하며 집계에 사용한 클라이언트 IP 목록은 브라우저로 보내지 않습니다. 손상되거나 필드가 불완전한 로그는 통계에서 제외되고 그 수가 페이지에 표시됩니다.

평균, P95 및 오류율은 추세를 찾는 지표이며 업스트림 애플리케이션의 완전한 성능 추적을 대신하지 않습니다. 이상을 발견하면 로그 탭으로 전환해 Host, 경로, 시간 및 상태 코드로 개별 요청을 찾습니다.

‘로그’ 탭 사용

레코드 읽기

필드용도
클라이언트 IP / 연결 출발지 IP실제 방문자와 게이트웨이의 TCP 연결 상대를 비교해 CDN, 리버스 프록시 및 Docker 경로를 점검
메서드, Host, 경로요청이 어느 서비스와 일치했는지 판단
라우트 유형, 업스트림 대상Host/경로 규칙이 올바른 대상을 선택했는지 판단. 정적 응답은 정적 파일 또는 정적 디렉터리로 표시되며 업스트림 주소가 없음
인증 상태세션, 허용 목록, 로컬 예외, 고급 인증 임시 자격 증명 또는 인증되지 않음 중 무엇이 결과에 영향을 주었는지 판단
서브도메인 규칙 그룹 ID / 임시 자격 증명 상태고급 인증 규칙과 일치했을 때 구체적인 규칙 그룹과 현재 요청이 요청별 허용·발급·갱신·재사용 중 어느 상태인지 확인
상태 코드, 처리 시간게이트웨이 거부, 업스트림 오류 및 느린 응답 구분

요청 로그에는 접근 경로, 쿼리, 출발지 IP, User-Agent, 인증 결과 및 업스트림 주소가 포함될 수 있으므로 민감한 운영 데이터로 취급합니다. 문제 해결용 로그 일부를 공유하기 전에 토큰, 쿼리 매개변수, 내부 주소 및 개인을 식별할 수 있는 정보를 삭제합니다.

정적 파일 및 디렉터리 응답은 게이트웨이가 파일 시스템에서 직접 읽으므로 로그의 업스트림 대상이 비어 있습니다. 라우트 키는 계속 서비스 Host이며 Trace ID, 인증 결과, WAF 동작, 상태 코드 및 처리 시간도 평소처럼 기록됩니다. 서버 절대 경로는 요청 로그나 WAF 이벤트에 기록되지 않습니다. 설정 및 문제 해결은 정적 파일 및 디렉터리 응답을 참고합니다.

권장 문제 해결 순서

  1. 외부 네트워크에서 재현 가능한 요청을 한 번 보냅니다.
  2. 해당 Host와 경로를 찾아 요청이 게이트웨이에 도착했는지 확인합니다.
  3. 클라이언트 IP를 대조해 프록시 주소를 방문자 주소로 잘못 인식하지 않았는지 확인합니다.
  4. 인증 상태와 접근 정책을 확인합니다.
  5. 그다음 업스트림 대상, 상태 코드 및 서비스 자체 로그를 확인합니다.

Trace ID로 전체 경로 확인

요청 로그, WAF 로그, 시스템 이벤트와 알림 전송은 공통 Trace ID로 관련 기록을 연결합니다. 요청 분석 또는 이벤트 센터Trace ID 조회를 선택하거나 기록의 Trace ID를 클릭해 전체 경로 추적을 엽니다.

추적 페이지는 요청, WAF 이벤트, 시스템 이벤트, 알림 트리거와 전송을 시간순으로 보여 주고 각 데이터 출처를 발견됨, 찾지 못함 또는 일시 사용 불가로 표시합니다. 한 출처가 실패해도 다른 데이터는 표시됩니다. 결과가 없는 경우 수집이 꺼져 있거나 보관 기간이 지났거나 이전 기록에 통합 Trace ID가 없을 수도 있습니다.

Trace ID는 게이트웨이 응답 헤더, 차단 페이지 또는 알림에도 표시될 수 있습니다. 공유 전 Host, 경로, 출발지 IP, 업스트림 주소와 알림 내용을 확인하십시오. Trace ID는 연관 키이며 익명화된 공개 자격 증명이 아닙니다.

로그에 요청이 전혀 없다면 먼저 테스트 트래픽이 127.0.0.1에서 왔는지와 루프백 로그 옵션이 활성화되어 있었는지 확인합니다. 로컬 트래픽을 제외한 뒤에는 대개 DNS, CDN, 터널, 라우터 또는 포트 공개 구간에 문제가 있습니다. 매핑 규칙부터 수정하지 않습니다.

일부 요청만 누락되었다면 게이트웨이 스로틀링이 연결을 바로 끊었는지, 로그 설정 페이지에 큐 누락 경고가 표시되는지 확인합니다. 상태 코드가 업스트림이 아닌 게이트웨이에서 반환되었다면 인증, 접근 범위, WAF 및 매핑을 계속 점검합니다. 올바른 업스트림 대상(타깃)이 표시된다면 서비스 자체 로그를 확인합니다.

관리형 Cloudflare Tunnel에서 Pseudo IPv4 → Overwrite Headers를 활성화하면 IPv6 방문자의 초기 엣지 헤더가 240.0.0.0/4일 수 있습니다. 이를 지원하는 fn-knock는 전용 관리 진입점에서 CF-Connecting-IPv6를 검증하고 ‘클라이언트 IP’를 실제 공인 IPv6로 복원합니다. ‘연결 출발지 IP’는 계속 로컬 Tunnel 경로를 나타냅니다. 업그레이드 후에도 Class E 주소가 기록되면 수동 오리진을 사용하는지 또는 헤더가 없거나 중복되었는지 확인합니다. 수동 오리진에서는 Pseudo IPv4를 Off 또는 Add Header로 설정합니다. 우회 목적으로 240.0.0.0/4를 허용 목록에 추가하지 않습니다.

서브도메인 고급 인증을 활성화한 뒤 인증 결과가 서브도메인 규칙으로 허용이면 고급 인증으로 요청이 통과했다는 뜻입니다. 세부 정보의 규칙 그룹 ID로 적용된 설정을 찾을 수 있습니다. 자격 증명 상태가 요청별 허용이면 요청은 규칙과 일치했지만 지속형 자격 증명은 만들어지지 않았다는 뜻입니다. 첫 Cookie 기능 확인, Cookie를 저장하지 않는 클라이언트, WebSocket 업그레이드 또는 지속화 실패 시 흔히 표시됩니다. 발급됨은 이번 요청에서 지속형 자격 증명을 만들었고, 갱신됨은 유휴 유효 기간을 갱신했으며, 재사용됨은 기존 자격 증명을 계속 사용했다는 뜻입니다. 규칙 동작은 서브도메인 고급 인증을 참고합니다.

의심스러운 IP 처리

실제 공격 출발지로 확인되면 로그에서 일반 차단 목록 또는 IP 허용 목록 작업으로 이동할 수 있습니다. 작업하기 전에 공유 인터넷 출구나 앞단 프록시 주소가 아닌지 확인하고 시간, Host, 경로 등의 맥락을 보관합니다.

QQ 커뮤니티: 1081609274