Nginx 접근 로그 절단

4108 단어 NginxLinux
글 목록
원리
준비 도구
참고 문헌
의 원리
    정시 작업 + 스 크 립 트 를 이용 하여 로그 의 자동 절단 을 실현 합 니 다.
준비 도구
운영 체제: CentOS 7 Nginx 버 전: 1.13.1 Nginx 설치 디 렉 터 리: / application / nginx
$ cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)
$ /application/nginx/sbin/nginx -v
nginx version: nginx/1.13.1

기본 적 인 상황 에서 Nginx 는 모든 방문 로 그 를 지정 한 방문 로그 파일 access. log 에 생 성 합 니 다. 그러나 시간 이 지나 면 로그 의 크기 가 커서 로그 의 분석 과 처리 에 불리 합 니 다. 따라서 Nginx 로그, 날짜 또는 시간 에 따라 절단 하여 서로 다른 파일 로 나 누 어 저장 할 필요 가 있 습 니 다.이곳 은 날짜 에 따라 자 르 는 방법 을 사용한다.
절단 스 크 립 트 내용 은 다음 과 같 습 니 다 $cat / server / script / cutnginx_log.sh
#! /bin/bash
Dateformat=`date -d yesterday +"%Y%m%d"`  #       
Basedir='/application/nginx'
Nginxlogdir="/application/nginx/logs"
Logname='access'
[ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1
[ -f ${Logname}.log ] || exit 1
/bin/mv ${Logname}.log ${Dateformat}_${Logname}.log
$Basedir/sbin/nginx -s reload

/bin/mv www_access.log www_access$(date +%F -d -1day).log
메모: * 8195: 스 크 립 트 는 Nginx 로 그 를 자 르 는 사상 을 실현 합 니 다. 기 록 된 Nginx 로그 (access. log) 를 날짜 가 있 는 형식 파일 (년 월 일 access. log) 로 바 꾼 다음 부 드 럽 게 Nginx 로 그 를 다시 불 러 와 새로운 Nginx 로그 (access. log) 를 만 듭 니 다.
    정시 임 무 를 통 해 매일 00 시 정시 에 / server / script / cut 수행nginx_로그. sh 절단 로그.Nginx 로 그 를 어제 날짜 가 있 는 파일 로 변경 합 니 다.
# cat >> /var/spool/cron/root << EOF
> #cut nginx access log by    
> 00 00 * * * /bin/sh /server/script/cut_nginx_log.sh > /dev/null 2>&1
> EOF

조작 후 구 조 는 다음 과 같다.
[root@sy-pc ~]# crontab -l
#cut nginx access log by    
00 00 * * * /bin/sh /server/script/cut_nginx_log.sh > /dev/null 2>&1

최종 로그 절단 효 과 는 다음 과 같 습 니 다.
[root@sy-pc ~]# ll /application/nginx/logs/
total 72
-rw-r--r--. 1 root sy  1606 Jul 31 16:02 20190730_access.log
-rw-r--r--. 1 root sy 61104 Jul 31 15:58 20190731_access.log
-rw-r--r--. 1 root sy     0 Jul 31 16:02 access.log
-rw-r--r--. 1 root sy   241 Jul 31 16:02 error.log
-rw-r--r--. 1 root sy     5 Jul 31 13:28 nginx.pid

변경 날짜 7 일 전의 로 그 를 삭제 합 니 다.
find /application/nginx/logs -mtime +7 -type f -name \*.log | xargs rm -rf

CentOS 7 systemctl status crond # systemctl stop crond # systemctl start crond #
    Nginx 가 자주 사용 하 는 로그 수집 및 분석 도 구 는 rsyslog, awstats, flume, ELK (Elasticsearch logstash Kibana), storm 등 이 있다.독자 가 필요 하 다 면 늙 은 남자 아이의 다른 과정, 책 이나 인터넷 자 료 를 스스로 연구 하거나 참고 할 수 있다.더 많은 상용 오픈 소스 운영 도구 참조http://oldboy.blog.51cto.com/2561410/775056
참고 문헌
[1] 늙 은 남자 아이. 늙 은 남자 아이 에 게 리 눅 스 운영: 웹 클 러 스 터 실전 [M]. 기계 공업 출판사, 2016 - 03 - 01. [2] nginx 절단 로그 [DB | OL].https://www.cnblogs.com/jsonhc/p/8120520.html [3] linu find 명령 찾기 및 7 일 전 파일 삭제 [DB | OL].https://blog.csdn.net/ak57193856/article/details/78251611

좋은 웹페이지 즐겨찾기