apache 와 nginx 로그 절단
웹 로 그 는 중요 한 것 으로 로 그 를 분석 하여 풍부 한 사이트 정 보 를 얻 을 수 있 습 니 다.로 그 를 잘 처리 하지 못 하면 모든 로그 가 한 파일 에 기록 되 어 있 습 니 다. 쌓 인 후에 이 파일 은 매우 크 고 로 그 를 분석 하 는 효율 에 도 영향 을 줄 수 있 습 니 다. 가장 중요 한 것 은 하나의 로그 가 너무 커서 웹 서비스 가 로그 문서 에 정 보 를 기록 하 는 속도 에 영향 을 줄 수 있 기 때문에 로 그 를 합 리 적 으로 처리 하고 분배 하 는 것 이 필요 합 니 다.다음은 웹 로그 분할 방법 을 기록 합 니 다.
1、apache
apache 의 로 그 를 하늘 로 나 누 게 합 니 다. 즉, 매일 새로운 로 그 를 만들어 그날 의 로그 정 보 를 기록 합 니 다.
다음은 apache - 2.4 의 가상 호스트 에서 생 성 된 로 그 를 날짜 별로 자 르 는 것 입 니 다.
<VirtualHost *:80>
DocumentRoot "/www/wwwroot/www.test.com"
ServerName www.test.com
DirectoryIndex index.html index.php index.htm
ErrorLog "/www/weblogs/nginx_error.log"
# rotatelogs apache
CustomLog "|/usr/local/apache2/bin/rotatelogs /www/weblogs/%Y_%m_%d-httpd.access.log 86400" common
<Directory /www/wwwroot/www.test.com>
Options -Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
2、nginx
nginx 의 로그 절단 에 사용 할 스 크 립 트 도움말 입 니 다. nginx 에서 이 기능 을 제공 하지 않 았 기 때 문 입 니 다.
다음은 로 그 를 자 르 는 스 크 립 트 입 니 다. 실제로 스 크 립 트 를 이용 하여 로 그 를 이름 으로 바 꾸 고 새로운 로 그 를 다시 만 드 는 것 입 니 다.
cat nginx_log.sh
#! /bin/bash
#date= 2015-07-29 18:00
logs_path="/www/weblogs/"
log_name="nginx_access.log"
pid_path="/var/run/nginx.pid"
#
mv ${logs_path}${log_name} ${logs_path}${log_name}_$(date +"%Y-%m-%d")
#
#sleep 5
#tar jcf $(date --date="LAST WEEK" +"%Y-%m-%d").tar.bz2 ${logs_path}${log_name}
# ;
kill -USR1 `cat /var/run/nginx.pid`
위의 스 크 립 트 를 crontab 에 다시 설정 하고 매일 0 시 에 한 번 실행 하면 됩 니 다.
00 00 * * * /bin/bash /usr/local/bin/nginx_log.sh
nginx 의 로그 분할 도 httpd 에 적합 합 니 다. 해당 하 는 데 이 터 를 수정 하면 apche 의 로 그 를 절단 할 수 있 습 니 다.
httpd. pid 의 기본 경 로 는: / usr / local / apache 2 / logs / httpd. pid (apache 는 / usr / local / 아래 에 설치) 입 니 다.
스 크 립 트 는 다음 과 같 습 니 다:
#! /bin/bash
#date= 2015-07-29 18:00
logs_path="/www/weblogs/"
log_name="httpd_access.log"
pid_path="/usr/local/apache2/logs/httpd.pid"
#
mv ${logs_path}${log_name} ${logs_path}${log_name}_$(date +"%Y-%m-%d")
#
#sleep 5
#tar jcf $(date --date="LAST WEEK" +"%Y-%m-%d").tar.bz2 ${logs_path}${log_name}
# ;
kill -USR1 `cat /usr/local/apache2/logs/httpd.pid`
3. nginx 와 apache 로그 절단 을 스 크 립 트 에 통합 합 니 다.
#! /bin/bash
#date= 2015-07-29 18:00
logs_path="/www/weblogs/"
nginx-log_name="nginx_access.log"
httpd-log_name="httpd_access.log"
#nginx-pid_path="/var/run/nginx.pid"
#httpd-pid_path="/usr/local/apache2/logs/httpd.pid"
#
mv ${logs_path}${nginx-log_name} ${logs_path}${nginx-log_name}_$(date +"%Y-%m-%d")
mv ${logs_path}${httpd-log_name} ${logs_path}${httpd-log_name}_$(date +"%Y-%m-%d")
#
#sleep 5
#tar jcf $(date --date="LAST WEEK" +"%Y-%m-%d").tar.bz2 ${logs_path}${log_name}
# ;
kill -USR1 `cat /var/run/nginx.pid`
kill -USR1 `cat /usr/local/apache2/logs/httpd.pid`
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fortinet FortiWeb Web Application Firewall Policy BypassFrom: Geffrey Velasquez Date: Wed, 2 May 2012 20:33:23 -0500...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.