nginx 웹 로그 소개 및 분석

nginx 웹 로그 소개 및 분석
Nginx 로그 인쇄 에 접근 하 는 형식 을 사용자 정의 할 수 있 습 니 다. 예 를 들 어 Nginx 로그 인쇄 형식 은 다음 과 같 습 니 다. Logformat 는 로그 형식 을 설정 합 니 다. Name (모듈 이름) Type (로그 형식) 은 여러 개의 로그 모듈 을 설정 하여 각각 다른 가상 호스트 로그 기록 에 호출 할 수 있 습 니 다.
log_format
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent"  $request_time';
access_log /spool/logs/nginx-access.log compression buffer=32k;

log_format 지정 로그 형식 niginx 로그 형식 및 내부 변수 함수 파라미터 설명:
  • $remote_addr 클 라 이언 트 IP 주소 기록
  • $server_name 가상 컴퓨터 호스트 이름
  • $http_x_forwarded_for HTTP 요청 의 실제 IP
  • $remote_사용자 기록 클 라 이언 트 사용자 이름
  • $request 는 요청 한 URL 과 Http 프로 토 콜 버 전 을 기록 합 니 다
  • $status 기록 http 요청 상 태 를 되 돌려 줍 니 다
  • $upstream_status upstream 상태
  • $ssl_protocol SSL 프로 토 콜 버 전
  • $body_bytes_sent 전송 클 라 이언 트 의 바이트 수 는 응답 헤드 크기 를 포함 하지 않 습 니 다
  • $bytes_sent 발송 클 라 이언 트 의 총 바이트 수
  • $connection_requests 현재 하나의 연결 을 통 해 얻 은 요청 수량
  • $http_referer 는 어느 페이지 에서 연결 되 었 는 지 기록 합 니 다
  • $http_user_에이전트 클 라 이언 트 브 라 우 저의 관련 정보 기록
  • $request_length 요청 길이, 요청 줄, 요청 헤더, 본문 포함
  • $msec 로그 기록 시간
  • $request_time 요청 처리 시간, 단 위 는 초, 정밀도 밀리초, nginx 는 응답 데 이 터 를 보 낼 때 까지 첫 번 째 바이트 를 보 냅 니 다.
  • $upstream_response_time 응용 프로그램 이 응답 하 는 시간, nginx 응답 은 백 엔 드 서버 에 연결 을 만 들 고 데 이 터 를 받 은 후에 연결 을 닫 을 때 까지 총 시간 입 니 다.

  • access_log
    access_log /spool/logs/nginx-access.log compression buffer=32k;access_log off;

    access_log: 로그 에 접근 하기 위 한 경로, 형식, 버퍼 크기 (nginx 접근 로그 지원 캐 시) 를 설정 합 니 다.같은 설정 단계 에서 여러 로 그 를 지정 할 수 있 습 니 다.특정 값 off 는 현재 설정 등급 의 모든 access 를 취소 합 니 다.log 명령.지정 한 로그 형식 이 없 으 면 미리 정 의 된 "combined" 형식 을 사용 합 니 다.
    로그 파일 의 경 로 는 변 수 를 포함 할 수 있 지만, 이러한 로 그 는 약간의 제한 이 있 습 니 다.
  • 작업 프로 세 스 가 사용 하 는 user 는 디 렉 터 리 에 파일 을 만 들 수 있 는 권한 을 가 져 야 합 니 다.
  • 쓰기 버퍼 가 잘못 되 었 습 니 다.
  • 로그 마다 파일 을 열 고 닫 습 니 다.그러나 자주 사용 하 는 파일 설명 자 는 캐 시 에 저장 할 수 있 습 니 다. openlog_file_cache 명령 의 valid 매개 변수 가 지정 한 시간 동안, 쓰기 동작 은 오래된 파일 에 계속 쓸 수 있 습 니 다.
  • 로그 에 기 록 될 때마다 요청 한 루트 디 렉 터 리 가 존재 하 는 지 확인 합 니 다. 존재 하지 않 으 면 로 그 는 만 들 지 않 습 니 다. 따라서 한 단계 에서 루트 와 access 를 동시에 지정 합 니 다.로 그 는 좋 은 생각 이다.

  • open_log_file_cache
    open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;

    open_log_file_cache: 자주 사용 하 는 파일 이름 에 변 수 를 포함 하 는 로그 파일 설명 자 를 저장 하 는 캐 시 를 정의 합 니 다.이 명령 은 다음 매개 변 수 를 포함 합 니 다:
  • max: 캐 시 에 있 는 설명자 의 최대 수량 을 설정 합 니 다.캐 시가 가득 차 면 최근 에 최소한 (LRU) 을 사용 하 는 설명자 가 닫 힙 니 다.
  • inactive: 캐 시 파일 설명 자 를 설정 하면 접근 하지 않 고 닫 습 니 다.기본 값 은 10 초 입 니 다.
  • min_uses: inactive 매개 변수 가 지정 한 시간 에 최소 몇 번 방문 해 야 파일 설명 자 를 캐 시 에 저장 할 수 있 습 니 다.기본 값 은 1 입 니 다.
  • valid: 시간 초과 후에 도 파일 이 같은 이름 으로 존재 하 는 지 확인 하 는 시간 을 설정 합 니 다.기본 값 은 60 초 입 니 다.
  • off: 캐 시 기능 사용 하지 않 기
  • IP PV UV VV 소개
    IP: 독립 된 IP 로 같은 IP 주 소 를 하루 에 한 번 씩 방문 합 니 다.
    PV: Page View 는 페이지 조회 수 나 조회 수 입 니 다. 한 페이지 를 열 때마다 PV 를 한 번 하 더 라 도 페이지 를 새로 고침 하 는 횟수 를 말 합 니 다. 페이지 를 새로 고침 할 때마다 PV 트 래 픽 을 한 번 하 더 라 도.
    UV: Unique Visitor, 독립 방문객 수, 하루 동안 특정 사 이 트 를 방문 하 는 인원 은 COOKIE 를 근거 로 하루 동안 같은 클 라 이언 트 의 IP 는 한 번 의 방문객 으로 만 계 산 됩 니 다.
    쿠키 로 UV 값 분석: 클 라 이언 트 가 특정한 사이트 서버 를 처음 방문 할 때 사이트 서버 는 이 클 라 이언 트 의 컴퓨터 에 쿠키 를 보 내 고 보통 이 클 라 이언 트 컴퓨터 의 CD 에 놓는다.이 Cookie 에는 유일한 번호 가 배 정 됩 니 다. 그 중에서 서버 에 접근 하 는 정보, 예 를 들 어 방문 시간, 어떤 페이지 를 방 문 했 는 지 등 이 기 록 됩 니 다.다음 에 이 서버 를 다시 방문 할 때 서버 는 지난번 에 넣 었 던 Cookie 파일 을 컴퓨터 에서 직접 찾 아 업데이트 할 수 있 지만 그 유일한 번 호 는 변 하지 않 습 니 다.
    VV : Visit View, 방문객 방문 횟수, 방문객 이 모든 방문 을 완료 하고 최종 적 으로 이 사이트 의 모든 페이지 를 닫 았 을 때 한 번 의 방문 이 완료 되 었 습 니 다. 같은 방문객 은 하루 에 여러 번 방문 행위 가 있 을 수 있 고 방문 횟수 가 누적 되 었 습 니 다.
    실례 설명
    샤 오 밍 은 집에 서 ADSL 로 전 화 를 걸 어 인터넷 에 접속 해 오전 8 시 www. jj. com 아래 2 개 페이지 를 방 문 했 고, 오후 2 시 에는 www. jj. com 3 개 페이지 를 추가 로 방문 했다.그렇다면 www. jj. com 에 대해 오늘 의 PV, UV, VV, IP 의 각 지 표 는 어떻게 계산 해 야 합 니까?
    PV: 5 PV 는 조회 수 를 말 하 므 로 PV 는 오전 에 조회 한 2 개의 페이지 와 오후 에 조회 한 3 개의 페이지 의 합 을 말 합 니 다.
    UV: 1 UV 는 독립 방문객 수 를 말 하 므 로 하루 동안 같은 방문객 의 여러 번 방문 은 1 개의 UV 에 불과 하 다.
    VV: 1 VV 는 방문객 의 방문 횟수 를 말 하 며 오전 과 오후 에 각각 한 차례 방문 행위 가 있 기 때문에 VV 는 2 이다.
    IP: 2 IP 는 독립 IP 수 입 니 다. ADSL 다이얼 로 인터넷 에 접속 할 때마다 IP 가 다 르 기 때문에 독립 IP 수 2 입 니 다.
    로그 분석
    Nginx 로 그 를 통 해 WEB 사이트 의 운영 상태, 데이터 보고서, IP, UV (unique visitor), PV (page view) 의 방 문 량 등 수 요 를 간단하게 분석 할 수 있 습 니 다. 다음 과 같은 일반적인 수요 분석 입 니 다.
    사용 한 로그 형식
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent"  $request_time';
  •  nginx 서버 의 독립 IP 수 통계
    awk  '{print $1}' access.log |sort -r|uniq -c | wc -l
  •  Nginx 의 PV 량 통계
    awk  '{print $7}' access.log |wc -l
  •  Nginx 서버 UV 통계 집계 (데모 만)
    awk  '{print $11}' access.log |sort -r|uniq -c |wc -l
  •  Nginx 접근 로 그 를 분석 합 니 다.
    awk  '{print  $1}'  access.log|sort |uniq -c |sort -nr |head -20
  •  Nginx 방문 로그 의 오전 9 시 부터 낮 12 시 까지 총 요 구 량 을 분석 합 니 다.
    sed  -n  "/2016:09:00/,/2016:12:00/"p access.log|wc -lawk  '/2017:09:00/,/2017:12:00/' access.log|wc –l
  •  Nginx 접근 로 그 를 분석 합 니 다.
    awk  '{print  $1}'  access.log|sort |uniq -c |sort -nr |head -20
  •  Nginx 액세스 로그 상태 코드 404, 502, 503, 500, 499 등 오류 정보 페이지 를 분석 하고 인쇄 오류 발생 횟수 가 20 이상 인 IP 주 소 를 분석 합 니 다.
    awk '{if ($9~/502|499|500|503|404/) print $1,$9}' access.log|sort|uniq –c|sort –nr | awk '{if($1>20) print $2}'
  •  Nginx 접근 로 그 를 가장 많이 방문 한 페이지 를 분석 합 니 다.
    awk  '{print $7}'   access.log |sort |uniq -c|sort -nr|head -20
  •  Nginx 액세스 로그 요청 처리 시간 이 5 초 이상 인 URL 을 분석 하고 시간, URL, 방문객 IP 를 출력 합 니 다.
    awk  '{if ($NF>5)  print $NF,$7,$1}'  access.log|sort -nr|more
  • 좋은 웹페이지 즐겨찾기