nginx (tengine) 접근 로그 분할

1323 단어 node.js
설명 하 다.
nginx 로 그 는 천분 편 에 따라 운영 하 는 기본 적 인 요구 입 니 다. 파일 크기 를 줄 일 수 있 을 뿐만 아니 라 관건 적 인 데 이 터 를 검색 할 수 있 을 뿐만 아니 라 기한 이 지난 로 그 를 정기 적 으로 삭제 할 수 있 습 니 다.그러나 nginx 와 tengine 은 기본적으로 파일 분할 을 지원 하지 않 기 때문에 추가 처리 가 필요 합 니 다.
또한, 로그 분 편 은 ngx 를 빌려 야 합 니 다.http_log_module 모듈, 기본적으로 yum 을 통 해 설 치 된 nginx 는 이 모듈 을 가지 고 있 지 않 습 니 다. 추가 컴 파일 이 필요 합 니 다.tengine 은 기본적으로 ngx 를 가 져 왔 습 니 다.http_log_module 모듈 이 므 로 사용자 가 tengine 을 직접 원본 으로 컴 파일 하 는 것 을 권장 합 니 다.
의 원리
로그 분할 의 원 리 는 이름 파 이 프 를 이용 하 는 것 이다.Liux 아래 모든 파일 이 있 기 때문에 이름 파 이 프 를 Liux 의 방문 로그 로 만 들 고 제3자 프로그램 에서 이름 파 이 프 를 연결 하여 데 이 터 를 가 져 온 후 시간 에 따라 나 눕 니 다.이곳 의 제3자 프로그램 은 사용자 가 직접 작성 한 처리 프로그램 일 수도 있 고, cronolog 와 같은 원본 소프트웨어 를 사용 할 수도 있다.다음은 cronolog 로 로그 분할 을 실현 합 니 다.
순서
  • 이름 파이프 만 들 기: mkfifo / opt / logs / nginx / access. log
  • cronolog 시작: cronolog / opt / logs / nginx / access%Y%m%.log < /opt/logs/nginx/access.log &
  • nginx 프로필 수정: http 내
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    
    access_log   /opt/logs/nginx/access.log main;
  • 다시 시작 nginx: nginx - s reload
  • 좋은 웹페이지 즐겨찾기