Nginx 로그 절단 Logrotate 편

4301 단어 Nginx
Nginx 로그 절단 Logrotate 편
      Logrotate 는 Linux 의 다음 로그 관리 도구 로 로그 파일 의 덤 프 (즉, 오래된 로그 파일 을 삭제 하고 새 로그 파일 을 만 드 는 것) 에 사용 할 수 있 습 니 다.로그 크기 나 시간 간격 에 따라 저장 할 수 있 으 며 내부 에 서 는 cron 프로그램 을 사용 하여 실행 할 수 있 습 니 다.Logrotate 는 로 그 를 압축 하여 지정 한 E - mail 로 보 낼 수도 있 습 니 다.
      Logrotate 기본 설정 파일 은 / etc / logrotate. conf 입 니 다. 첫 번 째 줄 은:
include /etc/logrotate.d

이 디 렉 터 리 의 설정 을 포함 하고 있 음 을 설명 합 니 다. 일반 사용자 의 설정 도 여기에 있 습 니 다. 예 를 들 어 nginx 로그 절단 / etc / logrotate. d / nginx.Logrotate 는 설정 가능 한 인자 가 많 고 man 명령 으로 조회 할 수 있 습 니 다.
compress                          gzip         
nocompress                         
copytruncate                                ,          
nocopytruncate                             
create mode owner group             ,                 
nocreate                                 
delaycompress   compress             ,                 
nodelaycompress                    delaycompress   ,      。
errors address                                 Email   
ifempty                                  ,    logrotate      。
notifempty                              ,   
mail address                                  E-mail   
nomail                                    
olddir directory                               ,                 
noolddir                                               
prerotate/endscript                                ,            
postrotate/endscript                               ,            
daily                                    
weekly                                   
monthly                                  
rotate count                                   ,0      ,5    5    
tabootext [+] list  logrotate              ,       :.rpm-orig, .rpmsave, v,   ~ 
size size                                       ,bytes(  ) KB(sizek) MB(sizem)

먼저 centos 가 설 치 된 logrotate. conf 부분 을 살 펴 보 겠 습 니 다.
/var/log/wtmp {             //           
    monthly                 //    
    minsize 1M              //    1M
    create 0664 root utmp   //         
    rotate 1                //    
}

간단명료 하 다.예상 한 바 와 같이 include 는 설정 파일 을 대량으로 지정 할 수 있 습 니 다. 전형 적 인 응용 프로그램 은 / etc / logrotate. d / 디 렉 터 리 에 포함 되 어 있 습 니 다. apache, linux conf, syslog 등 이 있 습 니 다.메모: include 도입 설정 은 같은 이름 의 기본 설정 을 덮어 씁 니 다.
몇 가지 요점:
  • 각 부분의 괄호 는 다른 문장 과 동행 할 수 있 고 꼬리 줄 괄호 는 반드시 단독으로 줄 을 지어 야 한다
  • prerotate 와 post rotate 는 덤 프 전후 (즉 절단 전후) 에 실 행 된 Liux 스 크 립 트 (endscript 종료) 를 지정 할 수 있 습 니 다. 예 를 들 어
    /var/log/messages { 
        prerotate                               //      
        /usr/bin/chattr -a /var/log/messages    //     -a  
        endscript                               //    
        postrotate                              //     
        /usr/bin/kill -HUP syslogd              //              syslogd
        /usr/bin/chattr +a /var/log/messages    //  -a  ,       
        endscript
    }
    
  • Logrotate 의 백업 정책 (두 개의 백업 으로 설명 합 니 다. 즉, rotate 2, 파일 error. log): 원본 파일 error. log 는 한 번 의 덤 프 를 통 해 error. log. 1 을 생 성 합 니 다.두 번 째 덤 프, error. log. 2 생 성;세 번 째 덤 프, error. log. n 은 error. log. n + 1 이 라 고 명명 되 었 으 며, 동시에 새로운 error. log. 1 을 생 성하 여 error. log. n + 1 파일 을 삭제 합 니 다.
  • 덤 프 는 강제 집행 을 통 해 작업 과정 을 관찰 할 수 있다
    logrotate -vf /etc/logrotate.d/nginx。
    
  • 로그 절단 의 실행 시간 은 cron 프로 세 스 설정 에 의 해 결 정 됩 니 다. / etc / crontab 파일 (cron 시간 스탬프 형식: 시간 대별 주간)
  • 을 볼 수 있 습 니 다.
          나의 테스트: 192.168. *. * 의 nginx 로 그 를 매일 자 르 고 다음 과 같이 설정 합 니 다 (/ etc / logrotate. d / nginx 파일).
    /var/log/nginx/*.log {      //  :       nginx    
        daily                   //    
        dateext                 //%Y%m%d    
        missingok               //     ,     
        rotate 2                //      
        compress                //      .tar.gz
        notifempty              //      
        create 640 nginx adm    //       
        sharedscripts           //            
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
                                //  nginx,        ,    
                `cp -f /var/log/nginx/*.* /var/log/nginx/backup`
                                //     ,    copy backup   (backup   )
        endscript
    }
    

    Done! Thank you for reading!

    좋은 웹페이지 즐겨찾기