공개하기부끄러운블로그
공개하기부끄러운블로그
공개하기부끄러운블로그
전체 방문자
오늘
어제
  • 🥇Home (100)
    • 👨🏻‍💻Infra (73)
      • 🌐Network (4)
      • 🐧Linux (27)
      • 🌎Cloud (9)
      • ⚫️Virtualization (2)
      • 🐳Docker & Kubernetes (1)
      • 🟦WEB & WAS (18)
      • 🟩IaC (0)
      • 🟨CI & CD (0)
      • ⚙️Application (6)
      • 💻Monitoring (2)
      • 📡HA (4)
    • 👨🏻‍💻Development (3)
      • 💻Frontend (2)
      • 💾Backend (0)
      • 🐍Bash (1)
    • 💾Data (16)
      • 🧩Database (13)
      • 📁Storage (3)
    • 🎓BBS (5)
    • 👨‍👧‍👧Git (0)

최근 글

인기 글

최근 댓글

태그

  • 보안
  • RHCS
  • Tomcat 버전 노출
  • Tomcat HTTP 헤더
  • Tomcat 취약점
  • 다음 카카오 주소API
  • 톰캣
  • 제로보드
  • Redmine
  • 라이믹스
  • log4j 취약점
  • 톰캣 HTTP 헤더
  • 다음 주소API
  • nginx
  • 방화벽
  • CentOS7 PostgreSQL
  • 웹방화벽
  • 톰캣 버전 노출
  • 취약점
  • CentOS6 PostgreSQL
  • WAF
  • tomcat
  • xe
  • GFS2
  • CentOS8 PostgreSQL
  • 레드마인 테마
  • 카카오 주소API
  • pcs
  • 레드마인
  • pacemaker

티스토리

hELLO · Designed By 정상우.
공개하기부끄러운블로그

공개하기부끄러운블로그

👨🏻‍💻Infra/🐧Linux

Nginx log를 logrotate를 사용하여 일자별로 관리하기

2019. 7. 16. 09:33
반응형

이건 참고 하자

---------------------------------------------------------------------------------------------

logrotate 관련 파일
# /usr/sbin/logrotate : 데몬의 위치 및 데몬프로그램
# /etc/logrotate.conf : 설정 파일.
# /etc/logrotate.d : logrotate를 적용할 로그 파일 보관 디렉토리.
# /var/lib/logrotate.status : logrotate가 작업 내역 보관 파일.
# /etc/cron.daily/logrotate : logrotate : cron 에 의해 일 단위로 실행한다.


동작 순서
1. cron.daily 에서 /usr/sbin/logrotate 호출 
2. /usr/sbin/logrotate 에서 /etc/logrotate.conf 설정파일 참조 

3. /etc/logrotate.conf 설정 파일에서 /etc/logrotate.d 참조 

# vi /etc/logrotate.d/apache

?
/var/logs/apache/access_log {
  su apache apache
  create 0644 apache apache
  size +1k
  missingok
  notifempty
  compress
  dateext
  postrotate
    /usr/bin/killall -HUP httpd
  endscript

----------------------------------------------------------------------------



1. Nginx log를 logrotate를 사용하여 일자별로 관리하기


(1) 서버별로 로그를 남기도록 설정한다.

파일명: ${NGINX_HOME}/nginx.conf


...

server {

...

access_log /home/user/log/nginx/access;

...

}

...

(2) 로그를 위한 logrotate 설정 파일을 만든다.

파일명: /etc/logrotate.d/nginx-access-log


/home/user/log/nginx/access {

    create 0644 nginx nginx

    daily

    rotate 30

    missingok

    notifempty

    dateformat .%Y-%m-%d.log

    dateext

    sharedscripts

    postrotate

       /etc/init.d/nginx reopen_logs

    endscript

}

(3) crontab에 해당 logrotate 실행 명령어를 등록한다.

crontab -l

59 23 * * * /etc/logrotate.d -f /etc/logrotate.d/nginx-access-log

(부가) logrotate 설정 옵션


create 0644 nginx nginx : 생성된 파일은 0644권한을 주며 nginx유저와 nginx그룹을 가지도록 한다.


daily : 일 단위로 rotate한다.


rotate 30 : 30개 이상된 로그파일을 삭제


missingok : 로그파일이 없더라도 오류를 발생시키지 않는다.


notifempty : 파일의 내용이 없을 경우 파일을 생성하지 않는다.


dateext : 1,2,3... 같은 라벨이 아닌 날짜를 붙여서 파일을 생성한다. 


dateformat .%Y-%m-%d.log : 파일에 .YYYY-MM-DD.log를 뒤에 붙인다. 

dateexe 옵션과 같이 쓰인다.


sharedscripts : postrotate ~ endscript안에 script가 동작할때 각각의 로그마다 실행 되는 것이 아니라 1번만 실행되도록 하는 옵션이다. (즉) /home/user/log/nginx/*.log{ ... } 으로 확장자가 log라는 파일을 rotate할때 각각의 파일이 아닌 1번만 postrotate ~ endscript안의 스크립트를 실행하도록 하는 옵션이다.


maxage 30 : 30일 이상된 로그파일 삭제

size 용량 : 지정된 용량이 되면 rotate한다.


ifempty : 로그파일이 비어있는 경우에도 rotate한다.


monthly : 월단위로 rotate한다.


weekly : 주단위로 rotate한다.


compress : gzip으로 압축한다.


nocompress : 압축하지 않는다.


mail 메일주소 : 설정에 의해 보관 기간이 끝난 파일을 메일주소로 발송한다.


mailfirst 메일주소 : 원본파일을 메일주소로 보낸다.


nomail : 메일을 받지 않는다.


errors 메일주소 : rotate중 오류발생시 메일주소로 통보한다.


copytruncate : 로그파일의 내용을 복사하고 로그파일의 크기를 0으로 만들도록 동작하게 하는 옵션. (만약 파일용량이 크다면 하지 복사하는데 I/O자원이 소모되므로 피해야 한다)


강제실행
# /usr/sbin/logrotate -f /etc/logrotate.d/apache

테스트
# /usr/sbin/logrotate -d /etc/logrotate.d/apache



출처: https://devnerd.tistory.com/entry/1-Nginx-log를-logrotate를-사용하여-일자별로-관리하기 [eyesofkhepri]

반응형
저작자표시 (새창열림)

'👨🏻‍💻Infra > 🐧Linux' 카테고리의 다른 글

[Linux] Bonding  (0) 2019.10.18
echo 출력 내용 색상 변경  (0) 2019.10.09
log파일 일자별로 정리하기  (0) 2019.06.27
본딩(Bonding) 실습  (0) 2019.02.12
Smart Storage Administrator  (0) 2019.02.12
    '👨🏻‍💻Infra/🐧Linux' 카테고리의 다른 글
    • [Linux] Bonding
    • echo 출력 내용 색상 변경
    • log파일 일자별로 정리하기
    • 본딩(Bonding) 실습
    공개하기부끄러운블로그
    공개하기부끄러운블로그
    IT 기술 블로그

    티스토리툴바